5.bWAPP Broken Auth. & Session Mgmt
字数 2057 2025-08-24 16:48:07

bWAPP Broken Authentication & Session Management 漏洞教学文档

0x01 Broken Auth - CAPTCHA Bypassing

漏洞描述

验证码绕过漏洞,由于验证码没有时间限制,导致可以重复使用同一验证码进行暴力破解。

漏洞等级

  • Low: 验证码无时间限制,提交一次验证码后可无限次用于暴力破解用户名和密码
  • Medium/High: 与Low级别相同,验证码仍可被绕过

修复建议

  • 及时销毁验证码的有效性
  • 为验证码添加时间限制

0x02 Broken Auth - Forgotten Function

漏洞描述

密码找回功能中的安全问题处理不当。

漏洞等级

  • Low:

    • 使用mysqli_real_escape_string()函数防止SQL注入
    • 验证输入是否为email格式
    • 暴力破解邮箱成功后,会提示安全问题但不会直接显示密码
  • Medium:

    • 安全问题会发送到邮箱
    • 类似于常见的"通过邮箱找回密码"功能
  • High:

    • 将sha1的随机哈希值发送到邮箱
    • 通过安全问题找回页面重置安全问题

0x03 Broken Auth - Insecure Login Forms

漏洞描述

登录表单存在信息泄露问题。

漏洞等级

  • Low:

    • 审查元素发现账号密码明文泄露
    • 账号:tonystark, 密码:I am Iron Man
  • Medium:

    • 审查元素发现用户名泄露
    • 通过查找unlock按钮事件找到unlock_secret()函数
    • 解密JavaScript代码得到密码为hulk smash!
  • High:

    • 只有默认账号密码bee/bug
    • 系统会给出提示

0x04 Broken Auth - Logout Management

漏洞描述

注销功能中会话管理不当。

漏洞等级

  • Low:

    • 退出登录时session没有销毁
    • 重新加载注销后的URL仍然有效
  • Medium:

    • 退出登录时session被销毁(session_destroy())
    • 需要重新登录
  • High:

    • 退出登录时先清空session变量($_SESSION = array())
    • 然后销毁session(session_destroy())
    • 需要重新登录

0x05 Broken Auth - Password Attacks

漏洞描述

密码攻击相关漏洞。

漏洞等级

  • Low:

    • 可直接使用Burp Suite等工具爆破
  • Medium:

    • 增加了随机salt值验证
    • 两种攻击方法:
      1. 审查元素获取salt值(如7-mawE),构造POST请求
      2. 使用Burp Suite爆破:
      • 设置爆破参数password和salt
      • 从页面获取salt值
      • 设置redirection为always
      • 添加密码字典
      • 设置初始salt值
      • 设置为单线程(因salt一对一验证)
      • 长度不同的响应为正确密码
  • High:

    • 增加了图片验证码防护

0x06 Broken Auth - Weak Passwords

漏洞描述

弱密码漏洞。

漏洞等级

  • Low: test/test
  • Medium: test/test123
  • High: test/Test123

0x07 Session Mgmt - Administrative Portals

漏洞描述

管理员权限控制不当。

漏洞等级

  • Low:

    • 直接修改admin参数为1即可获得权限
  • Medium:

    • admin参数在cookie中
    • 直接修改cookie中的admin值为1
  • High:

    • 需要修改session中的admin值为1
    • 或直接使用管理员账号bee/bug登录

0x08 Session Mgmt - Cookies (HTTPOnly)

漏洞描述

Cookie的HTTPOnly属性设置问题。

漏洞等级

  • Low:

    • HTTPOnly字段设置为false
    • 本地JS脚本可直接访问top_security变量值
  • Medium:

    • HTTPOnly字段设置为true
    • 本地JS脚本无法访问top_security变量值
  • High:

    • HTTPOnly字段设置为true
    • 缩短了Cookie的生存时间(仅300秒/5分钟)

0x09 Session Mgmt - Session ID in URL

漏洞描述

Session ID暴露在URL中。

漏洞等级

  • 所有级别相同:
    • Session ID暴露在URL中
    • 最佳实践:Session ID不应暴露在URL中

0x10 Session Mgmt - Strong Sessions

