Web安全基础学习:URL重定向漏洞之不安全的URL跳转

理论基础

  • URL重定向漏洞

    URL跳转漏洞,也叫开放重定向漏洞。URL 跳转漏洞是指后台服务器在告知浏览器跳转时,未对客户端传入的重定向地址进行合法性校验,通过修改恶意站点的 URL 值,攻击者可能成功发起网络钓鱼诈骗并窃取用户凭据。

  • 进行URL跳转的常见方式

    a 标签跳转、meta 标签内跳转、JavaScript 跳转、header 头跳转

  • URL重定向漏洞成因
    1. 代码层忽视 URL 跳转漏洞,或不知道/不认为这是个漏洞。
    2. 代码层过滤不严,用去取子串、取后缀等方法简单判断,代码逻辑可以被绕过。
    3. 对传入参数操作(域名剪切/拼接/重组)和判断不当,导致绕过
    4. 原始语言自带的解析 URL,判断域名的函数库出现逻辑漏洞或者意外特性
    5. 服务器/容器特性、浏览器登对标准 URL 协议解析处理等差异性导致被绕过
  • URL重定向漏洞测试示例
    1. 在测试页面发现可能存在URL重定向漏洞的链接:http://www.aaa.com/bbb?url=http://ccc.com
    2. 修改参数url进行测试,看是否产生跳转:http://www.aaa.com/bbb?url=http://www.qq.com
    3. 若成功跳转到QQ(或其他测试网站),且能成功访问页面,则判断存在URL重定向漏洞。
  • URL重定向常见攻击点(测试点)
    1. 用户登录、统一身份认证、认证完进行跳转。
    2. 用户分享、收藏内容跳转。
    3. 跨站点认证、授权后。
    4. 站内其它链接跳转。
    5. 注册、注销、修改密码等。
    6. 账户切换、保存设置。
  • URL重定向漏洞危害
    1. 钓鱼攻击:攻击者可以利用URL重定向漏洞,在看似官方的网站上诱导用户访问涉黄涉赌非法网站、下载恶意软件或执行其他恶意操作等。
    2. 窃取用户信息:攻击者可以伪造一个看起来和原网站相似的假冒网站,诱使用户输入敏感信息,如用户名、密码、银行账户等,从而窃取用户的信息。
    3. XSS漏洞: 通过 javascript:alert(0) 或 CRLF;
    4. 获取用户权限:伪造钓鱼网站、窃取登录凭证 token;
    5. 绕过检测:窃取 CSRF token, 绕过 SSRF, RCE 和名单
    6. 高级利用方法:配合其他功能 / 漏洞
  • URL重定向测试常用Payload

    https://baidu.com
    http://baidu.com
    http://www.example.com.baidu.com
    https://www.example.com.baidu.com
    http://baidu.com/www.example.com
    https://baidu.com/www.example.com
    http://www.example.com?url=http://baidu.com
    https://www.example.com?url=https://baidu.com
    /baidu.com
    //baidu.com
    ///baidu.com
    baidu.com
    ///baidu.com//..
    baidu.com//..
    http://www.example.com@www.baidu.com
    https://www.example.com@www.baidu.com
    http://www.baidu.com\www.example.com
    https://www.baidu.com\www.example.com
    http://www.baidu.com#www.example.com
    https://www.baidu.com#www.example.com
    http://www.baidu.com?www.example.com
    https://www.baidu.com?www.example.com
    http://www.baidu.com\\www.example.com
    https://www.baidu.com\\www.example.com
    .baidu.com
    .baidu
    127.0.0.1
    127.0.0.1:80
    http://localhost
    https://localhost
    0x7f.0.0.1
    0
    0.0.0.0
    dict://127.0.0.1:80
    file://etc/passwd
    //example.com@google.com/%2f..
    ///google.com/%2f..
    ///example.com@google.com/%2f..
    google.com/%2f..
    https://google.com/%2f..
    https://example.com@google.com/%2f..
    /https://google.com/%2f..
    /https://example.com@google.com/%2f..
    //google.com/%2f%2e%2e
    //example.com@google.com/%2f%2e%2e
    ///google.com/%2f%2e%2e
    ///example.com@google.com/%2f%2e%2e
    google.com/%2f%2e%2e
    /http://example.com
    /http:/example.com
    /https:/%5cexample.com/
    /https://%09/example.com
    /https://%5cexample.com
    /https:///example.com/%2e%2e
    /https:///example.com/%2f%2e%2e
    /https://example.com
    /https://example.com/
    /https://example.com/%2e%2e
    /https://example.com/%2e%2e%2f
    /https://example.com/%2f%2e%2e
    /https://example.com/%2f..
    /https://example.com//
    /https:example.com
    /%09/example.com
    /%2f%2fexample.com
    /%2f%5c%2f%67%6f%6f%67%6c%65%2e%63%6f%6d/
    /%5cexample.com
    /%68%74%74%70%3a%2f%2f%67%6f%6f%67%6c%65%2e%63%6f%6d
    /.example.com
    //%09/example.com
    //%5cexample.com
    ///%09/example.com
    ///%5cexample.com
    %09/example.com
    %5cexample.com
    /example.com
    /example.com/
    \;@example.com
    example.com/
    

注:使用时将example替换为原地址,作者自用的Payload字典包含了FUZZ测试,使用者需要自行判断。

  • URL重定向漏洞预防
    1. 使用黑、白名单进行过滤。
    2. 在可能的情况下,让用户提供在服务器端映射到完整目标 URL 的短名称、ID 或令牌。
    3. 不允许将 URL 作为目标的用户输入。
    4. 如果无法避免用户输入,请确保提供的值有效、适用于应用程序,并且已为用户授权。
    5. 从应用程序中删除重定向功能,并将指向它的链接替换为指向相关目标 URL 的直接链接。

实践学习

漏洞环境以Pilot靶场为例:下载地址与部署教程

  1. 进入漏洞页面后,打开F12元素,并指向图片:

    l1-1

  2. 发现图片通过链接远程加载,考虑该URL是否可以恶意跳转。

  3. 抓包后,点击该图片,发现存在重定向:

    l1-2

  4. 在请求包修改重定向链接到http://www.baidu.com,发现可以成功跳转到百度页面:

    l1-3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值