记一次某事业单位的二杀
字数 2664
更新时间 2026-04-12 11:51:00
记一次对某事业单位渗透测试的教学文档
概述
本文档基于一篇渗透测试记录,详细阐述了针对某类事业单位(博物馆、旅游预约等信息系统)的常见渗透思路与方法。核心目标是通过攻击后台管理系统获取敏感信息。文中记录了两次成功渗透(“第一杀”与“第二杀”)的过程与思路,其中第二次渗透运用了一种巧妙的响应包替换技术。
渗透目标与背景分析
- 目标类型:事业单位,特别是涉及旅游、参观预约服务的单位(如博物馆)。
- 核心假设:此类目标的后台系统存储大量游客个人信息(如姓名、身份证号),是极具价值的攻击目标。
- 常见入口:公开的预约小程序、Web登录门户是进入后台系统的常见渠道。
渗透流程详解
第一阶段:信息收集与入口发现
- 目标定位:通过公开渠道(如小程序)发现目标单位的信息系统。案例中攻击者首先找到一个博物馆事业单位的小程序。
- 流量截获:在访问小程序的同时,使用代理工具(如Burp Suite)对网络请求进行抓包。
- 后台地址获取:从抓取到的数据包中,可以提取到后台系统的真实访问地址(Host)。例如,从请求中发现类似
admin.xxx.com的后台域名或路径。 - 初步攻击:将获取的后台地址直接在Web浏览器中访问,尝试直接登录。
第二阶段:第一杀 - 常规弱口令攻击
- 攻击方式:在发现的第一个后台登录口,尝试常见的弱口令(如
admin/admin、admin/123456)。 - 结果:直接利用弱口令成功进入后台管理系统,获取了初步权限。但此入口后续已被修复,说明该漏洞已被发现并修补。
第三阶段:第二杀 - 进阶攻击与思路转变
在第一个入口被修复后,攻击者面对同一单位的另一个登录界面,采用了更系统的攻击流程。
第一步:常规测试(均未成功)
- 弱口令爆破:尝试对登录接口进行密码爆破,但未发现有效的弱口令。
- 响应修改尝试:拦截登录失败的响应包,尝试修改其内容(如将表示失败的
error改为ok或success),以欺骗前端使其认为登录成功。但单纯修改状态值通常无法绕过服务端的真实会话验证,本次尝试失败。 - 信息泄露探测:
- 浏览器插件:使用“看雪”等安全插件探测页面是否存在路径拼接等导致的未授权访问漏洞,未果。
- 源代码分析:检查网页的JavaScript文件,搜索如
admin、passwd、password等敏感关键词,寻找硬编码的凭证或接口信息,未发现有效信息。 - 目录扫描:使用
dirsearch等目录爆破工具扫描网站后台、敏感文件(如备份文件、配置文件),未发现可利用的敏感路径。
第二步:关键突破 - 响应包替换技术
当常规方法均告失败时,攻击者转换思路,利用同一单位系统可能存在的统一架构和认证逻辑。
- 寻找参照物:攻击者没有放弃,转而收集目标单位的其他子域名或相关网站。目的是找到一个属于同一单位、使用相同或类似后台系统、并且仍然存在弱口令漏洞的网站。
- 获取有效响应包:成功找到一个存在弱口令的后台,用弱口令(如
admin/123456)正常登录。在此过程中,完整抓取登录成功的HTTP响应包。这个响应包包含了服务器在认证成功后返回的所有信息,如状态码、Set-Cookie头、可能的跳转信息或JSON响应体(例如:{"code": 200, "msg": "登录成功", "data": {...}})。 - 实施替换攻击:
- 回到最初无法攻破的目标登录界面。
- 输入任意账号密码(或弱口令)发起登录请求。
- 使用代理工具拦截服务器返回的登录失败响应包。
- 将整个失败的响应包内容,完全替换为之前从参照网站获取的“登录成功响应包”。
- 将修改后的响应包转发给客户端(浏览器)。
- 攻击生效原理:客户端(浏览器或前端代码)接收到这个伪造的“成功响应”后,会按照其指示执行。例如,如果响应包中包含了有效的
Session Cookie,浏览器就会保存这个Cookie,使攻击者的会话被识别为已登录状态;如果响应是成功的JSON并触发页面跳转,前端就会执行跳转进入后台。这本质上是利用客户端对服务器响应的完全信任,只要响应格式与正常成功时一致,就能绕过服务端的认证。 - 攻击结果:通过此方法,成功绕过登录验证,进入后台管理系统。在案例中,攻击者最终获取了超过100万条包含身份证号的敏感信息。
技术总结与防御建议
渗透测试要点总结
- 信息收集是关键:从公开应用(小程序、公众号)抓包是发现后台入口的有效手段。
- 基础攻击不可忽视:弱口令永远是最高效的攻击方式之一,应作为首轮测试项。
- 系统化测试流程:当基础攻击无效时,应遵循流程进行测试:
- 弱口令/密码爆破。
- 检查未授权访问(路径遍历、权限绕过)。
- 前端源代码(JS、HTML)信息泄露挖掘。
- 目录与敏感文件扫描。
- 高级绕过思路:响应包替换(Response Manipulation/Poisoning)是绕过前端认证逻辑的一种有效手段,尤其在多个系统共享相同前端代码但后端认证逻辑存在不一致或漏洞时。
- 核心:找到一个成功的“认证响应样本”。
- 前提:目标系统未对响应包进行有效的防篡改签名验证,且前端逻辑完全依赖响应内容判断状态。
安全防御建议
- 强化认证机制:
- 强制使用强密码策略,禁用默认口令和常见弱口令。
- 实施多因素认证。
- 增加登录失败锁定和验证码机制,防范爆破。
- 安全开发与设计:
- 前后端认证状态同步:前端不应仅依赖HTTP响应体的某个字段(如
msg: "成功")判断登录状态。关键的身份验证状态必须在服务端进行严格校验,并通过安全的、不可预测的令牌(如随机生成的Session ID)来维持。 - 响应完整性校验:对关键的认证API响应进行签名(如HMAC),使前端能够验证响应确实来自可信的服务端且未被篡改。
- 最小化信息暴露:前端代码(JavaScript)中不应包含任何后台地址、接口密钥、认证逻辑等敏感信息。
- 前后端认证状态同步:前端不应仅依赖HTTP响应体的某个字段(如
- 资产管理与监控:
- 定期梳理和收敛互联网暴露面,关闭不必要的子域名和服务。
- 对后台管理系统进行严格访问控制,尽可能避免直接暴露在公网,或通过VPN、零信任网络接入。
- 统一安全基线,及时修复已知组件的漏洞,避免一个系统的弱点成为整个单位的安全突破口。
- 渗透测试与审计:
- 定期对自身系统进行黑盒、白盒安全测试,尤其要测试认证与会话管理逻辑。
- 模拟攻击者进行“响应包替换”、“重放攻击”等测试,验证系统鲁棒性。
相似文章
相似文章