Web攻防之暴力破解(何足道版)
字数 2162 2025-08-29 08:31:53

Web攻防之暴力破解技术详解

0x00 序言

暴力破解是Web安全测试中的基础技术,通过系统性地尝试各种可能的凭证组合来绕过认证机制。本文全面梳理了暴力破解在Web安全领域的应用场景、技术方法和防御措施。

0x01 账户探测技术

账户存在性探测

第一梯队探测目标

  • Top500常用用户名
  • 手机号(11位数字组合)

第二梯队探测目标

  • 邮箱地址(常见邮箱服务商后缀)
  • 员工编号(企业特定编号规则)

0x02 指定口令爆破用户名

基础爆破方法

  1. 常规字典爆破

    • Top500、Top10000常用用户名列表
    • 字母组合:1-4位随机字母组合
      • 工具推荐:pydictor
      python pydictor.py -base L --len 2 3
      
    • 数字组合:1-4位数字组合
      for n in xrange(10000):
          print str(n).zfill(4)
      
  2. 厂商特色账户爆破

    • 公司名相关账户(如:facebook、fb_steven)
    • 从页面联系邮箱提取命名规则

0x03 密码爆破技术

密码字典构建

  1. 基础弱口令字典

    • Top500、Top3000、Top10000常用密码
    • 自定义密码字典工具:pydictor
    • 社工库历史密码查询
  2. 厂商特色密码生成

    • 公司名+特殊字符(如baidu@123)
    • 行业特定密码模式

加密密码破解

  1. 基础编码破解

    • Base64等常见编码方式
  2. 自定义加密算法破解

    • RSA算法加密口令爆破(参考浮萍的RSADemo.py)
    • Selenium模拟浏览器提交(处理不明加密算法)
      • 技术细节参考:http://sm0nk.com/2017/11/27/基于Seleninum的口令爆破应用/

特定场景爆破

  1. 后台密码爆破

    • 中间件默认凭证(Weblogic、Tomcat等)
    • CMS默认管理密码
  2. Webshell密码爆破

    • 弱文件发现的Webshell
    • 专用爆破工具或Burp Suite

辅助信息收集

  • Web源码、JS及注释中的凭证线索
  • 物理环境信息(如运维便签)

0x04 验证码爆破技术

验证码绕过技术

  1. 逻辑绕过

    • 验证码参数可省略
    • 验证码可重复使用
    • 验证码答案有限可遍历
    • 非空校验绕过(置空或删除参数)
  2. 验证码识别

    • 简单验证码识别工具
    • 高模糊度验证码处理流程:
      • 二值化 → 去干扰 → 区域选择 → OCR识别
    • 云打码平台利用

0x05 短信/邮箱验证码爆破

验证码绕过技术

  1. 返回包分析

    • 响应中包含验证码
    • Cookie中泄露验证码
    • True/False或0/1状态控制
  2. 验证码爆破

    • 4位数字快速爆破
    • 6位数字分段爆破(0-199999、200000-399999等)
    • 高概率区间优先爆破
  3. 弱Token利用

    • 时间戳MD5加密的Token(如360漏洞案例)
    • 密码找回功能的参数遍历

0x06 数据信息爆破(遍历)

关键参数遍历

  • 用户名、ID号、手机号
  • 邮箱、身份证号、订单号
  • 银行卡、信用卡信息
    • PAN+到期时间
    • PAN+到期时间+CVV
    • 完整信用卡信息组合

批量注册漏洞

  • 校验不严格的批量注册
  • "薅羊毛"攻击场景

组合攻击策略

  1. 密码找回功能分析

    • 账号检测功能泄露用户存在性
    • 手机号与用户名关联泄露
  2. 论坛信息收集

    • Discuz等论坛的用户数据
    • 用户名、联系方式、兴趣偏好
  3. 数据关联分析

    • 手机号→用户名→论坛ID→用户偏好
    • 精准用户画像构建

