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()) - 需要重新登录
- 退出登录时session被销毁(
-
High:
- 退出登录时先清空session变量(
$_SESSION = array()) - 然后销毁session(
session_destroy()) - 需要重新登录
- 退出登录时先清空session变量(
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值
- 非SSL情况下看不到