CVE-2017-9805(s2-052)复现过程

墨云科技在漏洞爆发第一时间写出利用方法,帮助我们的客户发现并且验证漏洞的危害性。

漏洞编号:CVE-2017-9805
漏洞作者:Man Yue Mo <mmo at semmle dot com>
影响版本:Struts 2.5 - Struts 2.5.12
漏洞等级:严重
漏洞简述:当启用 Struts REST的XStream handler去反序列化处理XML请求,可能造成远程代码执行漏洞。
漏洞描述:
当启用 Struts REST的XStream handler去反序列化处理一个没有经过任何类型过滤的XStream的实例,可能导致在处理XML时造成远程代码执行漏洞。
解决方案
目前尚无完美解决方案,建议如下:
1.建议尽快升级到 2.5.13版本。
2.在不使用时删除 Struts REST插件,或仅限于服务器普通页面和JSONs:
<constant name=”struts.action.extension” value=”xhtml,,json” />
3.限制服务器端扩展类型,删除XML支持。

环境搭建

https://github.com/Medicean/VulApps/tree/master/s/struts2/s2-037
下载docker部署就可以使用

漏洞复现

访问本地 http://localhost/orders
1.png

点击一个 edit 进行编译页面,然后提交,并用 burp 抓包。
2.png

然后将请求发送到Repeater,将请求中的Content-Type的值改为 application/xml,然后POST的数据用PoC中的xml内容代替。
3.png

网上有现成的poc,这里就不贴了,那么如何执行命令呢,原来弹计算器是

<string>/Applications/Calculator.app/Contents/MacOS/Calculator</string>

执行多条命令就这样

4.png

在远程服务器放一个b.sh文件,wget下载,我本地测试默认下载地址是在tmp目录下

5.png

OwlEye指纹识别

OwlEye

OwlEye指纹识别平台

为什么要造这个轮子

网上的指纹识别平台已经很多了,但是呢识别的速度都不是特别理想,所以一直有想法写一个自己团队的指纹识别平台。
因为这也不会那也不会的原因这个想法耽搁了很久,现在终于把想法实现了一半了

轮子都是什么样的

自己已知的识别方法也只有:
1.特殊文件的md5值匹配
2.请求响应主体内容或头信息的关键字匹配
3.请求响应主体内容或头信息的正则匹配
4.基于Url关键字识别
5.基于TCP/IP请求协议识别服务指纹
(嗯,上面几条是我抄的)

更多