最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
java struts2 远程执行任意java代码bug漏洞修复
时间:2022-11-14 23:26:24 编辑:袖梨 来源:一聚教程网
漏洞前提
开启动态方法调用, struts.xml配置
沙盒绕过
通过ognl表达式静态调用获取ognl.OgnlContext的DEFAULT_MEMBER_ACCESS属性,并将获取的结果覆盖_memberAccess属性,这样就可以绕过SecurityMemberAccess的限制。
漏洞详情
https://struts.apache.org/docs/s2-032.html
详解测试
假如动态方法调用已经开启,然后我们要调用对应的login方法的话 我们可以通过http://localhost:8080/struts241/index!login.action来执行动态的方法调用。这种动态方法调用的时候method中的特殊字符都会被替换成空,但是可以通过http://localhost:8080/struts241/index.action?method:login来绕过无法传入特殊字符的限制。



3. 沙盒绕过
通过ognl表达式静态调用获取ognl.OgnlContext的DEFAULT_MEMBER_ACCESS属性,并将获取的结果覆盖_memberAccess属性,这样就可以绕过SecurityMemberAccess的限制。
4. poc
a. 测试环境

b. 结果
修复方案
升级至struts 2.3.20.2,struts 2.3.24.2, struts 2.3.28.1
临时解决方案
1. 检查是否使用struts2
2. 检查是否开启动态方法调用
3. 在struts前端nginx配置正则拦截攻击请求
正则:if($args ~ @ognl.OgnlContext@DEFAULT_MEMBER_ACCESS) { return 404;}
升级Struts 2至Struts 2.3.20.2, Struts 2.3.24.2 或者 Struts 2.3.28.1,以便彻底解决此问题。
相关文章
- 获 Vitalik 50 万美元捐款,一文了解网络国家沙盒 Zuitzerland 04-29
- 火影忍者手游食神派队玩法说明分享 04-29
- 以闪亮之名金发蓝眼美女官方捏脸数据id攻略 04-29
- 明日之后副武器攻击力怎么算的攻略 04-29
- DNF手游装扮更换什么方法较适用 04-29
- 创造与魔法炸弹松鼠升阶有什么 04-29