0x07 爆破关联技术

数据重放攻击

  1. 短信炸弹

    • 无限制短信轰炸
    • 间隔符绕过(18888888888,,,)
    • 多号码轮询攻击
  2. 邮箱炸弹

    • 原理同短信炸弹
    • 成本更低廉

系统信息爆破

  1. 子域名爆破

    • 工具推荐:subDomainsBrute、Layer、FuzzDomain
  2. 目录/文件爆破

    • 工具对比:老御剑、weakfilescan、dirfuzz、cansian.py
    • 推荐工具:dirsearch(Python3开发)
      python3 dirsearch.py -u <URL> -e <EXTENSIONS>
      
  3. Fuzzing测试

    • SQL注入、XSS测试
    • 特殊字符异常处理测试

0x08 协议口令爆破

常见服务爆破

  1. 基础协议爆破

    • SSH、RDP、FTP
    • MySQL、MSSQL
    • 工具推荐:
      • Fenghuangscan
      • Hydra(Kali自带)
      • Nmap脚本引擎
  2. 邮件/VPN爆破

    • SMTP协议爆破(brut3k1t工具)
    • VPN协议爆破
    • 技巧:同密码多用户轮询绕过限制

未授权访问漏洞

  • Redis未授权访问
  • Jenkins未授权访问
  • MongoDB未授权访问
  • ZooKeeper未授权访问
  • Elasticsearch未授权访问
  • Memcache未授权访问
  • Hadoop未授权访问
  • CouchDB未授权访问
  • Docker未授权访问

0x09 防御措施

登录界面防护

  1. 阈值限制

    • 单位时间请求次数限制
    • 账号/IP封禁机制
  2. 验证码增强

    • 错误次数触发验证码
    • 验证码复杂度要求
  3. 系统健壮性

    • 强制密码复杂度策略
    • 定期弱口令扫描

验证码加固技术

  1. 视觉干扰技术

    • 字体扭曲、粘连、镂空
    • 混用多种字体
    • 干扰线、背景干扰
  2. 逻辑验证码

    • 数学公式验证
    • 逻辑问题验证

WAF防护

  • Modsecurity规则配置
  • 商业WAF解决方案

验证码重用防护

  • 一次性验证码机制
  • 时效性严格控制

主机级防护

  1. 认证加固

    • 高复杂度口令策略
    • 私钥替代口令认证
  2. 访问控制

    • 非必要服务端口关闭
    • IP白名单限制
  3. 管理规范

    • 禁止明文密码记录
    • 运维密码安全管理
