2020-12-31 01:19:36
URL跳转漏洞(URL Redirection Vulnerability)是一种常见的网络安全漏洞,攻击者可通过构造恶意URL将用户重定向到任意网站,主要危害包括钓鱼攻击、恶意软件传播、网络针对性攻击及品牌声誉受损。
漏洞原理该漏洞源于未对用户提供的URL进行充分验证和过滤。例如,以下PHP代码直接使用用户输入的url参数进行跳转:
<?php$url=$_GET['url'];header("Location: $url");?>访问
漏洞危害
钓鱼攻击:用户被诱导至伪造网站,泄露敏感信息(如账号密码)。
恶意软件传播:重定向至恶意网站导致设备感染病毒。
针对性攻击:利用浏览器漏洞攻击用户系统。
品牌声誉受损:用户对网站信任度下降。
漏洞复现
场景搭建:保存上述代码为test.php,通过php -S 0.0.0.0:9999启动服务。
复现过程:访问
绕过技巧若目标有防护措施,可尝试以下方法:
使用白名单域名变体(如子域名、大小写混淆)。
利用编码绕过(如双重URL编码、Base64编码)。
参考绕过字典(需替换white.domain为目标白名单域名)。
实战案例某网站“阅读原文”功能通过goto参数传递Base64编码的URL。构造如下链接可跳转至任意网站:
(解码后为
修复建议
输入验证:严格检查用户输入的URL格式(如协议、域名合法性)。
白名单机制:仅允许跳转至预设的安全域名列表。
安全编码:对动态生成的URL进行转义,避免注入攻击。
用户提示:重定向前显示目标URL,要求用户确认。
总结:URL跳转漏洞虽不直接危害服务器,但可能导致用户被精准钓鱼或感染恶意软件。开发者需通过输入验证、白名单和安全编码彻底防护,用户也应警惕可疑重定向行为。