漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2012-08835
漏洞标题:华为某盘远程代码执行漏洞
相关厂商:华为技术有限公司
漏洞作者: 乌山云雨
提交时间:2012-06-27 01:29
修复时间:2012-08-11 01:29
公开时间:2012-08-11 01:29
漏洞类型:命令执行
危害等级:高
自评Rank:20
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2012-06-27: 细节已通知厂商并且等待厂商处理中
2012-06-29: 厂商已经确认,细节仅向厂商公开
2012-07-09: 细节向核心白帽子及相关领域专家公开
2012-07-19: 细节向普通白帽子公开
2012-07-29: 细节向实习白帽子公开
2012-08-11: 细节向公众公开
简要描述:
远程执行任意代码
详细说明:
Struts2的核心是使用的webwork框架,处理 action时通过调用底层的getter/setter方法来处理http的参数,它将每个http参数声明为一个ONGL(这里是ONGL的介绍)语句。当我们提交一个http参数:
Java代码
?user.address.city=Bishkek&user['favoriteDrink']=kumys
?user.address.city=Bishkek&user['favoriteDrink']=kumys
ONGL将它转换为:
Java代码
action.getUser().getAddress().setCity("Bishkek")
action.getUser().setFavoriteDrink("kumys")
action.getUser().getAddress().setCity("Bishkek")
action.getUser().setFavoriteDrink("kumys")
这是通过ParametersInterceptor(参数过滤器)来执行的,使用用户提供的HTTP参数调用 ValueStack.setValue()。
为了防范篡改服务器端对象,XWork的ParametersInterceptor不允许参数名中出现“#”字符,但如果使用了Java的 unicode字符串表示\u0023,攻击者就可以绕过保护,修改保护Java方式执行的值:
漏洞证明:
修复方案:
打补丁
版权声明:转载请注明来源 乌山云雨@乌云
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:20
确认时间:2012-06-29 10:33
厂商回复:
已经修改,谢谢白帽子的支持
最新状态:
暂无