- 安全测试教程
- 安全测试 - 主页
- 安全测试 - 概述
- 安全测试 - 流程
- 安全测试-恶意软件
- HTTP 协议基础知识
- HTTPS 协议基础知识
- 编码与解码
- 安全测试-密码学
- 安全测试 - 同源策略
- 安全测试 - Cookie
- 黑客网络应用程序
- 安全测试-注入
- 测试损坏的身份验证
- 测试跨站脚本
- 不安全的直接对象引用
- 测试安全配置错误
- 测试敏感数据暴露
- 缺少功能级别访问控制
- 跨站请求伪造
- 有漏洞的组件
- 未经验证的重定向和转发
- 安全测试 - Ajax 安全
- 测试安全性 - Web 服务
- 安全测试 - 缓冲区溢出
- 安全测试 - 拒绝服务
- 测试恶意文件执行
- 安全测试 - 自动化工具
- 安全测试有用的资源
- 安全测试 - 快速指南
- 安全测试 - 有用的资源
- 安全测试 - 讨论
未经验证的重定向和转发
互联网上的大多数 Web 应用程序经常将用户重定向和转发到其他页面或其他外部网站。然而,在不验证这些页面的可信度的情况下,黑客可以将受害者重定向到网络钓鱼或恶意软件网站,或使用转发来访问未经授权的页面。
让我们借助简单的图表了解该缺陷的威胁代理、攻击向量、安全弱点、技术影响和业务影响。
例子
未经验证的重定向和转发的一些经典示例如下 -
假设应用程序有一个页面 -redirect.jsp,它采用参数redirectrul。黑客添加恶意 URL,重定向执行网络钓鱼/安装恶意软件的用户。
http://www.mywebapp.com/redirect.jsp?redirectrul=hacker.com
所有网络应用程序用于将用户转发到网站的不同部分。为了实现相同的目的,某些页面使用参数来指示如果操作成功,用户应该重定向到哪里。攻击者制作一个通过应用程序访问控制检查的 URL,然后将攻击者转发到攻击者尚未获得访问权限的管理功能。
http://www.mywebapp.com/checkstatus.jsp?fwd=appadmin.jsp
预防机制
最好避免使用重定向和转发。
如果这是不可避免的,那么应该在重定向目的地时不涉及用户参数。