记录某一天安服仔的漏洞挖掘过程
字数 1292 2025-08-06 01:23:31

Web漏洞挖掘实战教学文档

一、前期信息收集

1. 端口扫描

  • 使用工具如Nmap对目标进行端口扫描,识别开放服务
  • 常见Web服务端口:80/443/8080等

2. 目录扫描

  • 使用工具如Dirbuster、御剑等扫描常见目录
  • 重点关注管理后台、API接口、上传目录等
  • 案例中发现:
    • net版本的ueditor(可能存在上传漏洞)
    • wap目录(移动端入口)
    • 绝对路径泄露(可写低危报告)

3. 搜索引擎信息收集

  • 使用Google/Baidu等搜索目标相关信息
  • GitHub搜索可能泄露的源码、配置文件等
  • 案例中未找到有用信息

二、Webpack源码分析

1. 识别Webpack打包

  • 浏览器开发者工具中查看"Sources" → "webpack://"
  • 可直接查看或还原前端JavaScript代码

2. 还原Webpack代码方法

方法一:使用SourceDetector插件

  • GitHub项目:https://github.com/SunHuawei/SourceDetector
  • 需要自行编译安装

方法二:使用reverse-sourcemap工具

  1. 安装工具:
npm install --global reverse-sourcemap
  1. 下载.js.map文件:
  • 查看页面源代码,找到引用的JS文件
  • 在JS文件URL后添加.map后缀
  • 使用curl下载:
curl -O https://example.com/path/to/file.js.map
  1. 还原源代码:
reverse-sourcemap --output-dir ./output file.js.map

三、漏洞挖掘实战

1. 未授权访问漏洞

  • 通过分析JS代码发现API接口
  • 构造请求验证接口是否存在未授权访问
  • 案例中发现通行码二维码生成接口未授权

2. 信息泄露漏洞

  • 发现用户搜索接口
  • 构造请求获取了3568条员工信息
  • 关键点:接口无权限验证、返回敏感数据

3. SQL注入漏洞

第一个注入点:

  • 参数:area
  • 验证方法:常规SQL注入测试
  • 特点:无WAF防护

第二个注入点:

  • 参数:ProcLnstID
  • 验证方法:
    • ProcLnstID=1/1 → 返回正常
    • ProcLnstID=1/0 → 返回错误(除零错误)
  • 原理:通过运算表达式触发SQL错误

4. 任意文件读取漏洞

  • 发现文件上传功能
  • 通过修改上传请求绕过限制:
    1. 在BurpSuite中右键请求
    2. 选择"Change body encoding"
    3. 从POST转换为form-data
    4. 在Content-Disposition中添加name="file"
  • 通过图片查看功能构造SSRF测试失败
  • 修改请求读取服务器文件成功

四、漏洞挖掘流程总结

  1. 目标获取
  2. 端口扫描
  3. 目录扫描
  4. 发现Webpack打包
  5. 分析JavaScript代码
  6. 构造请求验证
  7. 发现并验证漏洞

五、关键工具与技术

  1. 端口扫描工具:Nmap
  2. 目录扫描工具:Dirbuster、御剑
  3. Webpack分析工具
    • SourceDetector浏览器插件
    • reverse-sourcemap
  4. 请求构造工具:BurpSuite
  5. 漏洞验证技术
    • SQL注入验证
    • 未授权访问验证
    • 文件读取验证

六、防御建议

  1. 对敏感接口添加权限验证
  2. 对用户输入进行严格过滤
  3. 生产环境关闭源码映射(.map文件)
  4. 实施WAF防护
  5. 文件上传功能限制文件类型和内容
  6. 错误信息处理,避免泄露敏感信息
Web漏洞挖掘实战教学文档 一、前期信息收集 1. 端口扫描 使用工具如Nmap对目标进行端口扫描,识别开放服务 常见Web服务端口:80/443/8080等 2. 目录扫描 使用工具如Dirbuster、御剑等扫描常见目录 重点关注管理后台、API接口、上传目录等 案例中发现: net版本的ueditor(可能存在上传漏洞) wap目录(移动端入口) 绝对路径泄露(可写低危报告) 3. 搜索引擎信息收集 使用Google/Baidu等搜索目标相关信息 GitHub搜索可能泄露的源码、配置文件等 案例中未找到有用信息 二、Webpack源码分析 1. 识别Webpack打包 浏览器开发者工具中查看"Sources" → "webpack://" 可直接查看或还原前端JavaScript代码 2. 还原Webpack代码方法 方法一:使用SourceDetector插件 GitHub项目:https://github.com/SunHuawei/SourceDetector 需要自行编译安装 方法二:使用reverse-sourcemap工具 安装工具: 下载.js.map文件: 查看页面源代码,找到引用的JS文件 在JS文件URL后添加.map后缀 使用curl下载: 还原源代码: 三、漏洞挖掘实战 1. 未授权访问漏洞 通过分析JS代码发现API接口 构造请求验证接口是否存在未授权访问 案例中发现通行码二维码生成接口未授权 2. 信息泄露漏洞 发现用户搜索接口 构造请求获取了3568条员工信息 关键点:接口无权限验证、返回敏感数据 3. SQL注入漏洞 第一个注入点: 参数:area 验证方法:常规SQL注入测试 特点:无WAF防护 第二个注入点: 参数:ProcLnstID 验证方法: ProcLnstID=1/1 → 返回正常 ProcLnstID=1/0 → 返回错误(除零错误) 原理:通过运算表达式触发SQL错误 4. 任意文件读取漏洞 发现文件上传功能 通过修改上传请求绕过限制: 在BurpSuite中右键请求 选择"Change body encoding" 从POST转换为form-data 在Content-Disposition中添加name="file" 通过图片查看功能构造SSRF测试失败 修改请求读取服务器文件成功 四、漏洞挖掘流程总结 目标获取 端口扫描 目录扫描 发现Webpack打包 分析JavaScript代码 构造请求验证 发现并验证漏洞 五、关键工具与技术 端口扫描工具 :Nmap 目录扫描工具 :Dirbuster、御剑 Webpack分析工具 : SourceDetector浏览器插件 reverse-sourcemap 请求构造工具 :BurpSuite 漏洞验证技术 : SQL注入验证 未授权访问验证 文件读取验证 六、防御建议 对敏感接口添加权限验证 对用户输入进行严格过滤 生产环境关闭源码映射(.map文件) 实施WAF防护 文件上传功能限制文件类型和内容 错误信息处理,避免泄露敏感信息