Web网络安全

常见WEB攻击之URL跳转漏洞

2019-11-01  本文已影响0人  乔治大叔

一、什么是URL跳转漏洞

URL 跳转漏洞是指后台服务器在告知浏览器跳转时,未对客户端传入的重定向地址进行合法性校验,导致用户浏览器跳转到钓鱼页面的一种漏洞。

二、URL跳转漏洞的原理

url漏洞.jpg

黑客构造恶意链接给普通用户,普通用户点击链接访问看似安全的web服务器,最终跳转访问黑客恶意网站。

三、URL跳转漏洞案例

中奖率,或者给XXX投票

http://qt.qq.com/safecheck.html?flag=1&url=http://jtvx518.cc

将恶意网站与正规网站混合在一起。

实现URL的跳转:

Header头跳转

<?php
header("Content-Type:text/html;charset=utf-8");
if(isset($_REQUEST["url"]))
{
    $url = $_REQUEST["url"];
}else{
    $url = "url.html";
}
header("HTTP/1.1 301 Moved Permanently"); 
header("Location: $url"); 
?>

Javascript跳转

<script type="text/javascript" >
    function getQueryString(name) { 
        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); 
        var r = window.location.search.substr(1).match(reg); 
        if (r != null) return unescape(r[2]); return null; 
    } 
    
    var site = getQueryString("site");
    
    window.location.href=site;
</script>

META标签跳转


<html>
<head>
<title></title>
<?php
header("Content-Type:text/html;charset=utf-8");
if(isset($_REQUEST["url"]))
{
    $url = $_REQUEST["url"];
}else{
    $url = "url_meta.php";
} 
?>
<meta http-equiv="Refresh" content="5; url=<?php echo $url?>" /> 
</head>
<body>
</body>
</html>

四、防御策略

根据上面的场景分析,我们知道,之所以会出现跳转 URL 漏洞,就是因为服务端没有对客户端传递的跳转地址进行合法性校验,所以,预防这种攻
击的方式,就是对客户端传递过来的跳转 URL 进行校验。

常用的方式:
服务端配置跳转白名单或域名白名单,只对合法的 URL 做跳转

上一篇 下一篇

猜你喜欢

热点阅读