登录点测试的那些事
字数 1196 2025-08-20 18:17:47
登录点渗透测试技术指南
1. 暴力破解技术
1.1 用户名枚举
- 原理:系统对存在和不存在的账号返回不同响应
- 识别方法:
- 观察响应包长度差异
- 使用Burp的Grep-Extract功能设置标志位区分
- 典型响应差异:
- 账号不存在:"用户名错误"
- 密码错误:"密码错误"
1.2 验证码绕过技术
- 常见漏洞类型:
- 验证码未与账号密码一同验证:可重放登录包
- 验证码可重放:同一验证码可多次使用
- 前端校验:仅在前端验证,可绕过
- 验证码不刷新:验证码长期有效
- 利用方法:
- 拦截获取验证码的请求并Drop掉,保持当前验证码有效
- 直接重放包含正确验证码的登录请求
1.3 爆破实战技巧
- 目标选择:
- 用户名明文传输的系统
- 大用户量系统(如OA、学生管理系统)
- 字典策略:
- 常见用户名:admin/root/user/test
- 规律性用户名:00001-99999(工号)、拼音、常见英文单词
- 弱密码:123456等常见密码
- 案例:学生管理系统批量爆破123456密码
2. SQL注入攻击
2.1 万能密码攻击
- 常见payload:
admin' -- admin' or '1'='1 admin' or 1=1-- - 利用方法:
- 在username/password字段尝试注入
- 收集常见SQL注入字典进行fuzz测试
2.2 常规注入流程
- 探测:使用单引号触发错误
- 确认:观察错误响应
- 利用:联合查询获取数据
- 提权:登录后台进一步渗透
3. 登录绕过技术
3.1 状态码修改
- 原理:前端仅校验响应状态码
- 方法:
- 拦截登录响应
- 修改状态码为成功状态(true/success/200/0)
- 关键点:
- 从JS文件或网页源码中查找真正的成功状态码
4. 信息泄露利用
4.1 敏感信息收集位置
- JS文件:查找默认密码、API密钥等
- 网页源码:隐藏表单、注释信息
- 登录响应包:用户合法性检查可能泄露信息
4.2 实际案例
- JS文件中发现默认密码
- 智慧校园系统通过修改附件设置获取shell
5. 密码重置漏洞
5.1 利用场景
- 当登录点本身无漏洞时,可尝试密码重置功能
- 分步骤重置流程可能存在逻辑漏洞
5.2 攻击路径
- 利用密码重置漏洞进入后台
- 从后台获取更高权限或直接获取shell
6. 防御建议
6.1 针对暴力破解
- 实施账户锁定机制
- 使用强验证码(一次性、后端校验)
- 限制失败尝试频率
6.2 针对SQL注入
- 使用参数化查询
- 实施输入过滤和输出编码
- 最小权限原则配置数据库账户
6.3 通用防护
- 敏感信息不应存在于前端代码中
- 前后端完整校验,不只依赖状态码
- 密码重置流程需严格的安全控制
7. 工具推荐
- Burp Suite:用于拦截、修改请求和爆破
- SQLMap:自动化SQL注入工具
- 自定义字典:针对特定系统的用户名/密码组合
8. 法律与道德提醒
- 所有测试应在授权范围内进行
- 发现漏洞应遵循负责任的披露流程
- 未经授权的测试可能构成违法行为