Web攻防之暴力破解技术详解 0x00 序言 暴力破解是Web安全测试中的基础技术,通过系统性地尝试各种可能的凭证组合来绕过认证机制。本文全面梳理了暴力破解在Web安全领域的应用场景、技术方法和防御措施。 0x01 账户探测技术 账户存在性探测 第一梯队探测目标 : Top500常用用户名 手机号(11位数字组合) 第二梯队探测目标 : 邮箱地址(常见邮箱服务商后缀) 员工编号(企业特定编号规则) 0x02 指定口令爆破用户名 基础爆破方法 常规字典爆破 : Top500、Top10000常用用户名列表 字母组合:1-4位随机字母组合 工具推荐: pydictor 数字组合:1-4位数字组合 厂商特色账户爆破 : 公司名相关账户(如:facebook、fb_ steven) 从页面联系邮箱提取命名规则 0x03 密码爆破技术 密码字典构建 基础弱口令字典 : Top500、Top3000、Top10000常用密码 自定义密码字典工具: pydictor 社工库历史密码查询 厂商特色密码生成 : 公司名+特殊字符(如baidu@123) 行业特定密码模式 加密密码破解 基础编码破解 : Base64等常见编码方式 自定义加密算法破解 : RSA算法加密口令爆破(参考浮萍的RSADemo.py) Selenium模拟浏览器提交(处理不明加密算法) 技术细节参考:http://sm0nk.com/2017/11/27/基于Seleninum的口令爆破应用/ 特定场景爆破 后台密码爆破 : 中间件默认凭证(Weblogic、Tomcat等) CMS默认管理密码 Webshell密码爆破 : 弱文件发现的Webshell 专用爆破工具或Burp Suite 辅助信息收集 Web源码、JS及注释中的凭证线索 物理环境信息(如运维便签) 0x04 验证码爆破技术 验证码绕过技术 逻辑绕过 : 验证码参数可省略 验证码可重复使用 验证码答案有限可遍历 非空校验绕过(置空或删除参数) 验证码识别 : 简单验证码识别工具 高模糊度验证码处理流程: 二值化 → 去干扰 → 区域选择 → OCR识别 云打码平台利用 0x05 短信/邮箱验证码爆破 验证码绕过技术 返回包分析 : 响应中包含验证码 Cookie中泄露验证码 True/False或0/1状态控制 验证码爆破 : 4位数字快速爆破 6位数字分段爆破(0-199999、200000-399999等) 高概率区间优先爆破 弱Token利用 : 时间戳MD5加密的Token(如360漏洞案例) 密码找回功能的参数遍历 0x06 数据信息爆破(遍历) 关键参数遍历 用户名、ID号、手机号 邮箱、身份证号、订单号 银行卡、信用卡信息 PAN+到期时间 PAN+到期时间+CVV 完整信用卡信息组合 批量注册漏洞 校验不严格的批量注册 "薅羊毛"攻击场景 组合攻击策略 密码找回功能分析 : 账号检测功能泄露用户存在性 手机号与用户名关联泄露 论坛信息收集 : Discuz等论坛的用户数据 用户名、联系方式、兴趣偏好 数据关联分析 : 手机号→用户名→论坛ID→用户偏好 精准用户画像构建 0x07 爆破关联技术 数据重放攻击 短信炸弹 : 无限制短信轰炸 间隔符绕过(18888888888,,,) 多号码轮询攻击 邮箱炸弹 : 原理同短信炸弹 成本更低廉 系统信息爆破 子域名爆破 : 工具推荐:subDomainsBrute、Layer、FuzzDomain 目录/文件爆破 : 工具对比:老御剑、weakfilescan、dirfuzz、cansian.py 推荐工具:dirsearch(Python3开发) Fuzzing测试 : SQL注入、XSS测试 特殊字符异常处理测试 0x08 协议口令爆破 常见服务爆破 基础协议爆破 : SSH、RDP、FTP MySQL、MSSQL 工具推荐: Fenghuangscan Hydra(Kali自带) Nmap脚本引擎 邮件/VPN爆破 : SMTP协议爆破(brut3k1t工具) VPN协议爆破 技巧:同密码多用户轮询绕过限制 未授权访问漏洞 Redis未授权访问 Jenkins未授权访问 MongoDB未授权访问 ZooKeeper未授权访问 Elasticsearch未授权访问 Memcache未授权访问 Hadoop未授权访问 CouchDB未授权访问 Docker未授权访问 0x09 防御措施 登录界面防护 阈值限制 : 单位时间请求次数限制 账号/IP封禁机制 验证码增强 : 错误次数触发验证码 验证码复杂度要求 系统健壮性 : 强制密码复杂度策略 定期弱口令扫描 验证码加固技术 视觉干扰技术 : 字体扭曲、粘连、镂空 混用多种字体 干扰线、背景干扰 逻辑验证码 : 数学公式验证 逻辑问题验证 WAF防护 Modsecurity规则配置 商业WAF解决方案 验证码重用防护 一次性验证码机制 时效性严格控制 主机级防护 认证加固 : 高复杂度口令策略 私钥替代口令认证 访问控制 : 非必要服务端口关闭 IP白名单限制 管理规范 : 禁止明文密码记录 运维密码安全管理