JS中的漏洞信息
字数 1364 2025-08-22 12:23:19
JavaScript漏洞挖掘与利用实战教学
声明
本教学文档仅用于网络安全技术研究与学习,所有渗透测试行为必须事先获得授权。未经授权进行测试属于违法行为,后果自负。
前言
在前端安全测试中,JavaScript源码分析是发现漏洞的重要途径。当传统扫描方法失效时,通过审查JS代码往往能找到未授权接口、敏感信息泄露等安全问题。
1. SQL注入漏洞挖掘
1.1 发现过程
- 审查前端源码,寻找API接口
- 发现
Identity_Get接口,包含userid和researchid参数
1.2 验证方法
- 使用Burp Suite拦截请求
- 在参数中添加单引号(
')测试 - 观察是否返回数据库错误信息
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泄露
- 在JS代码中发现高德地图API Key
- 验证Key是否有效
- 可能利用方式:
- 超出配额导致服务中断
- 产生费用消耗
- 地理位置信息滥用
2.2 用户信息泄露
- 审查
const.js文件 - 发现管理员用户名和手机号
- 通过密码找回功能验证信息有效性
3. 文件下载漏洞
3.1 类型一:直接文件下载
-
发现
/xxx/xxx/zipDownload接口 -
参数分析:
type: 下载类型path: 文件路径
-
利用方法:
# 下载系统敏感文件
https://ip/xxx/xxx/zipDownload?type=1&path=etc/passwd
https://ip/xxx/xxx/zipDownload?type=1&path=etc/shadow
- 后续利用:
- 分析shadow文件破解密码
- 查找SSH私钥
- 下载网站源码分析更多漏洞
3.2 类型二:目录穿越下载
- 发现
export接口 - 使用
../进行路径遍历 - 利用方法:
http://ip/xxx/Opt/export?path=../../
- 可能获取:
- 完整网站源码
- 数据库备份文件
- 配置文件
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代码审查能发现多种安全漏洞
- 未授权接口是常见的安全风险点
- 文件下载漏洞可能导致系统完全沦陷
- 小漏洞组合利用可形成完整攻击链
安全测试人员应培养代码审查习惯,从攻击者角度思考问题,才能全面发现系统中的安全隐患。