文章总结: 在一次渗透测试中,通过目录扫描工具发现了一个隐藏的页面swagger-ui.html。该页面虽显示为系统首页,但服务器返回状态码为200,与其他404页面不同。在这个被遗忘的页面的JS代码中,找到了未授权访问的API接口,攻击者利用这些接口获取了管理系统的用户列表和敏感信息,并成功重置密码登录后台。漏洞原因为项目方以为已删除的对客部分代码仍被保留。
综合评分: 85
文章分类: 渗透测试,WEB安全,实战经验,漏洞分析
一次隐藏页面泄露导致的未授权
原创
进击的HACK
进击的HACK
进击的HACK
2026年3月21日 19:22
江苏
字数 471,阅读大约需 3 分钟
测试流程
近期做的一个渗透测试项目,客户只提供的资产里仅包含域名,让我们自己信息收集做测试。
其中有一个 Tomcat 搭建的网站,直接访问 http://demo.com:8889/ 显示 403
7ea496f8ac163cca11d0fd8f962e075d.png
随意添加一个子路径,显示 404
88f3c8dc720e2edc0dcdf43b8c46b8c4.png
先整理一个常用的子路径字典,用 dirsearch 跑子路径,当子路径存在的时候,虽然也显示 404,但是为 Tomcat 的 404
2cf1c2e4705c6a4054e2d5afb35c1e80.png
说明这个子路径下面的有东西的,继续跑常见的路径字典。
当跑到 swagger-ui.html 的时候,页面 200。
0bedb179f82fc103e4e14df2dd3ecfa3.png
但下面先生的并非 swagger 文档以及 api-docs,而是这个系统的首页。
爆破的其他常见路径都显示 404,唯独 swagger-ui.html 报的是 200,返回的主页面。
找了一下规律,发现服务器是匹配到 -ui.html 后,判断页面不存在就返回首页,如果页面存在就返回当前页面。
如果不是按照惯例跑 springboot 相关接口字典,还未必能找到。
后续提交漏洞时候,和客户沟通。客户说这个系统是门户系统,分对客的页面和管理系统,但他们只用了管理系统,对客的那部分没用。
他们以为代码已经删除,但还保留着。
在隐藏的 HTML 页面的 JS 当中,保存着可以未授权访问的 API 接口。
简单跑了点端口,就可以未授权的获取管理系统的用户以及敏感信息。还可以进行任意用户密码重置,从而登录系统。
这个已经废弃的面客网站的 JS 代码里,还有后台的登录地址。拿着跑 API 接口获取的用户,重置密码后成功登录。
小结
这次测试运气成分比较大。但结果是好的。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:进击的HACK 进击的HACK
进击的HACK《一次隐藏页面泄露导致的未授权》