- 安全测试教程
- 安全测试 - 主页
- 安全测试 - 概述
- 安全测试 - 流程
- 安全测试-恶意软件
- HTTP 协议基础知识
- HTTPS 协议基础知识
- 编码与解码
- 安全测试-密码学
- 安全测试 - 同源策略
- 安全测试 - Cookie
- 黑客网络应用程序
- 安全测试-注入
- 测试损坏的身份验证
- 测试跨站脚本
- 不安全的直接对象引用
- 测试安全配置错误
- 测试敏感数据暴露
- 缺少功能级别访问控制
- 跨站请求伪造
- 有漏洞的组件
- 未经验证的重定向和转发
- 安全测试 - Ajax 安全
- 测试安全性 - Web 服务
- 安全测试 - 缓冲区溢出
- 安全测试 - 拒绝服务
- 测试恶意文件执行
- 安全测试 - 自动化工具
- 安全测试有用的资源
- 安全测试 - 快速指南
- 安全测试 - 有用的资源
- 安全测试 - 讨论
测试损坏的身份验证
当与应用程序相关的身份验证功能未正确实现时,黑客就可以破解密码或会话 ID,或者使用其他用户凭据来利用其他实现缺陷。
让我们借助简单的图表了解该缺陷的威胁代理、攻击向量、安全弱点、技术影响和业务影响。
例子
An e-commerce application supports URL rewriting, putting session IDs in the URL − http://example.com/sale/saleitems/jsessionid=2P0OC2JSNDLPSKHCJUN2JV/?item=laptop
该网站经过身份验证的用户会将 URL 转发给他们的朋友,以了解折扣销售情况。他通过电子邮件发送了上述链接,但并不知道用户也泄露了会话 ID。当他的朋友使用该链接时,他们使用他的会话和信用卡。
动手
步骤 1 - 登录 Webgoat 并导航至“会话管理缺陷”部分。让我们通过欺骗 cookie 来绕过身份验证。下面是该场景的快照。
步骤 2 - 当我们使用凭证 webgoat/webgoat 登录时,我们从 Burp Suite 中发现 JSESSION ID 为 C8F3177CCAFF380441ABF71090748F2E,而身份验证成功后 AuthCookie = 65432ubphcfx。
步骤 3 - 当我们使用凭据方面/方面登录时,我们从 Burp Suite 中发现 JSESSION ID 为 C8F3177CCAFF380441ABF71090748F2E,而身份验证成功后 AuthCookie = 65432udfqtb。
步骤 4 - 现在我们需要分析 AuthCookie 模式。前半部分“65432”对于两种身份验证都是通用的。因此,我们现在有兴趣分析 authcookie 值的最后部分,例如分别用于 webgoat 用户的 ubphcfx 和用于方面用户的 udfqtb。
步骤 5 - 如果我们深入查看 AuthCookie 值,最后一部分的长度与用户名的长度相同。因此,很明显该用户名使用了某种加密方法。经过试错/暴力破解机制,我们发现在逆转用户名webgoat后;我们最终得到 taogbew,然后前面的字母字符被用作 AuthCookie。即 ubphcfx。
步骤 6 - 如果我们传递这个 cookie 值,让我们看看会发生什么。以用户 webgoat 身份进行身份验证后,通过执行步骤#4 和步骤#5 查找相同的 AuthCookie,更改 AuthCookie 值以模拟用户 Alice。
预防机制
开发强大的身份验证和会话管理控制,使其满足 OWASP 应用程序安全验证标准中定义的所有身份验证和会话管理要求。
开发人员应确保避免可用于窃取会话 ID 的 XSS 缺陷。