漏洞描述

会话安全强度问题。

漏洞等级

  • Low:

    • 没有任何安全措施
  • Medium:

    • top_security_nossl的值使用HASH处理
  • High:

    • 非SSL情况下看不到top_security_ssl的值
    • 使用HTTPS后可观察到top_security_nossl
bWAPP Broken Authentication & Session Management 漏洞教学文档 0x01 Broken Auth - CAPTCHA Bypassing 漏洞描述 验证码绕过漏洞,由于验证码没有时间限制,导致可以重复使用同一验证码进行暴力破解。 漏洞等级 Low : 验证码无时间限制,提交一次验证码后可无限次用于暴力破解用户名和密码 Medium/High : 与Low级别相同,验证码仍可被绕过 修复建议 及时销毁验证码的有效性 为验证码添加时间限制 0x02 Broken Auth - Forgotten Function 漏洞描述 密码找回功能中的安全问题处理不当。 漏洞等级 Low : 使用 mysqli_real_escape_string() 函数防止SQL注入 验证输入是否为email格式 暴力破解邮箱成功后,会提示安全问题但不会直接显示密码 Medium : 安全问题会发送到邮箱 类似于常见的"通过邮箱找回密码"功能 High : 将sha1的随机哈希值发送到邮箱 通过安全问题找回页面重置安全问题 0x03 Broken Auth - Insecure Login Forms 漏洞描述 登录表单存在信息泄露问题。 漏洞等级 Low : 审查元素发现账号密码明文泄露 账号:tonystark, 密码:I am Iron Man Medium : 审查元素发现用户名泄露 通过查找unlock按钮事件找到 unlock_secret() 函数 解密JavaScript代码得到密码为 hulk smash! High : 只有默认账号密码bee/bug 系统会给出提示 0x04 Broken Auth - Logout Management 漏洞描述 注销功能中会话管理不当。 漏洞等级 Low : 退出登录时session没有销毁 重新加载注销后的URL仍然有效 Medium : 退出登录时session被销毁( session_destroy() ) 需要重新登录 High : 退出登录时先清空session变量( $_SESSION = array() ) 然后销毁session( session_destroy() ) 需要重新登录 0x05 Broken Auth - Password Attacks 漏洞描述 密码攻击相关漏洞。 漏洞等级 Low : 可直接使用Burp Suite等工具爆破 Medium : 增加了随机salt值验证 两种攻击方法: 审查元素获取salt值(如7-mawE),构造POST请求 使用Burp Suite爆破: 设置爆破参数password和salt 从页面获取salt值 设置redirection为always 添加密码字典 设置初始salt值 设置为单线程(因salt一对一验证) 长度不同的响应为正确密码 High : 增加了图片验证码防护 0x06 Broken Auth - Weak Passwords 漏洞描述 弱密码漏洞。 漏洞等级 Low : test/test Medium : test/test123 High : test/Test123 0x07 Session Mgmt - Administrative Portals 漏洞描述 管理员权限控制不当。 漏洞等级 Low : 直接修改admin参数为1即可获得权限 Medium : admin参数在cookie中 直接修改cookie中的admin值为1 High : 需要修改session中的admin值为1 或直接使用管理员账号bee/bug登录 0x08 Session Mgmt - Cookies (HTTPOnly) 漏洞描述 Cookie的HTTPOnly属性设置问题。 漏洞等级 Low : HTTPOnly字段设置为false 本地JS脚本可直接访问top_ security变量值 Medium : HTTPOnly字段设置为true 本地JS脚本无法访问top_ security变量值 High : HTTPOnly字段设置为true 缩短了Cookie的生存时间(仅300秒/5分钟) 0x09 Session Mgmt - Session ID in URL 漏洞描述 Session ID暴露在URL中。 漏洞等级 所有级别相同: Session ID暴露在URL中 最佳实践:Session ID不应暴露在URL中 0x10 Session Mgmt - Strong Sessions 漏洞描述 会话安全强度问题。 漏洞等级 Low : 没有任何安全措施 Medium : top_security_nossl 的值使用HASH处理 High : 非SSL情况下看不到 top_security_ssl 的值 使用HTTPS后可观察到 top_security_nossl 值