一、Apache Struts 2漏洞背景

1.漏洞详情

2017年3月6日,Apache Struts 2被曝存在远程命令执行漏洞。在使用基于Jakarta插件的文件上传功能条件下,恶意用户可以通过修改HTTP请求头中的Content-Type值构造恶意代码,在服务器上执行系统命令,完全控制该服务器,最后达到挖矿、对外攻/击、数据窃取勒索、篡改为菠菜站等目的。漏洞利用所需组件默认启用,风险等级为高危。

2.漏洞编号

  • CVE-2017-5638
  • CNNVD-201703-152

3.影响的Struts2版本

  • Struts 2.3.5 – Struts 2.3.31
  • Struts 2.5 – Struts 2.5.1

4.解决方案

(1)临时解决方案:删除commons-fileupload-x.x.x.jar文件(会造成上传功能不可用)。

(2)根本解决方案:升级版本至Apache Struts 2.3.32 或 Apache Struts 2.5.10.1 以消除漏洞影响。涉及版本变更,升级前应做好数据备份。

补丁地址:
Struts 2.3.32: https://github.com/apache/struts/releases/tag/STRUTS_2_3_32
Struts 2.5.10.1: https://github.com/apache/struts/releases/tag/STRUTS_2_5_10_1

5.自行检测方法

查看web目录下/WEB-INF/lib/目录下的struts2-core-x.x.x.jar文件,如果x代表的版本号在2.3.5到2.3.31 以及2.5到2.5.10之间且未修改默认配置则存在漏洞。

二、Struts Scan工具介绍

使用场景:在主机外围验证漏洞存在与否。
使用前提:需要主机有python环境,如何安装自行百度。

1.Struts Scan工具下载地址

(1)【推荐】Lucifer原创在GitHub: https://github.com/Lucifer1993/struts-scan

(2)在百度网盘备份了一份:https://pan.baidu.com/s/1ji8uTB73gXMFaTyW5r6Jbg 密码:99f4

2.Struts Scan工具使用方法

(1)将下载的安装包上传到云主机任意目录下,我上传到/root/struts-scan/

(2)使用方法:

• python struts-scan.py http://example.com/index.action 检测
• python struts-scan.py -u http://example.com/index.action -i struts2-045 进入指定漏洞交互式shell
• python struts-scan.py -f url.txt 批量检测

示例:python struts-scan.py http://www.baidu.com

注意:如果python报错:

Traceback (most recent call last):File "struts-scan.py", line 13, in <module>from termcolor import cprint
ImportError: No module named termcolor

根据报错,执行如下命令后解决:

   yum install python-pippip install termcolor

三、入/侵分析案例

1.2017-12-25 某一云租户的CPU持续较高,经过排查是一个名为md的恶意进程,位置/var/tmp/.c4k/,且在crontab里加了定时任务。

2.微步在线坚定为比特币挖矿木/马:

3.网站目录下/WEB-INF/lib/目录下,发现了存在漏洞struts2库2.3.15。

利用struts scan判断存在struts2-045、struts2-048漏洞

4.本文列出的为关键步骤,其实分析过程中我们还分析了弱口令爆破、/var/log/secure日志、配置文件server.xml等,常规分析参考我的Linux入/侵分析三部曲。

终于最后聚焦到struts2漏洞,从此此漏洞可以作为网站类主机入/侵溯源分析的一个检查点,列入TSG(Troubleshooting Guide),提高效率。

转载于:https://blog.51cto.com/winhe/2124726

