Struts2 S2-059 远程代码执行漏洞(CVE-2019-0230)
Apache Struts 框架在强制执行时对分配给某些标签属性(例如 id)的属性值执行双重评估,因此可以传入一个值,该值将在渲染标签的属性时再次评估。通过精心设计的请求,这可能会导致远程代码执行 (RCE)。
受影响的版本:Struts 2.0.0 - Struts 2.5.20
参考:
- https://cwiki.apache.org/confluence/display/WW/S2-059
- https://securitylab.github.com/research/ognl-apache-struts-exploit-CVE-2018-11776
漏洞复现
环境启动后,访问http://192.168.44.132:8080/?id=1
,会看到Struts2测试页面。
访问http://192.168.44.132:8080/?id=%25%7B7*7%7D
,可以看到在id属性中已经返回了7*7的结果。
OGNL Apache Struts 漏洞利用:武器化沙箱绕过 (CVE-2018-11776)提供了 Struts 2.5.16 中 OGNL 沙箱绕过的详细信息。
用于验证漏洞的简单 Python POC:
1 | import requests |
执行poc,touch /tmp/success
命令已执行: