您当前的位置: 首页 > 

Snakin_ya

暂无认证

  • 1浏览

    0关注

    107博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

ctfshow—XXE

Snakin_ya 发布时间:2021-10-24 17:59:41 ,浏览量:1

XXE

XXE:XML External Entity 即外部实体,从安全角度理解成XML External Entity attack 外部实体注入攻击。由于程序在解析输入的XML数据时,解析了攻击者伪造的外部实体而产生的。例如PHP中的simplexml_load 默认情况下会解析外部实体,有XXE漏洞的标志性函数为simplexml_load_string()。

XXE可导致读取任意文件,探测内网端口,攻击内网网站,发起拒绝服务攻击,执行系统命令等。Java中的XXE支持sun.net.www.protoco里的所有协议:http,https,file,ftp,mailto,jar,netdoc。一般利用file协议读取文件,利用http协议探测内网。

学习链接:

https://xz.aliyun.com/t/3357

https://www.freebuf.com/column/181064.html

实战(ctfshow) web373(有回显)
error_reporting(0);
libxml_disable_entity_loader(false);
$xmlfile = file_get_contents('php://input');
if(isset($xmlfile)){
    $dom = new DOMDocument();
    $dom->loadXML($xmlfile, LIBXML_NOENT | LIBXML_DTDLOAD);
    $creds = simplexml_import_dom($dom);
    $ctfshow = $creds->ctfshow;
    echo $ctfshow;
}
highlight_file(__FILE__);

直接通过DTD外部实体声明。



&xxe;

POST传入即可

web374-376(无回显)
error_reporting(0);
libxml_disable_entity_loader(false);
$xmlfile = file_get_contents('php://input');
if(isset($xmlfile)){
    $dom = new DOMDocument();
    $dom->loadXML($xmlfile, LIBXML_NOENT | LIBXML_DTDLOAD);
}
highlight_file(__FILE__);    

无回显xxe可以利用自己的vps带外输出。

为区分嵌套实体和实体之间的关系,可以通过单双引号来间隔开,引号中嵌套一个参数实体,其%号需要写成:%也可写为16进制的%

先建立一个index.php

            
关注
打赏
1650510800
查看更多评论
0.0513s