用开源工具给自家业务做“体检”——一次渗透测试实操记录
全部开源,装一遍就能用。关键点:信息收集 > 自动化验证 > 手工确认,别指望一键出结果。防护建议:除了修漏洞,把源站隐藏好、接入带 AI 清洗的高防 IP,至少让脚本小子扫不到真实入口。时间成本:整个流程 1 个人 1 天搞定,比走招标流程请外部团队快多了。彩蛋修完漏洞后,我把测试脚本改成定时任务,每周日凌晨跑一次,报告直接飞书群里。领导一看,省了外包钱,还顺便给绩效加了分。
背景
上个月公司把新上线的优惠券系统交给我做安全验收,预算有限,请不起外部团队,于是干脆自己撸袖子干。整套流程跑下来,发现不少“小惊喜”,也踩了一些坑,把过程整理出来,给同样想低成本做渗透测试的同学一个参考。
0x01 划定范围:先搞清楚“打哪里”
业务架构很简单:
- 前端:Vue3 + Nginx
- 后端:Spring Boot 3.2(RESTful 接口)
- 数据库:MySQL 8.0
- 额外资产:管理后台、小程序、CDN 静态资源
先拉个表格,把域名、IP、端口都列出来,方便后续扫描。
| 域名/子域 | IP | 端口 | 备注 |
|---|---|---|---|
| api.xxx.com | 43.142.. | 443 | 生产接口 |
| admin.xxx.com | 同上 | 443 | 管理后台 |
| cdn.xxx.com | CDN 回源 | 80/443 | 静态资源 |
0x02 信息收集:三行命令把“家底”翻出来
# 1. 子域爆破(subfinder + dnsx,1 分钟搞定)
subfinder -d xxx.com -silent | dnsx -silent -a -resp-only > subdomains.txt
# 2. 端口快速扫描(naabu 并发 1000,半分钟扫完全网段)
naabu -iL subdomains.txt -p 1-65535 -rate 1000 -silent > ports.txt
# 3. 服务指纹识别(httpx 顺手把 title 也抓回来)
httpx -l ports.txt -title -tech-detect -status-code -csv-o services.csv
跑完一看,admin.xxx.com 居然开着 8080 调试端口,心里一凉——这要是被扫到,直接白给。
0x03 漏洞扫描:半自动最香,别当“工具小子”
用 Nuclei 跑社区模板,先筛掉误报高的:
# 只跑高危 & 中危,去掉信息泄露模板
nuclei -l services.csv -severity high,medium -exclude-tags info -o nuclei_results.txt
结果里有一条「Spring Boot Actuator 未授权访问」命中 /actuator/env,浏览器直接访问,果然能看到 Redis 密码明文——当场把运维同事从午睡中叫醒。
0x04 手工验证:别让自动化“忽悠”你
Nuclei 报了一个「JWT 弱密钥」,用 jwt_tool 验证一下:
git clone https://github.com/ticarpi/jwt_tool
python3 jwt_tool.py eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9... -C /usr/share/wordlists/rockyou.txt
不到 10 秒就爆出 secret123,顺手改 payload 把 role 改成 admin,重新签名后访问 /admin/users,直接返回全量用户列表——业务逻辑越权坐实。
0x05 绕过 CDN 找真实 IP:别被“高防”迷惑
很多同事以为上了 CDN 就高枕无忧,其实套路很简单:
- 历史 DNS 记录(SecurityTrails)查到 2 个月前的 A 记录。
- 证书透明度日志搜索
*.xxx.com,发现一台origin.xxx.com解析到真实源站 43.142.*.200。 - 直接 curl 带 host 头绕过 CDN:
curl -H "Host: api.xxx.com" http://43.142.*.200/health,秒回 200 OK。
小插曲
因为源站暴露在公网,被扫过几次,后来运维把源站 IP 加到「群联 AI 云防护」的专属高防 IP 段,攻击流量先过 AI 清洗,再到源站,基本没再出现被打瘫的情况。虽然是自己人搞的测试,但也算提前验证了高防效果。
0x06 总结:低成本也能玩得转
- 工具链:
subfinder + naabu + httpx + nuclei + jwt_tool,全部开源,装一遍就能用。 - 关键点:信息收集 > 自动化验证 > 手工确认,别指望一键出结果。
- 防护建议:除了修漏洞,把源站隐藏好、接入带 AI 清洗的高防 IP,至少让脚本小子扫不到真实入口。
- 时间成本:整个流程 1 个人 1 天搞定,比走招标流程请外部团队快多了。
彩蛋
修完漏洞后,我把测试脚本改成定时任务,每周日凌晨跑一次,报告直接飞书群里。领导一看,省了外包钱,还顺便给绩效加了分。
更多推荐

所有评论(0)