【网络安全一百问-94】描述strust2的漏洞利用原理

请先 登录 后评论

2 个回答

小黄鸭_23

由于OGNL过于强大,它也造成了诸多安全问题。恶意攻击者通过构造特定数据带入OGNL表达式即可能被解析并执行,而OGNL可以用来获取和设置Java对象的属性,同时也可以对服务端对象进行修改,所以只要绕过Struts2的一些安全策略,恶意攻击者甚至可以执行系统命令进行系统攻击。

请先 登录 后评论
Hacker001

Struts会将HTTP的每个参数名解析为OGNL语句执行(可以理解为Java代码)。 OGNL表达式通过 # 来访问struts的对象,Struts框架通过过滤 # 字符防止安全问题,通过unicode编码(u0023)或8进制(43)即可绕过安全限制,从而能够操纵服务器端上下文对象。

该漏洞是由于WebWork 2.1+ 和 Struts 2 的"altSyntax"特性引起的。“altSyntax"特性允许将OGNL表达式插入文本字符串并进行递归处理。这允许恶意用户通过HTML文本字段提交一个包含OGNL表达式的字符串,如果表单验证失败,服务器将执行该表达式。

请先 登录 后评论

相似问题