赞
踩
eXtensible Markup Language可扩展标记语言
配置文件
交换数据
xml声明
XML文档必须有根元素
XML文档必须有关闭标签
XML标签对大小写敏感
XML元素必须被正确的嵌套
XML属性必须被加引号
DTD(Document Type Definition)文档类型定义
DTD内容之元素
元素 ELEMENT
DTD内容之实体
实体 ENTITY
实体ENTITY的使用
内部实体
外部实体
外部实体引用:协议
协议 | 使用方法 |
---|---|
file | file:///etc//passwd |
php | php://filter/read=convert.base64encode/resource=index.php |
http | 页面不存在_百度搜索 |
不同语言支持的协议
Libxml2 | PHP | Java | .NET |
---|---|---|---|
file , http, ftp | file, http, ftp, php, compress.zlib, compress.bzip2, data, glob, phar | file, http, https, ftp, jar, netdoc, mailto, gopher* | file, http, https,ftp |
PHP扩展
XML声明部分
文档类型定义
文档元素
XML外部实体注入(XML External Entity Injection)
如果Web应用的脚本代码没有限制XML引入外部实体,从而导致用户可以插入一个外部实体,并且其中的内容会被服务器端执行,插入的代码可能导致任意文件读取,系统命令执行,内网端口探测,攻击内网网站等危害。
<!DOCTYPE a[ <!ENTITY xxe SYSTEM "file:///C:/Windows/system.ini"> ]>
盲打-http接口参数,写入文件
Java
DocumentBuilderFactory dbf =DocumentBuilderFactory.newlnstance(); dbf.setExpandEntityReferences(false);
' “ "(two apostrophe) "" < > ]]> ]]>> <!--/--> /--> --> <!-- <! <![CDATA[/]]>
以mod_security为例
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。