资产发现:寻找隐蔽的入口
目标
本次测试的目标是某大型科技公司的 “运维监控与预警中心” 微信服务号。
通常,企业服务号的底部菜单是连接企业内网或核心业务系统的“桥梁”。我们关注并点击了公众号底部的 “ECC值班” 菜单,系统自动回复了一个 URL 地址。
初步分析
点击跳转后,我们发现这是一个部署在 8089 端口的云运维管理平台。
URL 结构类似于:
http://target.com:8089/cloud
直接访问该 URL,会出现一个 403 禁止访问界面,测试似乎陷入了僵局。
漏洞挖掘:Fuzzing出奇迹
Directory Fuzzing
面对 403 错误,与其盲目尝试绕过,不如先探索一下 “网站目录下还藏着什么”。
操作思路
我们使用目录扫描工具对目标站点的 /cloud 目录进行字典遍历(Fuzzing),这是一种在 安全/渗透/逆向 测试中常用的资产发现手段。
关键发现 1:配置文件泄露
扫描器首先发现了一个配置文件路径:
/cloud/app/win/config/asp.ini
虽然该文件未包含直接的数据库密码,但它的存在暗示了服务器对静态文件或配置文件的权限控制较为松散。

关键发现 2:未授权访问的管理员页面
随着扫描的深入,一个名为 list_addr_fwresource_ip.jsp 的文件引起了我们的注意:
.../cloud/app/win/admin/list_addr_fwresource_ip.jsp
这不仅是一个文件名,更是一把“钥匙”。
漏洞验证:核心权限沦陷
Exploitation
我们尝试在浏览器中直接访问这个 .jsp 页面。令人意外的是,系统 没有任何鉴权跳转,直接展示了后台的用户管理列表!
敏感信息“裸奔”:
页面中完整展示了所有用户的详细信息,包括:
- 真实姓名
- 手机号码
- 用户类型(含系统管理员)
- 登录密码(MD5 加密值)
密码破解
虽然密码是加密存储的,但我们要知道,简单的 MD5 在彩虹表面前几乎是透明的。通过提取管理员账号的 Hash 值并在在线彩虹表网站查询,我们成功获取了其明文密码。
至此,攻击者可以使用该管理员账号登录系统,接管整个 运维 & 测试 预警平台,危害极大。
思考:为什么会发生?
Root Cause Analysis
这个漏洞属于典型的 “未授权访问” 叠加 “影子资产管理不当”。
1. 鉴权缺失(Broken Access Control)
开发者可能认为 admin 目录下的文件只有登录后通过菜单点击才能访问,从而忽略了对具体 .jsp 文件的独立鉴权。攻击者只要猜到了路径,就能绕过登录。
2. 目录遍历与遗留文件
这个文件名 list_addr_fwresource_ip.jsp 看起来像是一个测试页面或废弃的功能页面。这类“影子资产”往往不在正常的维护清单中,却成为了安全防线的缺口。
修复建议
针对此类漏洞,建议开发与运维团队:
1. 全站鉴权拦截: 在 Java Web 项目中,应通过 Filter 对 /admin/ 或 /app/ 等敏感目录进行统一的 Session 检查。任何未登录的请求访问此类后缀文件,都应强制重定向到登录页。
2. 清理影子资产: 定期扫描并清理生产环境中不再使用的测试文件、备份文件和废弃页面。
3. 最小权限原则: 即使是后台管理页面,也不应在前端直接输出用户的密码 Hash 值。
总结与思考
这是我第一次做此类内部项目,也是我第一次测试小程序。本次挖掘过程表明,不要被表面的访问限制所吓退,系统性的信息收集与路径探测(Fuzzing)往往能打开突破口。
受限于篇幅和敏感性,文中无法展开所有的测试细节。这类逻辑漏洞,本质上考验的是对业务流的分析与路径构造能力。此类实战复盘对于提升安全测试思维很有帮助,更多完整的技术笔记与交流,欢迎在 云栈社区 这样的技术论坛中探讨。