文章总结: 文章讲述了一个API返回后端微服务IP导致未授权敏感信息泄露的漏洞案例。作者发现登录API返回的数据包中包含后端微服务地址,通过直接访问微服务API绕过了前端网关鉴权,获取了敏感信息。作者使用Burpsuite将前端请求重定向到后端微服务,实现了未授权访问。这提醒我们在渗透测试中不要忽视服务端返回的异常信息,尤其是API相关内容。
综合评分: 87
文章分类: WEB安全,渗透测试,漏洞分析,应急响应,安全建设
web返回微服务IP导致未授权敏感信息泄露
原创
进击的HACK
进击的HACK
2025年11月27日 07:51
江苏
声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途给予盈利等目的,否则后果自行承担!如有侵权烦请告知,我会立即删除并致歉。谢谢!
文章有疑问的,可以公众号发消息问我,或者留言。我每天都会看的。
字数 552,阅读大约需 3 分钟
前言
今天分享我挖到的一个API返回后端API导致的未授权敏感信息泄露。
现在很多采用spring框架的系统,会使用微服务架构,即通过gateway网管,对API进行分析,匹配到后发送到后端的微服务中。
一个安全的系统,要访问系统的API需要经过鉴权,如果没有相关凭证会在网关处被拦截。
而网关到微服务,微服务与微服务之间的通信,一般来说在内网,或者隐藏在前端的后面,开发为了方便和效率,并不会在这二者间鉴定Cookie是否有效。
测试过程
我遇到的一个管理系统,开放在互联网上的仅有一个登录页面,输入账号密码,密码枚举没有成功。
登录的API: http://192.168.1.1/xxx/api/auth/login
但在返回的数据包中,有这么一个字段
"req_api":"http://192.168.1.2/auth/login"
一瞬间就猜测着肯呢个是后面微服务的API,或者是在NGINX等中间件后面的服务接口。
直接请求req_api,提示IP不在白名单内。
能访问到,说明部署在了公网。
尝试绕过IP限制
X-Forwarded-For: 127.0.0.1
X-Forwarded-Host: 127.0.0.1
X-Real-IP: 127.0.0.1
X-Original-Host: 127.0.0.1
X-Original-IP: 127.0.0.1
Via: 127.0.0.1
X-Via: 127.0.0.1
CF-Connecting-IP: 127.0.0.1
X-Client-IP: 127.0.0.1
X-Cluster-Client-IP: 127.0.0.1
没成功
接着考虑gateway会和微服务进行交互,那么替换127.0.0.1为系统的公网IP192.168.1.1
提示账号密码错误。
接着从JS当中提取API接口,将前缀去掉,直接拼在微服务的IP后面,成功打印出需要登录后才能查看的信息。
后续为了操作方便,通过Burpsuite的proxy模块的匹配替换功能,将js代码中的所有192.168.1.1替换为192.168.1.2,并在请求头中添加X-Forwarded-For信息。
访问 /index 直接显示相关信息,除了某些需要鉴定身份的功能会报错外,其他功能只要在前端点点点就能找到未授权,不用费尽心思拼接参数了。
总结
渗透测试中,不要放过服务端返回的在通常情况下不会返回的信息,尤其是和API相关的。
欢迎加入知识星球,星球内容主要有:
1、公众号文章备份、工具分享。
2、常见问题的答疑、解决方案汇总在知识星球,作为便于搜索的知识库。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:进击的HACK 进击的HACK《web返回微服务IP导致未授权敏感信息泄露》