0x00:前言与简介
一、S2-061是对S2-059沙盒进行的绕过漏洞
二、“黑客”就通过构造恶意的 OGNL 表达式,引发 OGNL 表达式二次解析,最终造成远程代码执行的影响.
http://mpvideo.qpic.cn/0bf2imcisaae5yainvwterpviq6drfbqjcia.f10004.mp4?dis_k=ba33b2d0b7208eabba5058756ec6547a&dis_t=1646027851&vid=wxv_1649829526232694786&format_id=10004&support_redirect=0&mmversion=false
0x01:影响版本
Apache:Struts2 : 2.0.0 - 2.5.25
0x02:环境的搭建
采用的环境项目地址:
利用Docker进行快速的搭建
利用Burp请求验证漏洞
EXP源自网络:
漏洞验证完毕
变更请求方法
验证成功
0x03:Python 脚本的编写
构造一个requests的Get请求即可,最后在利用正则筛选出命令执行的结果.
完整代码如下
效果图
0x04:Goby POC编写
一、Goby自带的poc开发界面
二、填写相应的信息
三、在测试界面填写入上面的Get成功的payload
响应测试填写入的是响应包,我们需要的是得到什么信息。我这里测试的命令是“ID”.所以我利用正则的匹配获取UID的信息。
四、环境测试
五、做扫描测试
六、接下来就可以利用公开的exp进行攻击了
(未授权网站禁止攻击,后果自负)
0x05:修复方案
及时更新Apache Struts框架版本: