{"id":13845148,"url":"https://github.com/AabyssZG/SpringBoot-Scan","last_synced_at":"2025-07-12T01:31:46.971Z","repository":{"id":65568403,"uuid":"594579246","full_name":"AabyssZG/SpringBoot-Scan","owner":"AabyssZG","description":"针对SpringBoot的开源渗透框架，以及Spring相关高危漏洞利用工具","archived":false,"fork":false,"pushed_at":"2025-03-11T03:06:00.000Z","size":3760,"stargazers_count":1920,"open_issues_count":1,"forks_count":157,"subscribers_count":13,"default_branch":"main","last_synced_at":"2025-05-21T12:09:18.519Z","etag":null,"topics":["cve-2018-1273","cve-2021-21234","cve-2022-22947","cve-2022-22963","cve-2022-22965","exploit","exploits","security","security-tools","spring","spring-boot","spring-vulnerability","springboot","vul"],"latest_commit_sha":null,"homepage":"https://blog.zgsec.cn/archives/129.html","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AabyssZG.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-01-29T01:11:21.000Z","updated_at":"2025-05-21T01:39:13.000Z","dependencies_parsed_at":"2023-02-18T03:45:17.524Z","dependency_job_id":"d72abc70-179a-4d59-9c98-3e919760d8b4","html_url":"https://github.com/AabyssZG/SpringBoot-Scan","commit_stats":{"total_commits":269,"total_committers":4,"mean_commits":67.25,"dds":"0.040892193308550207","last_synced_commit":"055a53cd0b8dc9c3d8f606a3c0e3920f04307595"},"previous_names":[],"tags_count":33,"template":false,"template_full_name":null,"purl":"pkg:github/AabyssZG/SpringBoot-Scan","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AabyssZG%2FSpringBoot-Scan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AabyssZG%2FSpringBoot-Scan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AabyssZG%2FSpringBoot-Scan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AabyssZG%2FSpringBoot-Scan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AabyssZG","download_url":"https://codeload.github.com/AabyssZG/SpringBoot-Scan/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AabyssZG%2FSpringBoot-Scan/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264923080,"owners_count":23683716,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cve-2018-1273","cve-2021-21234","cve-2022-22947","cve-2022-22963","cve-2022-22965","exploit","exploits","security","security-tools","spring","spring-boot","spring-vulnerability","springboot","vul"],"created_at":"2024-08-04T17:03:14.450Z","updated_at":"2025-07-12T01:31:46.954Z","avatar_url":"https://github.com/AabyssZG.png","language":"Python","readme":"![SpringBoot-Scan](https://socialify.git.ci/AabyssZG/SpringBoot-Scan/image?description=1\u0026descriptionEditable=Open%20source%20penetration%20framework%20for%20SpringBoot%20and%20high-risk%20vulnerability%20exploitation%20tools%20related%20to%20Spring\u0026font=Rokkitt\u0026forks=1\u0026issues=1\u0026language=1\u0026logo=https%3A%2F%2Favatars.githubusercontent.com%2Fu%2F54609266%3Fv%3D4\u0026name=1\u0026owner=1\u0026pattern=Circuit%20Board\u0026stargazers=1\u0026theme=Dark)\n\n# ✈️ 一、工具概述\n日常渗透过程中，经常会碰到Spring Boot搭建的微服务，于是就想做一个针对Spring Boot的开源渗透框架，主要用作扫描Spring Boot的敏感信息泄露端点，并可以直接测试Spring的相关高危漏洞。于是，就写了这么一个工具：SpringBoot-Scan  【简称：“SB-Scan”（错乱】![star](https://gitcode.com/AabyssZG/SpringBoot-Scan/star/badge.svg)\n\n![SpringBoot-Scan](./SpringBoot-Scan.png)\n\n**本项目的GitCode地址：[https://gitcode.com/AabyssZG/SpringBoot-Scan](https://gitcode.com/AabyssZG/SpringBoot-Scan)，当前工具版本号：V2.6-2025/03/11**\n\n**我还整理了一篇SpringBoot的相关渗透姿势在我的个人博客，欢迎各位师傅前来交流哈哈：[https://blog.zgsec.cn/archives/129.html](https://blog.zgsec.cn/archives/129.html)**\n\n# 📝 二、TODO\n\n## 漏洞支持的更新\n\n* [x] 添加支持2023 JeeSpringCloud 任意文件上传漏洞\n* [x] 添加支持CVE-2022-22947 (Spring Cloud Gateway SpELRCE漏洞)\n* [x] 添加支持CVE-2022-22963 (Spring Cloud Function SpEL RCE漏洞)\n* [x] 添加支持CVE-2022-22965 (Spring Core RCE漏洞)\n* [x] 添加支持CVE-2021-21234 (任意文件读取漏洞)\n* [x] 添加支持2021 SnakeYAML_RCE 漏洞\n* [x] 添加支持2021 Eureka_Xstream 反序列化漏洞\n* [x] 添加支持2020 Jolokia配置不当导致RCE漏洞\n* [x] 添加支持CVE-2018-1273（Spring Data Commons RCE漏洞）\n* [x] 增加漏洞利用选择模块，可以选择单一或多个漏洞进行检测\n* [x] 命令执行漏洞式支持交互式执行命令\n* [x] 增加批量漏洞验证模块（你们一直想要的来啦）\n\n后期将加入更多漏洞利用内置模块（各位师傅能不能赏个Star嘛~ 码代码挺辛苦的哈哈）\n\n## 功能支持的更新\n\n* [x] 感谢 [`@ThumpBo`](https://github.com/ThumpBo) 师傅提出的建议，增加了读取指定TXT批量扫描敏感文件的功能 `-df` 并将扫描成功结果导出至 `dumpout.txt` 内\n* [x] 对下载敏感文件的模块进行报错优化，将报错内容并入至 `error.log`\n* [x] 感谢 [`@YanXi9999`](https://github.com/YanXi9999) 师傅的贡献，在读取指定TXT并批量信息泄露扫描过程中，去除重复页面提高效率\n* [x] 对端点爆破模块进行优化，对页面进行Hash计算，如果发现页面Hash相同的情况就不导入到 `urlout.txt`\n* [x] 在目录爆破 `run.py` /POC探测  `poc.py` /漏洞利用 `vul.py` 这三个核心模块，新增全局变量 `outtime = 10` 可自由调整各模块HTTP访问超时时间\n* [x] 感谢 [`@Viking`](https://github.com/VK2000) 师傅，增加了部分 `Dir.txt` 敏感端点爆破字典的内容\n* [x] 感谢 [`@Fkalis`](https://github.com/WingBy-Fkalis) 师傅，使用 `aiohttp` 对批量信息泄露扫描进行并发处理，大大提高 `-uf` 参数的扫描速度\n* [x] 新增支持多个参数自定义HTTP头部（请求头）进行操作，功能实现啦，快来试试吧~\n* [x] 新增支持资产测绘导出的时候自定义查询语句，更加灵活的导出目标资产数据\n* [x] 新增在敏感端点爆破爆破（单一和批量）的时候进行延时扫描，防止扫描速度太快被拦截\n* [x] 新增 [Hunter资产测绘](https://hunter.qianxin.com/) 导出模块，自动对接API接口将资产导出至 `hunterout.txt`\n* [x] 新增 [Fofa资产测绘](https://fofa.info/) 导出模块，自动对接API接口将资产导出至 `fofaout.txt`\n* [x] 新增 [ZoomEye资产测绘](https://www.zoomeye.org/) 导出模块，自动对接API接口将资产导出至 `zoomout.txt`\n* [x] 在Spring端点爆破的时候，新增过滤一些无效回显的页面，提高工作效率\n* [x] 对端点爆破字典进行优化，增加一些绕过语句，如果有补充欢迎提交\n* [x] 支持自动对Spring进行指纹识别\n* [x] 在漏洞利用模块，对错误进行输出为 `error.log`\n* [x] 支持使用带认证的HTTP代理节点，自动检测节点状态\n* [x] 由 [`@13exp`](https://github.com/13exp) 师傅友情制作GUI图形化版本\n* [x] 验证代理是否存活，并可以使用HTTP代理认证，支持使用HTTP/HTTPS代理所有流量\n* [x] 随机User-Agent请求头\n* [x] 解决SSL证书问题 (自签名证书请改成 `http://` 即可)\n* [x] 智能识别目标地址 (`example.com` 和`http://example.com/` 以及`http://example.com` 都不会报错)\n\n## 注明\n\n- **本工具优化了使用者体验，不管是对单一URL扫描还是读取TXT进行批量扫描，`example.com` 和`http://example.com/` 以及`http://example.com` 都不会报错，程序会自行判断并识别**\n- **解决了SSL证书问题，可以对采用SSL证书的Spring Boot框架进行扫描（自签名证书请改成 `http://` 即可）**\n- **对于二级目录部署的Spring项目，直接给工具相应的路径就行了（比如 `example.com/test/` 这个路径部署了Spring项目，那直接将 `example.com/test/` 传参给工具就行了）**\n\n**GUI图形化版本，由 [`@13exp`](https://github.com/13exp) 师傅友情制作，GUI地址：[https://github.com/13exp/SpringBoot-Scan-GUI](https://github.com/13exp/SpringBoot-Scan-GUI)**\n\n![GUI](./pic/GUI.png)\n\n**注：因为本项目的 `vul.py` 和GUI项目均包含漏洞利用模块，杀软报毒和查杀为正常情况。如果觉得工具不错，师傅们可以点个Star哈哈~**\n\n# 🚨 三、安装Python依赖库\n```\npip install -r requirements.txt\n```\n\n如果pip安装速度慢，可以采用国内源进行安装：\n\n```\npip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/\n```\n\n# 🐉 四、工具使用\n\n如何找到互联网上的Spring框架，ZoomEye语法如下：\n\n```\napp:\"Spring Framework\"\n```\n\nFofa语法如下：\n\n```\nicon_hash=\"116323821\"||body=\"Whitelabel Error Page\"\n```\n\n本工具的参数如下：\n\n```\n# python3 SpringBoot-Scan.py\n  ______                       __                      _______                        __     \n /      \\                     |  \\                    |       \\                      |  \\    \n|  $$$$$$\\  ______    ______   \\$$ _______    ______  | $$$$$$$\\  ______    ______  _| $$_   \n| $$___\\$$ /      \\  /      \\ |  \\|       \\  /      \\ | $$__/ $$ /      \\  /      \\|   $$ \\  \n \\$$    \\ |  $$$$$$\\|  $$$$$$\\| $$| $$$$$$$\\|  $$$$$$\\| $$    $$|  $$$$$$\\|  $$$$$$\\\\$$$$$$  \n _\\$$$$$$\\| $$  | $$| $$   \\$$| $$| $$  | $$| $$  | $$| $$$$$$$\\| $$  | $$| $$  | $$ | $$ __ \n|  \\__| $$| $$__/ $$| $$      | $$| $$  | $$| $$__| $$| $$__/ $$| $$__/ $$| $$__/ $$ | $$|  \\\n \\$$    $$| $$    $$| $$      | $$| $$  | $$ \\$$    $$| $$    $$ \\$$    $$ \\$$    $$  \\$$  $$\n  \\$$$$$$ | $$$$$$$  \\$$       \\$$ \\$$   \\$$ _\\$$$$$$$ \\$$$$$$$   \\$$$$$$   \\$$$$$$    \\$$$$ \n          | $$                              |  \\__| $$                                       \n          | $$                               \\$$    $$   [+] V2.6-2025年 蛇年新春贺岁版     \n           \\$$                                \\$$$$$$    [+] 感谢一路上支持和关注我们的师傅  \n            ______                                                                           \n           /      \\                                  +-------------------------------------+ \n          |  $$$$$$\\  _______  ______   _______      + Version: 2.6                        + \n          | $$___\\$$ /       \\|      \\ |       \\     + Author: 曾哥(@AabyssZG)             + \n           \\$$    \\ |  $$$$$$$ \\$$$$$$\\| $$$$$$$\\    + Whoami: https://github.com/AabyssZG + \n           _\\$$$$$$\\| $$      /      $$| $$  | $$    +-------------------------------------+ \n          |  \\__| $$| $$_____|  $$$$$$$| $$  | $$    + 多进程速度提升: Fkalis              + \n           \\$$    $$ \\$$     \\\\$$    $$| $$  | $$    + Whoami: github.com/WingBy-Fkalis    + \n            \\$$$$$$   \\$$$$$$$ \\$$$$$$$ \\$$   \\$$    +-------------------------------------+ \n\n用法:\n        对单一URL进行信息泄露扫描:         python3 SpringBoot-Scan.py -u http://example.com/\n        读取目标TXT进行批量信息泄露扫描:   python3 SpringBoot-Scan.py -uf url.txt\n        对单一URL进行漏洞扫描:             python3 SpringBoot-Scan.py -v http://example.com/\n        读取目标TXT进行批量漏洞扫描：      python3 SpringBoot-Scan.py -vf url.txt\n        扫描并下载SpringBoot敏感文件:      python3 SpringBoot-Scan.py -d http://example.com/\n        读取目标TXT进行批量敏感文件扫描:   python3 SpringBoot-Scan.py -df url.txt\n        使用HTTP代理并自动进行连通性测试:    python3 SpringBoot-Scan.py -p \u003c代理IP:端口\u003e\n        从TXT文件中导入自定义HTTP头部:       python3 SpringBoot-Scan.py -t header.txt\n        通过ZoomEye密钥进行API下载数据:      python3 SpringBoot-Scan.py -z \u003cZoomEye的API-KEY\u003e\n        通过Fofa密钥进行API下载数据:         python3 SpringBoot-Scan.py -f \u003cFofa的API-KEY\u003e\n        通过Hunter密钥进行API下载数据:       python3 SpringBoot-Scan.py -y \u003cHunter的API-KEY\u003e\n```\n\n# 🛸 五、工具演示\n\n## 0# Spring资产测绘\n\n### 通过ZoomEye进行Spring资产测绘\n\n本工具专门对接了 [ZoomEye的API接口](https://www.zoomeye.org/doc)，使用API-KEY即可批量下载Spring的资产测绘数据：\n\n```\npython3 SpringBoot-Scan.py -z \u003cZoomEye的API-KEY\u003e\n```\n\n![ZoomEye](./pic/ZoomEye.png)\n\n**注：目前该模块已经支持自定义语法的资产测绘导出；资产测绘结束后，会把通过API下载的结果导出到 `zoomout.txt`，就可以使用其他参数进行操作啦**\n\n### 通过Fofa进行Spring资产测绘\n\n本工具专门对接了 [Fofa的API接口](https://fofa.info/api)，使用API-KEY即可批量下载Spring的资产测绘数据：\n\n```\npython3 SpringBoot-Scan.py -f \u003cFofa的API-KEY\u003e\n```\n\n![Fofa](./pic/Fofa.png)\n\n**注：目前该模块已经支持自定义语法的资产测绘导出；资产测绘结束后，会把通过API下载的结果导出到 `fofaout.txt`，就可以使用其他参数进行操作啦**\n\n### 通过Hunter鹰图进行Spring资产测绘\n\n本工具专门对接了 [鹰图的API接口](https://hunter.qianxin.com/home/helpCenter?r=5-1-2)，使用API-KEY即可批量下载Spring的资产测绘数据：\n\n```\npython3 SpringBoot-Scan.py -y \u003cHunter的API-KEY\u003e\n```\n\n![Hunter](./pic/Hunter.png)\n\n**注：目前该模块已经支持自定义语法的资产测绘导出；资产测绘结束后，会把通过API下载的结果导出到 `hunterout.txt`，就可以使用其他参数进行操作啦**\n\n## 1# 测试并使用代理和自定义HTTP头部\n\n### 测试并使用代理\n\n```\npython3 SpringBoot-Scan.py -p \u003c代理IP:端口\u003e\npython3 SpringBoot-Scan.py -p \u003cHTTP认证账号:HTTP认证密码@代理IP:端口\u003e\n```\n\n![测试代理](./pic/测试代理.png)\n\n比如我想对单一URL进行信息泄露扫描并使用代理\n```\npython3 SpringBoot-Scan.py -u example.com -p \u003c代理IP:端口\u003e\npython3 SpringBoot-Scan.py -p \u003cHTTP认证账号:HTTP认证密码@代理IP:端口\u003e\n```\n同样，其他参数（`-u` / `-uf` / `-v` / `-vf` / `-d`）均可以配合代理使用\n\n### 测试并使用自定义HTTP头部（自定义请求头）\n\n```\npython3 SpringBoot-Scan.py -t header.txt\n```\n\n![Headers](./pic/Headers.png)\n\n使用该自定义HTTP头部功能请自行更改 `header.txt` 内的内容，允许（`-u` / `-uf` / `-v` / `-d`）参数使用，因为批量漏洞扫描没有明确需求故没加入该功能\n\n## 2# 对单一URL进行敏感端点爆破\n\n`Dir.txt` 为内置的Spring端点爆破字典，我基本收集齐了Spring Boot的相关敏感信息泄露端点\n\n如果有遗漏，欢迎各位师傅跟我联系哈哈\n\n```\npython3 SpringBoot-Scan.py -u example.com\n```\n\n![扫描单一URL](./pic/扫描单一URL.png)\n\n新增延时扫描选项，如果不想延时扫描输入 `0` 回车即可\n\n**注：扫描结束后，会把成功的结果导出为同目录下的 `urlout.txt`**\n\n## 3# 读取目标TXT进行批量信息泄露扫描\n\n```\npython3 SpringBoot-Scan.py -uf url.txt\n```\n\n![读取TXT并批量扫描](./pic/读取TXT并批量扫描.png)\n\n新增延时扫描选项，如果不想延时扫描输入 `0` 回车即可；感谢 [`@Fkalis`](https://github.com/FFR66) 师傅，新增并发扫描选项，默认并发数为10\n\n**注：由于版本更新，在2.21版本之后，读取TXT并扫描的参数改为 `uf`，扫描结束后，会把成功的结果导出为同目录下的 `output.txt`**\n\n## 4# 对单一URL进行漏洞利用\n\n```\npython3 SpringBoot-Scan.py -v example.com\n```\n\n![对单一URL进行漏洞利用](./pic/对单一URL进行漏洞利用.png)\n\n已经实现RCE漏洞，命令自定义功能（不要拿去干坏事哦）\n\n**同时，后期将加入更多漏洞利用内置模块，请师傅们敬请期待~**\n\n## 5# 读取目标TXT进行批量漏洞扫描\n\n```\npython3 SpringBoot-Scan.py -vf url.txt\n```\n\n![Poc](./pic/Poc.png)\n\n可以自由选择漏洞库里面的漏洞进行批量验证，扫描结束后将导出成功的内容至 `vulout.txt` 内\n\n## 6# 扫描并下载SpringBoot敏感文件\n\n```\npython3 SpringBoot-Scan.py -d example.com\n```\n\n![扫描并下载SpringBoot敏感文件](./pic/扫描并下载SpringBoot敏感文件.png)\n\n**注：扫描到的敏感文件，会自动下载到脚本的运行目录，有进度条可以看到实时下载进度**\n\n目前敏感文件目录内置了5个，如下：\n\n```\nactuator/heapdump\ngateway/actuator/heapdump\nheapdump\nheapdump.json\nhystrix.stream\nartemis-portal/artemis/heapdump\n```\n\n## 7# 读取目标TXT进行批量敏感文件扫描\n\n```\npython3 SpringBoot-Scan.py -df url.txt\n```\n\n![读取目标TXT进行批量敏感文件扫描](./pic/读取目标TXT进行批量敏感文件扫描.png)\n\n扫描结束后将导出成功的内容至 `dumpout.txt` 内\n\n如果有师傅有其他敏感文件的目录，可以提交issues，谢谢！！！\n\n# 🖐 六、免责声明\n\n1. 如果您下载、安装、使用、修改本工具及相关代码，即表明您信任本工具\n2. 在使用本工具时造成对您自己或他人任何形式的损失和伤害，我们不承担任何责任\n3. 如您在使用本工具的过程中存在任何非法行为，您需自行承担相应后果，我们将不承担任何法律及连带责任\n4. 请您务必审慎阅读、充分理解各条款内容，特别是免除或者限制责任的条款，并选择接受或不接受\n5. 除非您已阅读并接受本协议所有条款，否则您无权下载、安装或使用本工具\n6. 您的下载、安装、使用等行为即视为您已阅读并同意上述协议的约束\n\n# 🙏 七、感谢各位师傅\n\n## Stargazers\n\n[![Stargazers repo roster for @AabyssZG/SpringBoot-Scan](http://reporoster.com/stars/AabyssZG/SpringBoot-Scan)](https://github.com/AabyssZG/SpringBoot-Scan/stargazers)\n\n\n## Forkers\n\n[![Forkers repo roster for @AabyssZG/SpringBoot-Scan](http://reporoster.com/forks/AabyssZG/SpringBoot-Scan)](https://github.com/AabyssZG/SpringBoot-Scan/network/members)\n\n\n## Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=AabyssZG/SpringBoot-Scan\u0026type=Date)](https://star-history.com/#AabyssZG/SpringBoot-Scan\u0026Date)\n","funding_links":[],"categories":["Python","红队\u0026渗透测试"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAabyssZG%2FSpringBoot-Scan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FAabyssZG%2FSpringBoot-Scan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAabyssZG%2FSpringBoot-Scan/lists"}