记一次EDU证书站挖掘
字数 1527
更新时间 2026-01-31 12:03:48
渗透测试教学:从边缘资产测绘到获取权限
概述
本教学文档基于一篇真实的渗透测试案例,详细记录了安全研究人员如何通过对一个教育机构(EDU)证书站的测试,发现并利用多个安全漏洞,最终获得系统权限的过程。文档将逐步解析测试的各个阶段,包括信息收集、漏洞发现与利用,旨在为安全学习者和从业者提供参考。
1. 信息收集与边缘资产测绘
1.1 目标锚定
- 目标为教育机构的证书站,常规资产可能已被多次测试,因此重点转向边缘资产(非核心或次要系统)。
- 使用Hunter语法进行测绘:
web.title="xxxx大学" && icp.number!="xxxxxxx"
该语法筛选出标题包含特定大学名称但未备案的IP站点,避免与主站重复测试。
1.2 关键点
- 边缘资产通常防护较弱,易被忽略。
- 备案信息缺失可能意味着管理疏忽,增加漏洞存在的可能性。
2. 漏洞发现与分析
2.1 接口未授权访问
- 目标站点存在
.map文件泄露,通过解析文件还原前端代码,发现文件上传和下载接口。 - 未授权访问允许直接调用接口,无需身份验证。
2.2 任意文件下载漏洞
- 下载接口的
fileName参数需传入Base64编码的文件路径。 - 通过编码
/etc/passwd等路径,成功下载系统文件,确认服务运行用户(如datahome、elasticsearch)。 - 利用方法:
将路径转换为Base64格式(如/etc/passwd→L2V0Yy9wYXNzd2Q=),作为参数发送请求。
2.3 Bash History泄露凭据
- 尝试读取
/root/.bash_history获取历史命令记录。 - 历史记录中意外暴露管理员账户凭据(如用户名、密码)。
- 关键点:
- 管理员操作痕迹可能包含敏感信息。
- 默认配置未清理历史记录是常见隐患。
2.4 任意文件上传与路径穿越
- 文件上传接口未对文件类型和内容过滤,可上传任意文件(如JSP网页木马)。
- 文件存储路径通过响应包返回,但直接访问返回404,需结合路径穿越上传到Web目录。
- 利用步骤:
- 从Bash History获知Web绝对路径(如
/datahome/tomcat8_case/webapps/case)。 - 上传时修改文件名,使用路径穿越符号(如
../../../webapps/case/shell.jsp)。 - 上传后直接访问Web路径下的文件,获取权限。
- 从Bash History获知Web绝对路径(如
3. 漏洞链整合与利用
3.1 完整流程
- 信息收集:通过边缘资产测绘发现目标。
- 未授权访问:利用接口泄露获取代码逻辑。
- 文件下载:读取系统文件(如
/etc/passwd、Bash History)泄露凭据。 - 权限提升:用凭据登录后台,结合路径穿越上传Webshell。
- 权限确认:上传JSP文件执行命令,验证漏洞。
3.2 技术要点
- Base64编码:用于处理文件路径参数,避免特殊字符被过滤。
- 路径穿越:利用文件名参数中的
../跳转目录,将文件上传至可执行路径。 - 防御规避:测试时使用无害文件(如计算1+1的JSP脚本)避免触发防护。
4. 修复建议
- 输入验证:对文件上传接口限制类型、内容及路径参数。
- 访问控制:关键接口需强制身份验证。
- 日志管理:定期清理Bash History等敏感记录。
- 资产梳理:隐藏或加固边缘资产,避免信息泄露。
总结
本案例展示了渗透测试中常见的漏洞链:信息收集→未授权访问→文件操作→权限获取。关键在于逐步深入,结合多漏洞实现目标。安全人员应注重边缘资产管理和输入验证,避免类似风险。
本文基于公开技术文章整理,仅用于教学目的。实际测试需获得授权,遵守法律法规。