JS中的漏洞信息
字数 1364 2025-08-22 12:23:19

JavaScript漏洞挖掘与利用实战教学

声明

本教学文档仅用于网络安全技术研究与学习,所有渗透测试行为必须事先获得授权。未经授权进行测试属于违法行为,后果自负。

前言

在前端安全测试中,JavaScript源码分析是发现漏洞的重要途径。当传统扫描方法失效时,通过审查JS代码往往能找到未授权接口、敏感信息泄露等安全问题。

1. SQL注入漏洞挖掘

1.1 发现过程

  1. 审查前端源码,寻找API接口
  2. 发现Identity_Get接口,包含useridresearchid参数

1.2 验证方法

  1. 使用Burp Suite拦截请求
  2. 在参数中添加单引号(')测试
  3. 观察是否返回数据库错误信息

1.3 利用工具

使用SQLMap自动化测试:

# 基本测试
python sqlmap.py -u "http://ip/Api/xxx/xxx/xxx/Identity_Get?USERID=1&RESEARCHID=1" --batch --risk 3

# 获取当前数据库用户
python sqlmap.py -u "http://ip/Api/xxx/xxx/xxx/Identity_Get?USERID=1&RESEARCHID=1" --batch --risk 3 --current-user

1.4 漏洞特征

  • 参数未经过滤直接拼接SQL语句
  • 返回详细的数据库错误信息
  • 确认后端使用Oracle数据库

2. 敏感信息泄露

2.1 地图API Key泄露

  1. 在JS代码中发现高德地图API Key
  2. 验证Key是否有效
  3. 可能利用方式:
    • 超出配额导致服务中断
    • 产生费用消耗
    • 地理位置信息滥用

2.2 用户信息泄露

  1. 审查const.js文件
  2. 发现管理员用户名和手机号
  3. 通过密码找回功能验证信息有效性

3. 文件下载漏洞

3.1 类型一:直接文件下载

  1. 发现/xxx/xxx/zipDownload接口

  2. 参数分析:

    • type: 下载类型
    • path: 文件路径
  3. 利用方法:

# 下载系统敏感文件
https://ip/xxx/xxx/zipDownload?type=1&path=etc/passwd
https://ip/xxx/xxx/zipDownload?type=1&path=etc/shadow
  1. 后续利用:
    • 分析shadow文件破解密码
    • 查找SSH私钥
    • 下载网站源码分析更多漏洞

3.2 类型二:目录穿越下载

  1. 发现export接口
  2. 使用../进行路径遍历
  3. 利用方法:
http://ip/xxx/Opt/export?path=../../
  1. 可能获取:
    • 完整网站源码
    • 数据库备份文件
    • 配置文件

4. 漏洞利用链构建

  1. 信息收集阶段

    • 使用浏览器开发者工具审查JS代码
    • 查找隐藏API接口
    • 收集敏感信息(API keys, 凭据等)
  2. 漏洞验证阶段

    • 测试SQL注入点
    • 验证文件下载漏洞
    • 检查信息泄露有效性
  3. 权限提升阶段

    • 通过下载的shadow文件尝试密码破解
    • 利用数据库漏洞获取更高权限
    • 通过源码分析寻找更多漏洞
  4. 持久化阶段

    • 上传Web Shell
    • 创建后门账户
    • 获取SSH访问权限

5. 防御建议

5.1 SQL注入防御

  • 使用参数化查询
  • 实施输入验证和过滤
  • 禁用详细错误信息

5.2 敏感信息保护

  • 不要在前端代码中硬编码敏感信息
  • 使用环境变量管理API Keys
  • 实施访问控制

5.3 文件下载安全

  • 验证用户权限
  • 限制可访问的目录范围
  • 过滤../等路径遍历字符

5.4 常规安全措施

  • 定期安全审计
  • 实施最小权限原则
  • 保持系统和组件更新

6. 工具推荐

  1. 代码审查工具

    • Burp Suite
    • OWASP ZAP
    • Chrome开发者工具
  2. 自动化测试工具

    • SQLMap
    • DirBuster
    • Nikto
  3. 信息收集工具

    • Sublist3r
    • theHarvester
    • SpiderFoot

7. 总结

通过本案例学习,我们了解到:

  1. 前端JS代码审查能发现多种安全漏洞
  2. 未授权接口是常见的安全风险点
  3. 文件下载漏洞可能导致系统完全沦陷
  4. 小漏洞组合利用可形成完整攻击链

安全测试人员应培养代码审查习惯,从攻击者角度思考问题,才能全面发现系统中的安全隐患。

JavaScript漏洞挖掘与利用实战教学 声明 本教学文档仅用于网络安全技术研究与学习,所有渗透测试行为必须事先获得授权。未经授权进行测试属于违法行为,后果自负。 前言 在前端安全测试中,JavaScript源码分析是发现漏洞的重要途径。当传统扫描方法失效时,通过审查JS代码往往能找到未授权接口、敏感信息泄露等安全问题。 1. SQL注入漏洞挖掘 1.1 发现过程 审查前端源码,寻找API接口 发现 Identity_Get 接口,包含 userid 和 researchid 参数 1.2 验证方法 使用Burp Suite拦截请求 在参数中添加单引号( ' )测试 观察是否返回数据库错误信息 1.3 利用工具 使用SQLMap自动化测试: 1.4 漏洞特征 参数未经过滤直接拼接SQL语句 返回详细的数据库错误信息 确认后端使用Oracle数据库 2. 敏感信息泄露 2.1 地图API Key泄露 在JS代码中发现高德地图API Key 验证Key是否有效 可能利用方式: 超出配额导致服务中断 产生费用消耗 地理位置信息滥用 2.2 用户信息泄露 审查 const.js 文件 发现管理员用户名和手机号 通过密码找回功能验证信息有效性 3. 文件下载漏洞 3.1 类型一:直接文件下载 发现 /xxx/xxx/zipDownload 接口 参数分析: type : 下载类型 path : 文件路径 利用方法: 后续利用: 分析shadow文件破解密码 查找SSH私钥 下载网站源码分析更多漏洞 3.2 类型二:目录穿越下载 发现 export 接口 使用 ../ 进行路径遍历 利用方法: 可能获取: 完整网站源码 数据库备份文件 配置文件 4. 漏洞利用链构建 信息收集阶段 : 使用浏览器开发者工具审查JS代码 查找隐藏API接口 收集敏感信息(API keys, 凭据等) 漏洞验证阶段 : 测试SQL注入点 验证文件下载漏洞 检查信息泄露有效性 权限提升阶段 : 通过下载的shadow文件尝试密码破解 利用数据库漏洞获取更高权限 通过源码分析寻找更多漏洞 持久化阶段 : 上传Web Shell 创建后门账户 获取SSH访问权限 5. 防御建议 5.1 SQL注入防御 使用参数化查询 实施输入验证和过滤 禁用详细错误信息 5.2 敏感信息保护 不要在前端代码中硬编码敏感信息 使用环境变量管理API Keys 实施访问控制 5.3 文件下载安全 验证用户权限 限制可访问的目录范围 过滤 ../ 等路径遍历字符 5.4 常规安全措施 定期安全审计 实施最小权限原则 保持系统和组件更新 6. 工具推荐 代码审查工具 : Burp Suite OWASP ZAP Chrome开发者工具 自动化测试工具 : SQLMap DirBuster Nikto 信息收集工具 : Sublist3r theHarvester SpiderFoot 7. 总结 通过本案例学习,我们了解到: 前端JS代码审查能发现多种安全漏洞 未授权接口是常见的安全风险点 文件下载漏洞可能导致系统完全沦陷 小漏洞组合利用可形成完整攻击链 安全测试人员应培养代码审查习惯,从攻击者角度思考问题,才能全面发现系统中的安全隐患。