记对某系统的一次测试
字数 1391 2025-08-27 12:33:37
记对某系统的一次渗透测试 - 详细教学文档
1. 目标识别与初步分析
1.1 目标系统特征
- 系统采用手机号作为登录凭证
- 存在标准登录框界面
- 管理员账户需要通过手机号登录
1.2 初始渗透思路评估
- 爆破管理员凭证:
- 需要先获取管理员手机号
- 无手机号信息导致爆破不可行
- 密码找回逻辑漏洞:
- 需要知道管理员用户名/手机号
- 信息收集不足导致此方法受限
2. 信息收集与目录扫描
2.1 目录扫描技术
- 使用工具:未指定具体工具(推荐使用dirsearch、gobuster等)
- 扫描目的:
- 寻找备份源码文件(如.zip, .rar, .bak等)
- 发现未授权访问目录
- 结果:未发现可利用点
2.2 JavaScript文件分析
- 方法:浏览器开发者工具(F12)审查网络请求和JS文件
- 关键发现:
- 用户列表接口(未授权访问)
- 接口请求方法限制:初始GET请求被拒绝
3. 接口未授权访问漏洞利用
3.1 第一个接口测试
- 请求方法调整:
- 从GET改为POST
- 观察响应变化
- 参数构造过程:
- 初始响应:
请求参数缺失 - 添加
pageIndex参数 - 后续响应:
pageSize为空 - 完整参数构造:
POST /api/userList HTTP/1.1 Host: target.com Content-Type: application/x-www-form-urlencoded pageIndex=1&pageSize=10
- 初始响应:
- 结果:
- 返回测试账号信息
3.2 扩大测试范围
- 假设:一个接口存在未授权,其他接口可能同样存在
- 发现第二个关键接口:
- 路径:
/bear-scale/mip/scaleSystemUser/getScaleSystemUserList.json - 使用相同参数构造方法
- 返回数据:
- 全站用户手机号
- MD5加密的密码(默认密码"123456"的MD5)
- 路径:
3.3 管理员账户获取
- 继续寻找其他接口
- 发现返回管理员手机号的接口
- 结合已知信息:
- 默认密码为"123456"
- 使用管理员手机号+默认密码成功登录
4. 后续渗透尝试
4.1 文件上传测试
- 发现上传接口
- 防护措施:
- 严格的白名单限制
- 无法上传webshell
5. 技术要点总结
5.1 关键漏洞
- 未授权API访问:
- 多个接口未实施身份验证
- 敏感数据暴露(用户手机号、密码哈希)
- 默认密码风险:
- 全站使用相同默认密码
- MD5哈希易被破解
5.2 渗透技术链
- 信息收集不足时的替代方案
- JS文件分析寻找隐藏接口
- 接口参数逆向工程
- 默认凭证利用
5.3 防御建议
- API安全:
- 实施严格的权限控制
- 敏感接口必须认证
- 密码策略:
- 禁止使用默认密码
- 使用强哈希算法(如bcrypt)
- 安全开发:
- 避免敏感信息在客户端暴露
- 实施最小权限原则
6. 渗透测试方法论
6.1 测试流程
- 目标识别 → 2. 表面测试 → 3. 深度信息收集 → 4. 漏洞发现 → 5. 漏洞利用 → 6. 权限提升 → 7. 后渗透
6.2 思维导图
开始
│
├─ 直接攻击(登录爆破) → 信息不足 → 放弃
│
├─ 密码找回测试 → 信息不足 → 放弃
│
└─ 间接攻击
│
├─ 目录扫描 → 无结果
│
└─ JS分析
│
├─ 发现未授权接口
│ │
│ ├─ 方法测试(GET/POST)
│ │
│ └─ 参数构造
│
└─ 获取凭证
│
├─ 普通用户
│
└─ 管理员
│
└─ 默认密码利用
7. 工具与技术扩展
7.1 推荐工具
- 目录扫描:
- dirsearch
- gobuster
- ffuf
- JS分析:
- Burp Suite
- Chrome开发者工具
- LinkFinder
- 接口测试:
- Postman
- curl
- Burp Repeater
7.2 进阶技术
- JWT令牌分析
- API参数fuzzing
- 子域名枚举
- CORS/SOP配置检查
8. 法律与道德声明
- 渗透测试必须获得明确授权
- 未经授权的测试属于违法行为
- 发现漏洞应遵循负责任的披露流程
- 本文仅用于教育目的,演示已授权测试的技术方法