记一次市级攻防演练中渗透的某个站点
字数 963 2025-08-22 18:37:14
市级攻防演练渗透实战教学文档
一、信息收集阶段
1. 初始信息收集
- 首先定位目标站点的登录页面
- 进行常规测试:
- SQL注入测试
- 弱口令爆破测试
2. JS代码审计
- 当常规测试无果后,转向F12开发者工具查看前端JS代码
- 发现大量接口泄露在JS源码中
3. 接口提取
- 使用JSFinder工具从JS代码中提取接口
- 共发现约1000个接口地址
- 使用Burp Suite进行接口遍历
4. 敏感信息泄露
- 在遍历过程中发现某个接口响应异常:
- 响应时间明显变长
- 响应包长度异常
- 检查该接口返回内容发现大量敏感信息泄露
二、文件上传漏洞利用
1. 发现上传接口
- 在遍历过程中发现
upload接口 - 初始测试返回500错误:
- 500错误表示"内部服务器错误"
- 通常意味着服务器遇到意外情况无法完成请求
2. 解决500错误
- 原因分析:缺少必要的请求头
- 解决方法:
- 本地创建测试PHP文件
- 通过浏览器正常上传抓包
- 从正常请求中提取完整请求头
3. 参数缺失问题
- 添加请求头后仍提示缺少参数:
pathType - 解决方案:
- 返回JS文件审计
- 发现
printTemplate参数 - 添加该参数后上传成功
4. 命令执行验证
- 上传Webshell后成功执行
whoami命令 - 注意:蚁剑无法连接,只能在浏览器中执行命令
三、经验总结与教训
1. 成功经验
- 通过JS代码审计发现大量隐藏接口
- 系统化的接口遍历方法
- 通过分析错误信息逐步完善攻击请求
2. 不足之处
- 遍历速度过快导致目标快速修复漏洞
- Webshell管理工具兼容性问题未解决
- 对目标系统的响应机制预估不足
3. 改进建议
- 控制扫描速度,避免触发防御机制
- 准备多种Webshell类型应对不同环境
- 建立更完善的漏洞利用流程
四、技术要点总结
- JS代码审计:前端代码中常隐藏重要接口和参数
- 接口遍历:系统化的接口测试能发现隐藏漏洞
- 错误分析:500错误可能隐藏着配置或参数问题
- 请求构造:通过正常操作抓包获取完整请求模板
- 参数发现:JS文件中常包含必要的API参数
五、防御建议
- 前端代码应进行混淆和压缩,避免泄露接口信息
- 实施合理的API权限控制和输入验证
- 对敏感接口实施速率限制和异常检测
- 文件上传功能应严格限制文件类型和内容
- 建立完善的错误处理机制,避免泄露系统信息