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