记一次市级攻防演练中渗透的某个站点
字数 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错误

  • 原因分析:缺少必要的请求头
  • 解决方法:
    1. 本地创建测试PHP文件
    2. 通过浏览器正常上传抓包
    3. 从正常请求中提取完整请求头

3. 参数缺失问题

  • 添加请求头后仍提示缺少参数:pathType
  • 解决方案:
    • 返回JS文件审计
    • 发现printTemplate参数
    • 添加该参数后上传成功

4. 命令执行验证

  • 上传Webshell后成功执行whoami命令
  • 注意:蚁剑无法连接,只能在浏览器中执行命令

三、经验总结与教训

1. 成功经验

  • 通过JS代码审计发现大量隐藏接口
  • 系统化的接口遍历方法
  • 通过分析错误信息逐步完善攻击请求

2. 不足之处

  • 遍历速度过快导致目标快速修复漏洞
  • Webshell管理工具兼容性问题未解决
  • 对目标系统的响应机制预估不足

3. 改进建议

  • 控制扫描速度,避免触发防御机制
  • 准备多种Webshell类型应对不同环境
  • 建立更完善的漏洞利用流程

四、技术要点总结

  1. JS代码审计:前端代码中常隐藏重要接口和参数
  2. 接口遍历:系统化的接口测试能发现隐藏漏洞
  3. 错误分析:500错误可能隐藏着配置或参数问题
  4. 请求构造:通过正常操作抓包获取完整请求模板
  5. 参数发现:JS文件中常包含必要的API参数

五、防御建议

  1. 前端代码应进行混淆和压缩,避免泄露接口信息
  2. 实施合理的API权限控制和输入验证
  3. 对敏感接口实施速率限制和异常检测
  4. 文件上传功能应严格限制文件类型和内容
  5. 建立完善的错误处理机制,避免泄露系统信息
市级攻防演练渗透实战教学文档 一、信息收集阶段 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权限控制和输入验证 对敏感接口实施速率限制和异常检测 文件上传功能应严格限制文件类型和内容 建立完善的错误处理机制,避免泄露系统信息