原创 | URL重定向安全

admin 2024年10月24日09:57:11评论25 views字数 892阅读2分58秒阅读模式

Web应用程序经常将用户界面重定向和转至其他网页或网站,如果处理不当,用户会被攻击者利用重定向转至不可信的数据页面所欺骗,带来不必要的损失。

一般情况下,会将登录后需要跳转的地址"http://www.c.com/index.php"放到登录页面的参数中,如图1:

原创 | URL重定向安全

图1 登录跳转页面

登录成功后,如果没有得到适当验证,攻击者可以重定向目标用户到钓鱼软件或恶意网站,使用转发链接来使目标用户访问未经过授权的页面,这可能导致恶意软件的安装或者用户密码等敏感信息的泄露。

不安全的转发可能允许绕过访问控制,如下是URL跳转示例。示例中有一个名为"index.php"页面,该页面有一个参数名是“url”。攻击者精心制作了一个URL将用户重定向到其他网站。

<?php  $url=$_GET['url'];  header("Location:$url");?>

即使登录界面相同,但如果URL不一样(见图1和图2),那么跳转界面也会不一样。当用户在浏览器中输入或者从邮件中点击攻击者发送过来的地址“http://www.a.com/login/index.php?url=http://www.c.com”后(“http://www.c.com”仅为示例),会被引导到攻击者想让用户访问的页面上,如图3所示。如果是攻击者精心构造的恶意地址,用户很有可能被执行钓鱼攻击并安装恶意程序。

原创 | URL重定向安全

图2 用户实际输入的地址

原创 | URL重定向安全

图3 用户被引导跳转后的实际页面

在控制页面转向的地方校验传入的URL是否为可信域名,通常采用URL白名单机制。该机制可以有效地防止任意跳转。

<?php  $whithList = array('localhost','localhost');  $url=$_GET['url'];  if(in_array($url,$whithList){    header("Location:$url");  }else{    exit("<center><h3>非法域名请求<h3></center>");  }?>

图4是添加白名单后的执行结果,成功地阻止了页面跳转。

原创 | URL重定向安全

图4 阻止URL跳转漏洞

 

原文始发于微信公众号(船山信安):原创 | URL重定向安全

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年10月24日09:57:11
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   原创 | URL重定向安全https://cn-sec.com/archives/3307404.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息