Spring Boot 是基于 Spring 框架的一个项目,目的是简化 Spring 应用的开发。Spring 是一个流行的 Java 企业级应用开发框架,提供了全面的基础设施支持来构建复杂的应用程序。Spring Boot 通过提供一系列默认配置、自动化的设置以及嵌入式的服务器(如 Tomcat),极大地简化了 Spring 应用的开发过程。开发者可以通过更少的配置,快速地启动和运行一个 Spring 应用程序。
以下是 Spring Boot 的几个关键特性:
-
自动配置:Spring Boot 会根据项目中的依赖自动配置 Spring 应用程序,开发者不需要手动进行繁琐的配置。
-
嵌入式服务器:Spring Boot 可以直接运行在嵌入式的服务器上,比如 Tomcat、Jetty 或 Undertow,这样开发者不需要单独部署应用。
-
独立运行:Spring Boot 应用程序可以打包成一个可执行的 JAR 文件,直接通过
java -jar
命令运行,无需外部服务器环境。 -
简化的依赖管理:Spring Boot 提供了一套默认的依赖管理(通常称为 "starter" 依赖),帮助开发者快速集成常见的功能模块。
-
监控和管理:Spring Boot 提供了丰富的监控和管理功能,如应用程序的健康检查、度量监控等。
日常渗透过程中,经常会碰到Spring Boot搭建的微服务,这里就来推荐一款Spring Boot的开源渗透框架,主要用作扫描Spring Boot的敏感信息泄露端点,并可以直接测试Spring的相关高危漏洞。
漏洞支持的更新
添加支持2023 JeeSpringCloud 任意文件上传漏洞
添加支持CVE-2022-22947 (Spring Cloud Gateway SpELRCE漏洞)
添加支持CVE-2022-22963 (Spring Cloud Function SpEL RCE漏洞)
添加支持CVE-2022-22965 (Spring Core RCE漏洞)
添加支持CVE-2021-21234 (任意文件读取漏洞)
添加支持2021 SnakeYAML_RCE 漏洞
添加支持2021 Eureka_Xstream 反序列化漏洞
添加支持2020 Jolokia配置不当导致RCE漏洞
添加支持CVE-2018-1273(Spring Data Commons RCE漏洞)
增加漏洞利用选择模块,可以选择单一或多个漏洞进行检测
命令执行漏洞式支持交互式执行命令
增加批量漏洞验证模块
功能支持的更新
对端点爆破模块进行优化,对页面进行Hash计算,如果发现页面Hash相同的情况就不导入到 urlout.txt
在目录爆破 run.py /POC探测 poc.py /漏洞利用 vul.py 这三个核心模块,新增全局变量 requests.timeout = 10 可自由调整各模块HTTP访问超时时间
新增支持多个参数自定义HTTP头部(请求头)进行操作,功能实现啦,快来试试吧~
新增支持资产测绘导出的时候自定义查询语句,更加灵活的导出目标资产数据
新增在敏感端点爆破爆破(单一和批量)的时候进行延时扫描,防止扫描速度太快被拦截
新增 Hunter资产测绘 导出模块,自动对接API接口将资产导出至 hunterout.txt
新增 Fofa资产测绘 导出模块,自动对接API接口将资产导出至 fofaout.txt
新增 ZoomEye资产测绘 导出模块,自动对接API接口将资产导出至 zoomout.txt
在Spring端点爆破的时候,新增过滤一些无效回显的页面,提高工作效率
对端点爆破字典进行优化,增加一些绕过语句,如果有补充欢迎提交
支持自动对Spring进行指纹识别
在漏洞利用模块,对错误进行输出为 error.log
支持使用带认证的HTTP代理节点,自动检测节点状态
验证代理是否存活,并可以使用HTTP代理认证,支持使用HTTP/HTTPS代理所有流量
随机User-Agent请求头
解决SSL证书问题 (自签名证书请改成 http:// 即可)
智能识别目标地址 (example.com 和http://example.com/ 以及http://example.com 都不会报错)
工具使用:
1.安装Python依赖库
pip install -r requirements.txt
如果pip安装速度慢,可以采用国内源进行安装:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
如何找到互联网上的Spring框架,
ZoomEye语法如下:
app:"Spring Framework"
Fofa语法如下:
icon_hash="116323821"||body="Whitelabel Error Page"
使用方法
用法:
对单一URL进行信息泄露扫描: python3 SpringBoot-Scan.py -u example.com
读取目标TXT进行批量信息泄露扫描: python3 SpringBoot-Scan.py -uf url.txt
对单一URL进行漏洞利用: python3 SpringBoot-Scan.py -v example.com
读取目标TXT进行批量漏洞扫描: python3 SpringBoot-Scan.py -vf url.txt
扫描并下载SpringBoot敏感文件: python3 SpringBoot-Scan.py -d example.com
使用HTTP代理并自动进行连通性测试: python3 SpringBoot-Scan.py -p <代理IP:端口>
从TXT文件中导入自定义HTTP头部: python3 SpringBoot-Scan.py -t header.txt
通过ZoomEye密钥进行API下载数据: python3 SpringBoot-Scan.py -z <ZoomEye的API-KEY>
通过Fofa密钥进行API下载数据: python3 SpringBoot-Scan.py -f <Fofa的API-KEY>
通过Hunter密钥进行API下载数据: python3 SpringBoot-Scan.py -y <Hunter的API-KEY>
通过ZoomEye进行Spring资产测绘
本工具专门对接了 ZoomEye的API接口,使用API-KEY即可批量下载Spring的资产测绘数据:
python3 SpringBoot-Scan.py -z <ZoomEye的API-KEY>
注:目前该模块已经支持自定义语法的资产测绘导出;资产测绘结束后,会把通过API下载的结果导出到 zoomout.txt
,就可以使用其他参数进行操作啦
通过Fofa进行Spring资产测绘
本工具专门对接了 Fofa的API接口,使用API-KEY即可批量下载Spring的资产测绘数据:
python3 SpringBoot-Scan.py -f <Fofa的API-KEY>
注:目前该模块已经支持自定义语法的资产测绘导出;资产测绘结束后,会把通过API下载的结果导出到 fofaout.txt
,就可以使用其他参数进行操作啦
通过Hunter鹰图进行Spring资产测绘
本工具专门对接了 鹰图的API接口,使用API-KEY即可批量下载Spring的资产测绘数据:
python3 SpringBoot-Scan.py -y <Hunter的API-KEY>
注:目前该模块已经支持自定义语法的资产测绘导出;资产测绘结束后,会把通过API下载的结果导出到 hunterout.txt
,就可以使用其他参数进行操作啦
测试并使用代理和自定义HTTP头部
测试并使用代理
python3 SpringBoot-Scan.py -p <代理IP:端口>
python3 SpringBoot-Scan.py -p <HTTP认证账号:HTTP认证密码@代理IP:端口>
测试并使用自定义HTTP头部(自定义请求头)
python3 SpringBoot-Scan.py -t header.txt
使用该自定义HTTP头部功能请自行更改 header.txt
内的内容,允许(-u
/ -uf
/ -v
/ -d
)参数使用,因为批量漏洞扫描没有明确需求故没加入该功能
对单一URL进行敏感端点爆破
Dir.txt
为内置的Spring端点爆破字典,工具中基本收集齐了Spring Boot的相关敏感信息泄露端点
python3 SpringBoot-Scan.py -u example.com
新增延时扫描选项,如果不想延时扫描输入 0
回车即可
注:扫描结束后,会把成功的结果导出为同目录下的 urlout.txt
读取目标TXT进行批量信息泄露扫描
python3 SpringBoot-Scan.py -uf url.txt
新增延时扫描选项,如果不想延时扫描输入 0
回车即可;感谢 @Fkalis
师傅,新增并发扫描选项,默认并发数为10
注:由于版本更新,在2.21版本之后,读取TXT并扫描的参数改为 uf
,扫描结束后,会把成功的结果导出为同目录下的 output.txt
对单一URL进行漏洞利用
python3 SpringBoot-Scan.py -v example.com
读取目标TXT进行批量漏洞扫描
python3 SpringBoot-Scan.py -vf url.txt
扫描并下载SpringBoot敏感文件
python3 SpringBoot-Scan.py -d example.com
注:扫描到的敏感文件,会自动下载到脚本的运行目录,有进度条可以看到实时下载进度
目前敏感文件目录内置了5个,如下:
actuator/heapdump
gateway/actuator/heapdump
heapdump
heapdump.json
hystrix.stream
artemis-portal/artemis/heapdump
项目地址
https://github.com/AabyssZG/SpringBoot-Scan
也可后台回复【SpringBoot-Scan】进行获取
免责声明
-
如果您下载、安装、使用、修改本工具及相关代码,即表明您信任本工具
-
在使用本工具时造成对您自己或他人任何形式的损失和伤害,我们不承担任何责任
-
如您在使用本工具的过程中存在任何非法行为,您需自行承担相应后果,我们将不承担任何法律及连带责任
-
请您务必审慎阅读、充分理解各条款内容,特别是免除或者限制责任的条款,并选择接受或不接受
-
除非您已阅读并接受本协议所有条款,否则您无权下载、安装或使用本工具
-
您的下载、安装、使用等行为即视为您已阅读并同意上述协议的约束
原文始发于微信公众号(风铃Sec):【安全工具】SpringBoot-Scan
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论