内容简介:0x00 漏洞简介加固建议:
0x00 漏洞简介
加固建议:
对 Structs 2 版本进行升级以更新安全补丁:
Struts 2.3.x 版本升级到 2.3.35
Struts 2.5.x 版本升级到 2.5.17
0x01 补丁分析
在github上进行Tag对比
分析patch,定位问题点
https://github.com/apache/struts/commit/918182344cc97515353cc3dcb09b9fce19c739c0
0x02 环境搭建
根据漏洞作者的博客描述,直接使用Struts2-2.3.34的showcase,修改struts-actionchaining.xml
使用${1+1}验证漏洞存在
0x03 漏洞分析
DefaultActionMapper调用parseNameAndNamespace()解析namespace和name。当alwaysSelectFullNamespace为true时,namespace的值可以通过uri控制
Action执行结束时,调用ServletActionRedirectResult.execute()进行重定向Result的解析,通过ActionMapper.getUriFromActionMapping()重组namespace和name后,由setLocation() 将带namespace的location放入父类StrutsResultSupport中
StrutsResultSupport拿到location后,通过TextParseUtil.translateVariables()调用OgnlTextParser.evaluate()解析执行url中的OGNL表达式,导致代码执行
0x04 利用条件
最小条件:
1. alwaysSelectFullNamespace值为true
2. Struts2配置文件中,action元素未设置namespace属性,或使用了通配符
漏洞场景:
1. 在Struts2配置文件中,对未正确配置的action元素提供如下三类返回元素:
a. Redirect Action
b. Action Chaining
c. Postback Result
2. 在模板中使用url元素标记:
0x05 PoC编写
使用Struts2老版本的PoC无法正常弹出计算器,会在获取#context时得到null值,导致['com.opensymphony.xwork2.ActionContext.container']求值时的source为空,抛出异常
通过跟踪OGNL底层代码发现,在比较新的版本的OGNL包中,OgnlContext移除了CONTEXT_CONTEXT_KEY、CLASS_RESOLVER_CONTEXT_KEY和MEMBER_ACCESS_CONTEXT_KEY,使OGNL表达式无法继续使用#context、#_classResolver和#_memberAccess来获得相应对象
获取不到context就无法进行后续Struts2的沙盒绕过。通过分析,发现在#request域下的struts.ValueStack对象中存在context属性,因此对S2-052的Payload进行一下简单改造即可
成功弹出计算器
另外,由于Struts2.5中,几个excluded的map使用的是immutable collection,不允许修改,因此该PoC只适用于Struts2.3环境
再多说一嘴,Struts2的showcase项目没有通过大家知道的struts.mapper.alwaysSelectFullNamespace配置项控制alwaysSelectFullNamespace的值,而是通过@Inject进行了IoC
0x06 参考
1. https://cwiki.apache.org/confluence/display/WW/S2-057
2. https://lgtm.com/blog/apache_struts_CVE-2018-11776
3. https://semmle.com/news/apache-struts-CVE-2018-11776
以上所述就是小编给大家介绍的《S2-057原理分析与复现过程(POC)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- ThinkPHP远程命令执行漏洞原理及复现
- 路由器漏洞复现:从原理到第一步验证
- 【漏洞复现】WordPress插件Quizlord 2.0 XSS漏洞复现与分析
- Ghost Tunnel复现
- Paxos与“幽灵复现”
- CVE-2010-3333漏洞复现
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Google's PageRank and Beyond
Amy N. Langville、Carl D. Meyer / Princeton University Press / 2006-7-23 / USD 57.50
Why doesn't your home page appear on the first page of search results, even when you query your own name? How do other web pages always appear at the top? What creates these powerful rankings? And how......一起来看看 《Google's PageRank and Beyond》 这本书的介绍吧!