实战|从零开始的SRC挖掘——如何一洞百分
字数 1950 2025-08-09 19:14:07
Spring Boot安全漏洞挖掘实战指南
信息搜集篇
1. 目标资产发现
1.1 基础信息搜集
- 公司/机构信息:使用企查查、小蓝本或爱企查查询目标及其子公司
- 域名发现:通过备案信息、APP、小程序、微信公众号、微博等渠道获取
- WHOIS查询:获取IP段、注册邮箱等关键信息
1.2 子域名爆破
- 工具推荐:
- OneForAll
- 子域名收割机(已淘汰,建议OneForAll配合Goby)
- Layer子域名挖掘机
- 配合Masscan进行端口验证
1.3 IP资产发现
- 通过WHOIS获取目标购买的IP段
- 使用资产测绘工具扫描整个IP段
2. 资产测绘工具
2.1 主动扫描工具
- Goby:强大的资产测绘工具,可识别Web服务
- Kunyu:整合了ZoomEye、360Quake等接口的信息搜集工具
2.2 被动信息源
- FOFA:
- 搜索语法:
org="China Education and Research Network Center" - 图标哈希搜索:
icon_hash="-xxxxxx"
- 搜索语法:
- Shodan:
- 搜索语法:
org:"China Education and Research Network"
- 搜索语法:
- 360Quake:
- 搜索语法:
isp: "中国教育网" AND city: "Beijing City"
- 搜索语法:
- 微步在线:优秀的反向IP查询工具
3. 搜索引擎技巧
3.1 Google Hacking
- 基础语法:
site:"edu.cn" - 后台查找:
inurl:login|admin|manage|member - 注入点查找:
site:域名 inurl:aspx|jsp|php|asp - 上传漏洞查找:
site:域名 inurl:file|load|editor|Files
3.2 图标哈希计算
Python计算脚本:
import mmh3
import requests
response = requests.get('url/favicon.ico',verify=False)
favicon = response.content.encode('base64')
hash = mmh3.hash(favicon)
print hash
4. 移动端资产
4.1 小程序分析
- 使用Crackminapp逆向微信小程序
- 重点检查app.js中的主URL和其他JS文件中的API接口
4.2 APP抓包
- 使用Charles进行抓包(安卓7以下)
- 高版本安卓需要特殊配置
Spring Boot漏洞挖掘篇
1. Spring Boot特征识别
1.1 常见特征
- 404错误页面特定样式
- 默认路由暴露
- Actuator端点
1.2 批量识别脚本
import requests
list = ['',''] # 目标列表
for i in list:
try:
url = "http://" +i + "/actuator/env"
print(url)
res = requests.get(url=url,allow_redirects=False,timeout=5)
print(res.text)
url = "http://" +i + "/env"
print(url)
res = requests.get(url=url,allow_redirects=False,timeout=5)
print(res.text)
except:
pass
2. 敏感信息泄露
2.1 关键端点
- Spring Boot 1.x:
/env - Spring Boot 2.x:
/actuator/env - 其他重要端点:
/actuator /auditevents /autoconfig /beans /caches /conditions /configprops /docs /dump /env /flyway /health /heapdump /httptrace /info
2.2 Heapdump分析
- 访问
/heapdump或/actuator/heapdump获取堆转储文件 - 使用Memory Analyzer工具分析
- OQL查询语句:
select * from java.util.Hashtable$Entry x WHERE (toString(x.key).contains("password")) 或 select * from java.util.LinkedHashMap$Entry x WHERE (toString(x.key).contains("password"))
3. RCE漏洞利用
3.1 Eureka XStream反序列化
- 修改defaultZone配置
- 触发配置刷新
- 通过DNSLog验证
注意:修改配置有风险,需提前联系相关人员
3.2 Jolokia Logback JNDI注入
- 利用Jolokia端点进行JNDI注入
- 参考工具:https://github.com/LandGrey/SpringBootVulExploit
4. Swagger相关漏洞
- 常见Swagger路由:
/v2/api-docs /swagger-ui.html /swagger /api-docs /api.html /swagger-ui /swagger/codes - 使用工具:https://github.com/lijiejie/swagger-exp
批量挖掘实战
1. 目标获取
- 在FOFA搜索:
icon_hash="-xxxxxx"或org="China Education and Research Network Center" - 在ZoomEye搜索:
isp:"CHINAEDU"
2. 漏洞验证流程
- 识别Spring Boot应用
- 检查Actuator端点
- 分析heapdump获取敏感信息
- 尝试RCE漏洞利用
- 检查Swagger接口
注意事项
- 所有测试需获得授权
- 修改配置类操作需特别谨慎
- 发现漏洞后及时报告
- 遵守各SRC平台规则
参考资源
- Spring Boot漏洞利用工具集:https://github.com/LandGrey/SpringBootVulExploit
- Swagger漏洞利用工具:https://github.com/lijiejie/swagger-exp
- Kunyu信息搜集工具:https://github.com/knownsec/Kunyu
- JSFinder工具:https://github.com/Threezh1/JSFinder
通过系统化的信息搜集和针对性的漏洞探测,可以有效发现Spring Boot应用中的安全风险。关键在于全面的资产发现和细致的漏洞验证。