zoukankan      html  css  js  c++  java
  • URL重定向漏洞解析

    参考文章


    概述


    总结


    一、漏洞介绍

    URL重定向(URLredirection)漏洞,又称跳转漏洞。指的是网络应用程序接受用户可控的输入作为到外部站点的链接,然后在重定向中使用该链接。可以认为是SSRF一种。


    二、漏洞原理

    http参数可能包含URL值,并且可能导致Web应用程序将请求重定向到指定的URL。通过将URL值修改为恶意站点,攻击者可以成功启动网络钓鱼诈骗并窃取用户凭据。由于修改后的链接中的服务器名称与原始站点相同,因此网络钓鱼尝试具有更可信赖的外观。

    常见的URL跳转代码如下

    Java: 
    response.sendRedirect(request.getParameter("url")) 
    PHP: 
    $redirect\_url = $\_GET['url']; header("Location: " . $redirect\_url) 
    .NET: 
    string redirect\_url = request.QueryString["url"]; Response.Redirect(redirect\_url); 
    Django: 
    redirect\_url = request.GET.get("url") HttpResponseRedirect(redirect\_url) 
    Flask: 
    redirect\_url = request.form['url'] redirect(redirect\_url) 
    Rails: 
    redirect\_to params[:url]
    

    三、漏洞危害

    • 网络钓鱼
      即攻击者将漏洞用比较有名的域名伪装,用户没有注意到以此放心点击。被窃取敏感信息。
    • 绕过保护机制;获取权限或假冒身份
      用户的访问可能会被重定向到不可靠的网页。不可靠网页中可能存在恶意软件并可能攻陷用户电脑。一旦用户电脑被攻陷,用户就暴露在大量各种网络危机中。而且用户和网络服务器的交互也可能被攻陷,导致个人身份,密码等关键敏感信息的泄漏。

    四、利用前提

    1. URL从用户可控制的输入中提取;
    2. 该URL未经验证,就被用于网络应用程序的重定向地址。

    五、挖掘利用

    1、描述

    由于该类型的漏洞与语言无关,因此没有细致的分类。

    2、挖掘

    ==常见于任何需要跳转处。

    1. 用户登录、统一身份认证处,认证完后会跳转
    2. 用户分享、收藏内容过后,会跳转
    3. 跨站点认证、授权后,会跳转
    4. 站内点击其它网址链接时,会跳转
    5. 图片上传处(暴露图片存放路径的,并且可以修改的情况下)
      常见的参数名
    redirect 
    redirect_to 
    redirect_url 
    url jump 
    jump_to 
    target 
    to
    link 
    linkto 
    domain
    

    可能性比较高的URL链接格式:http://www.aaa.com/bbb?url=http://ccc.com,如果成功跳转指定的URL,说明存在URL跳转漏洞。

    但是,如果没有成功跳转,不能说明不存在URL跳转漏洞。后台可能会对用户请求的链接进行处理。这里我们要尝试绕过。

    aaa.com是含有URL重定向漏洞的网站, ccc.com是需要跳转到的网站。

    1.利用问号绕过
    格式:http://www.aaa.com/bbb?url=http://ccc.com?aaa.com
    注意:一定要带上aaa.com
    跳转后的url是http://ccc.com?aaa.com

    2.利用反斜杠和正斜杠绕过
    正斜杠
    格式1:http://www.aaa.com/bbb?url=http://ccc.com/aaa.com
    反斜杠
    格式2:http://www.aaa.com/bbb?url=http://ccc.comaaa.com
    " . ":
    格式3:http://www.aaa.com/bbb?url=http://ccc.com.aaa.com

    3.利用@绕过
    格式:http://www.aaa.com/bbb?url=http://aaa.com@ccc.com
    疑似只有火狐浏览器可以使用该方法

    4.利用白名单缺陷绕过
    白名单的限制往往是不全面的。
    例如该网站想跳转到自己的内部页面,而只检查跳转url中有没有白名单的内容。那么:http://www.aaa.com/bbb?url=http://cccaaa.com
    购买cccaaa.com的域名,这样也是可以绕过的。

    5.多重验证&跳转绕过
    现在很多网站都有多重验证,比如你登陆账户后会出现另一个验证页面,输入手机验证码进行验证,此时这上面的URL很可能存在任意跳转的问题。
    比如http://www.aaa.com/acb?Url=http: … ttp://login.aaa.com
    当然,还有多重的,结构的多重跳转你修改最后面的URL就可以达到任意URL跳转,中间的URL就没必要动了。

    6.点击触发实现绕过
    很多登陆页面的地方,其URL是一个跳转的URL
    如某一个登录页面,修改url:http://www.aaa.com/bbb?url=http://ccc.com
    登录用户,有可能触发。

    7.利用xip.io绕过
    格式:http://www.aaa.com/bbb?url=http://www.aaa.com.ccc.com.xip.io
    但是没有成功,暂且保留。

    8.利用超链接绕过可信站点限制
    比如一个URL,它是可以直接跳转的,但是一般测试跳转时大家习惯用www.baidu.com或qq.com这样的可信站点进行测试,但是有些网站是可以跳转这些网站的。
    只要是可信站点且常用,基本都可以跳转,那么这就属于正常的业务逻辑了,难度就这样错失一个URL跳转漏洞了?
    其实不然,只要你的URL被百度收录过,那么直接搜索你的域名,site:xxx.xxx
    因为你在百度里点击你的域名,它会先是一个302跳转,而这个302跳转就是百度下的302跳转,那么这样就可以绕过可信站点的限制,从而达到跳转到指定URL。
    当然,百度这个302有点长,你给它进行加密就行。
    利用百度缓存链接,在其上再进行跳转

    9.POST参数中的URL跳转
    常见于上传图片、头像处。如果过滤不严,将会把图片的完整地址包含在POST参数里,这里我们修改其地址为ccc.com。
    由于修改了地址,图片就会显示不出来,右键查看图片,就会触发URL跳转(可以配合其他绕过方式)
    如果POST参数里就只是URL跳转参数,那么你可以给它转成GET方式,然后进行跳转就可以了,只要网站支持这样的GET方式就行。在Burp Suite里可以一键转换提交方式,右键选择Change request method就可以!

    10.利用#号绕过
    格式:http://www.aaa.com/bbb?url=http://ccc.com#aaa.com

    11.其他绕过思路

    1. 跳转到IP地址,而不是域名; 
    2. 跳转到IPV6地址,而不是IPv4地址; 
    3. 将要跳转到的IP地址用10进制、8进制、16进制形式表示; 
    4. 更换协议,使用ftp、gopher协议等; 
    5. 借鉴SSRF漏洞绕过的tricks; 
    6. CRLF注入不能xss时,转向利用任意URL跳转漏洞;
    

    3、利用

    修改请求链接。钓鱼、获取敏感信息。进一步扩大危害。


    六、修复防范

    1. 从实现角度,进行输入验证:对输入的信息进行验证。 比如说使用已知的有效输入验证机制,或是制定严格的说明来规范输入的信息等等。对于不符合规范的输入,或者是拒绝接受,或者对输入进行转换净化,让它符合规范要求。

    2. 从体系架构和设计上防范该安全漏洞,并尽量减少暴露的攻击面。


    七、提出问题

    与SSRF类似,不知道两者有何区别。

  • 相关阅读:
    PyCharm安装及其使用
    web端自动化——Selenium3+python自动化(3.7版本)-chrome67环境搭建
    Unittest单元测试框架
    selenium IDE下载安装(For Chrome and firefox)
    视频上传测试点
    web端自动化——自动化测试准备工作
    selenium3+Python3+sublime text3自动化登录
    Sublime Text3安装及常用插件安装
    web端自动化——selenium3用法详解
    Selenium2+python自动化2.7-火狐44版本环境搭建(转)
  • 原文地址:https://www.cnblogs.com/gorillalee/p/14351069.html
Copyright © 2011-2022 走看看