xxe XML外部实体注入
xml外部实体注入
摘要xml是一种可扩展的标记语言,用于传输和存储数据
html用于显示数据
其中,xml的标签没有预先定义的,作者自己可以定义标签和文档结构。
建立声誉吗? XML版本=' 1.0 '编码=' utf-8 '? 上面的示例显示了XML版本(
UTF-8也是HTML5、CSS、JavaScript、PHP和SQL的默认编码。
XML DTD文档类型定义dtd (文档类型定义)可以将以下文档元素的规定称为约束,并定义格式
! doctypenotesystem ' note.dtd ' doctype声明是对外部dtd文件的引用
文档元素notetotove/tofromjani/fromheadingreminder/headingbodydon ' tforgetmethisweekend! /body/note其中,我们可以利用的是DTD部分的外部文档的部署
xml文档定义语义约束
有三种方法
DTD内部声誉: DOCTYPE根元素[元素声誉]DTD外部声誉: DOCTYPE根元素名称SYSTEM '外部DTD的URI '其中外部引用是公共DTD : DOCTYPE根元素名称PUBLIC '通用DTD的URI '! 文档类型note [! 元素笔记(to,from,heading,body )! element to (# PC数据)! 元素从(# PC数据)! 元素保护(# PC数据)! 元素主体(# PC数据) ]
如果接口支持接受xml数据,并且未对xml数据采取任何安全措施,则可能会出现xxe漏洞。
从2.9.0 (包括)开始,缺省情况下libxml禁止分析xml缺省实体内容。
用例
? xml cersion='1.0 '! DOCTYPE hack [! entityxxesystem ' file ://etc/password ' ] hack xxe; /hack '%name ' (参数实体)真的在DTD中引用,' name;' 在xml文档中引用。
如何利用支持什么样的协议,可以看具体参考
3359 security.Tencent.com/index.PHP/blog/msg/69
防御有魅力的小熊猫、使用开发语言提供的禁用外部实体的方法
PHP :
libxml _ disable _ entity _ loader (true;
其他语言:
33559 www.owasp.org/index.PHP/XML _ external _ entity _ (xxe ) _Prevention_Cheat_Sheet
方案二、过滤用户提交的XML数据
关键字:系统和公共。
参考:
3359 security.Tencent.com/index.PHP/blog/msg/69
https://zh.wikipedia.org/wiki/XML
33559 www.run OOB.com/XML/XML-usage.html
转载于:https://www.cn blogs.com/wan-Xiang/p/11573542.html