文章总结: 本文详述利用JSON响应泄露敏感数据接管基础设施的过程。攻击者发现接口回调的scope字段泄露了含内部API凭据的后端请求,从而成功登录公开暴露的oVirt管理面板,获得完全控制权。建议立即撤销凭据、清理调试数据并全面审计端点。 综合评分: 87 文章分类: SRC活动,渗透测试,WEB安全,实战经验
0122.如何通过一段冗长的 JSON 响应接管一家公司的整个基础设施。
原创
Swapnil Ade Swapnil Ade
Rsec
2026年1月26日 17:43 贵州
本文章仅用网络安全研究学习,请勿使用相关技术进行违法犯罪活动。
声明:本文搬运自互联网,如你是原作者,请联系我们!
类型:不安全的APP接口
#
#
🎬 第一幕:话太多的 ISO 按钮
#
点击“从 ISO 启动”后,我开始监控网络活动。我喜欢观察发出的请求类型——这就像偷听前端与后端之间的通信一样。
请求已发出:
POST /eq.php HTTP/1.1Host: panel.[REDACTED].comContent-Type: application/x-www-form-urlencodedmodule=eq&action=boot_dev&media=cd&attempts=50&timeout=1000&token=b68cefcf4349d9c9e45ec1132da3e4e4&id=82674&api_key=MY_API_KEY
完全在意料之中——这只是告诉虚拟机从挂载的 ISO 启动。
然后是轮询请求,用于检查启动状态:
POST /eq_callback.php?action=check HTTP/1.1Host: panel.[REDACTED].comContent-Type: application/x-www-form-urlencodedReferer: https://panel.[REDACTED].com/controlpanel.html?key=MY_API_KEY
#
👀 第二幕:泄露一切的回应
#
我打开了 JSON 响应,随意地浏览了一遍。
然后我在 scope 字段中发现了一些奇怪的东西。它不仅包含状态更新,还包含了……看起来像是一个完整的 HTTP 请求。
那条泄露一切的回调回复(译者:原图片不清晰)
我更加用力地盯着看。
没错,就是它:
{"result": "OK","scope": "{\"result\":\"OK\",\"message\":\"VM is boot for cdrom\"}&{POST https:\/\/ovr-client-nl2.[REDACTED].com\/ovirt-engine\/api\/vms\/...\/start HTTP\/1.1Authorization:[Basic aW52YXBxxxxxxxxxxxxxxxxxxxxndZaA==] ...}",...}
Authorization:[Basic aW52YXBxxxxxxxxxxxxxxxxxxxxndZaA==]
等等……什么?
他们实际上包含了后端自身 API 调用中的内部授权标头。
我立即用 base64 解码了它:
echo "aW52YXBxxxxxxxxxxxxxxxxxxxxndZaA==" | base64 -d# invapi@xxxxxxxx:t8C5n5xxxxxZFUzwYh
有效凭证。
就……坐在那儿。在客户端的回复报文中。
沿着路径找到管理面板
#
相同的调试 scope 还显示了完整的内部 API 端点。
https://ovr-client-nl2.[REDACTED].com/ovirt-engine/webadmin/sso/login
我打开了网址,出现了一个登录表单。没有 VPN,没有防火墙,就是……公共网络。 我输入:
- 用户名:
inxxxpi - 密码:
t8C5n5xxxxxZFUzwYh - 简介:
internal
接管 oVirt 管理面板
点击登录……砰!我就进去了。
我拥有对整个虚拟化控制平面的完全访问权限。
📉 出什么问题了
#
让我们来详细分析一下:
- 面向客户的功能(启动虚拟机)触发了后端请求。
- 状态检查响应泄露了内部服务器行为,包括原始的内部 HTTP 请求。
- 该原始请求的请求头中包含了敏感凭据。
- 在公开这些数据之前,没有采取任何访问控制措施。
- JSON 输出中未进行任何编辑或过滤。
这相当于给顾客开收据时,不小心把内部管理员的登录名和密码也打印在了上面。
📊 CVSS 评分:9.9 危重
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
🛡️ 推荐修复方案
- 立即撤销已泄露的凭证。
- 在将所有调试或跟踪数据返回生产环境之前,请对其进行清理。
- 永远不要向外部用户暴露原始的内部 HTTP 请求。
- 对类似端点进行全面审核。
- 将可能因这种模式而泄露的任何其他内部机密信息进行轮换。
#
💰 额外奖励:
在负责任地披露此漏洞后,我获得了 1500 美元的赏金。
获得 1500 美元赏金
为什么?因为这个问题将整个客户群暴露给了公众,如果不加以控制,可能会导致整个基础设施遭到破坏。
仅仅一个泄露的 JSON 字段、一个管理面板和一个暴露的标头,就足以导致这一切。
💥 这只虫子可不是一个人抓到的!
特别感谢我的搭档:kr1shna4garwal.com 🛠️👾
团队合作让这次漏洞利用成功了😎💻🔥
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:Rsec Swapnil Ade Swapnil Ade《0122.如何通过一段冗长的 JSON 响应接管一家公司的整个基础设施。》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。











评论