Struts2漏洞和Struts Scan工具实战相关推荐

  1. 浅谈struts2漏洞(检测工具及S2-052漏洞及漏洞平台的搭建复现)

    简介: struts2是apache项目下的一个web框架,主要应用于各类门户网站,而相对应的漏洞则是从2007年7月23日发布的第一个Struts2漏洞S2-001到2018年的S2-057,跨度还 ...

  2. struts2 漏洞分析 及解决办法

    1.讨论关于struts 安全问题. 2.黑客文化. 3.如何降低安全漏洞的出现. 4.忠告建议. 题记: 这篇文章本来很早应该和大家见面的,中间由于个人原因调整了系列文章发布时间,实属罪过.为了不误 ...

  3. struts2漏洞_十大常见web漏洞——命令执行漏洞

    命令执行漏洞在不同框架下都有存在,也是十分普遍且危害极大,下面我们介绍一个最具代表性的,也是影响范围最大的一个命令执行漏洞--Struts2远程代码执行漏洞. Struts2 漏洞介绍 ApacheS ...

  4. Struts2漏洞导致的反弹shell——青藤云安全使用的是agent进程采集器进行检测

    安全老司机 | Struts2漏洞爆发后,与黑客的一次正面交锋 from:https://zhuanlan.zhihu.com/p/66122521 备注: 青藤云安全:--用的是进程信息采集器 通过 ...

  5. Struts2漏洞 - Struts2-015 Struts2-016 Struts2-045

    文章目录 Struts2简介 Struts2历史漏洞 Struts2历史漏洞发现 Struts2框架识别 Struts2历史漏洞利用 Struts2-015 漏洞简介 影响范围 环境搭建 漏洞复现 S ...

  6. Struts2漏洞分析与复现合集

    文章目录 一.基础知识 Struts2简介: 二.漏洞复现 1.S2-001(OGNL 循环解析导致的 RCE 漏洞) 漏洞原理: 影响版本: 环境搭建: poc: 漏洞利用: 2.S2-005(S2 ...

  7. Struts2漏洞利用原理

    概述: Struts2是apache项目下的一个web 框架,目前web框架中非常流行的都是mvc设计模式.经典例子例如:python的Django.Flask:java的ssm等.因为使用MVC设计 ...

  8. Vulhub靶场之struts2漏洞复现

    简介 struts2漏洞中属s2系列杀伤力最大,可以造成远程命令执行漏洞. Apache Struts2框架是一个用于开发Java EE网络应用程序的Web框架.Apache Struts于2020年 ...

  9. 渗透测试 ( 5 ) --- 扫描之王 nmap、渗透测试工具实战技巧合集

    Nmap 官方文档 ( 中文文档是 Nmap 版本4.50,英文文档是最新的 ): 英文文档:https://nmap.org/book/man.html 中文文档:https://nmap.org/ ...

最新文章

  1. Codeforces Round #650 (Div. 3)(A-F1)题解
  2. python 图形界面文本处理_python3.6 +tkinter GUI编程 实现界面化的文本处理工具
  3. Shell-实际业务操作01
  4. 内网渗透-域内有网和无网
  5. 用w32tm设置服务器时间同步
  6. Android 7.0判断栈顶Activity错误 几率显示为launcher
  7. java鼠标点击暂停程序_java – LWJGL抓取鼠标 – 如果应用程序挂起或使用抓取的鼠标点击断点时调试...
  8. Curie%20Module有什么用
  9. pandas小记:pandas数据输入输出
  10. Linux批量替换文本,文件夹内所有文本内容
  11. Qt5.9配置安卓开发环境
  12. VB/VBA的浮点数结构
  13. 紫川,网络小说的登峰造极之作
  14. C语言学习之路-由浅入深(快速掌握c基础)
  15. 随机密码生成Python
  16. “爆打”团队阿尔法发布 以及 第四周任务
  17. 电器企业网站建设-电器网站设计建设方案
  18. 【GD32F427开发板试用】5. SPI驱动TFTLCD屏幕
  19. win10双击jdk8安装包没反应?看这里给你解决
  20. 中国海底电缆行业发展前景及投资风险预测分析报告

热门文章

  1. Nis服务器主从安装配置
  2. 处理Img标签中src无效时出现的border
  3. guava Lists.transform 踩过的坑
  4. MySQL主从同步校验与重新同步
  5. JFinal的ActiveRecord用法 @JFinal
  6. 由DWR1.0到DWR2.0常出现的问题
  7. MS SQL SERVER中备份所有数据库
  8. Nginx server_name通配符匹配配置
  9. 第十章 某些算法的分治法解释
  10. MyBatis 插件原理与自定义插件-PageHelper 原理