Apache Struts2远程代码执行漏洞(S2-016)
复现的是墨者的Apache Struts2的靶场,用的工具检测~~
原理:
问题主要出在对于特殊URL处理中,redirect与redirectAction后面跟上OGNL表达式会被服务器执行。
漏洞原因:
action的值redirect和redirectAction没有正确过滤,导致可以执行任意代码,如系统命令、上传、下载文件等。
Struts2的DefaultActionMapper支持一种方法,可以使用”action:”, “redirect:” , “redirectAction:”对输入信息进行处理,从而改变前缀参数,这样操作的目的是方便表单中的操作。在2.3.15.1版本以前的struts2中,没有对”action:”, “redirect:” , “redirectAction:”等进行处理,导致ongl表达式可以被执行。
影响版本:
Struts 2.0.0 – 2.3.15
1.在url后面添加index.action,回显正常,可能存在漏洞。

2.利用Struts2漏洞检测工具,输入url(记得一定要加index.action)
可以看到漏洞存在:

3.执行命令ls,看到有一个key.txt

4.使用命令cat key.txt获取key.txt的内容,得到flag

本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 echozt!