服务粉丝

我们一直在努力
当前位置:首页 > 财经 >

渗透测试中的 URL 重定向

日期: 来源:信安之路收集编辑:xazlwiki

本文为信安之路内部 wiki 第 144 篇文章,注册解锁全部文章

开放重定向(Open Redirect),也叫URL跳转漏洞,是指服务端未对传入的跳转url变量进行检查和控制,导致诱导用户跳转到恶意网站,由于是从可信的站点跳转出去的,用户会比较信任。

渗透测试中的 URL 重定向

常见的 URL 重定向漏洞都比较明显,但是也有少数例外,这里总结了三种常见的 URL重定向类型。

类型一:基于参数的 URL 重定向

这是最常见的,通过修改参数中的跳转地址,查看是否重定向到我们指定的页面,比如:

类型二:恢复原访问页导致的重定向

通常为了提高用户的体验,在用户登录之后,往往会跳转至原来的访问页面,比如:

https://example.com/login?returnUrl=/dashboard

登录之后会跳转至 /dashboard,并且是以登录后的身份,这时我们可以测试是否会跳转目标以外的网站,比如:

https://example.com/login?returnUrl=https://www.xazlsec.com

如果登录成功之后,跳转至信安之路的网站,那么该漏洞就存在。

类型三:基于 html 标签的 URL 跳转

实现 URL 重定向,除了在 header 中设置 Location 字段外,还有两种实现方式:

1、Meta 标签,代码如下:

<head>  <meta http-equiv="Refresh" content="0; URL=https://example.com/" /></head>

2、javaScript 代码:

window.location = "https://example.com/";

如果是这两种方式实现 URL 跳转,而 URL 参数可控,则可能存在 XSS 漏洞。

类型四:基于 DOM 的 URL 重定向

JavaScript 可以直接从浏览器获取数据。Web 浏览器中的 URL,例如:

https://example.com/#dashboard

dashboard 不会被发送至后端,如果页面中使用如下 JavaScript 代码:

// use substr() to remove the '#'window.location = window.location.hash.substr(1)

攻击者可以创建如下链接:

https://example.com/#https://www.xazlsec.com

访问之后将跳转至信安之路的网站。

URL 重定向漏洞修复

方案一:URL 白名单

可以将需要跳转的页面,保存至数据库,然后用对应的 id 进行跳转,比如:

https://example.com/redirect?externalPage=1https://example.com/redirect?externalPage=2https://example.com/redirect?externalPage=3

如果只是重定向到本网站的页面,可以使用页面命名方案,比如:

https://example.com/redirect?page=dashboardhttps://example.com/redirect?page=accounthttps://example.com/redirect?page=settings

方案二:正则表达式

正则表达式的方案,无需操作数据库,但是设置不好容易被绕过,比如下面的案例:

redirect_url = urlparse.urlparse(url)# 漏洞参数原因,仅匹配 url前缀if bool(re.search("^https://example.com", url)):

只是搜索 url 中是否包含 https://example.com 且以它为开头,可以用下面的 poc 绕过:

https://example.com/redirect?page=https://example.com.evil-hackers.corp.com

要使用正则表达式,使用尾部斜杠以防止恶意使用子域:

redirect_url = urlparse.urlparse(url) #修复后,限定完整域名if bool(re.search("^https://example.com/", url)):

这样就确保不会重定向到设置之外的域。

方案三:任意 URL 跳转功能

有些功能设计之初就是为了能够跳转至任意网站,比如一些推广功能,这种情况下,最基本的也要对跳转的协议做限制,比如只允许跳转以 https?:// 开头的网站。

在跳转至外部网站时,设置提示,提醒用户,比如:

总结

URL 重定向本身并不是坏事,但您必须采取措施确保用户都知道发生的外部重定向,并在必要时尽量减少重定向到的目标。

相关阅读

  • 每日安全动态推送(2-14)

  • Tencent Security Xuanwu Lab Daily News• [Vulnerability] GitHub - 0xf4n9x/CVE-2023-0669: CVE-2023-0669 GoAnywhere MFT suffers from a pre-authentication command
  • [每周一书]《中年之路》人格的第二次成型

  • 为什么这么多人在中年遭遇如此多的挫折?为什么我们会把这种挫折当作一种危机?这种经历的意义是什么?中年危机,我更愿意称之为中年之路,为我们提供了一个重新审视自己的机会,并提出
  • 摇一摇跳广告发明人,被网友扒出来了!

  • 周末了,果核带大家看点有趣的东西以下文章来自:科技每日推送天下苦摇一摇跳广告久矣。每次打开贴吧、知乎、腾讯视频等App,一不留神轻轻晃动,它就自动跳转到购物App,有时还会自动
  • 万里走单骑继续新疆之行 悠悠丝路绽放魅力

  • 石榴云/新疆日报讯(记者 刘萌萌报道)2月24日,世界遗产揭秘互动纪实节目《万里走单骑——遗产里的中国》第三季第11期新疆丝绸之路站看片会在新疆人民剧场举行,记者与网红大V、高
  • 保护文化遗产,创造丝路未来

  • “驼铃古道丝绸路,胡马犹闻唐汉风。”丝绸之路连接欧亚、沟通东西,是名副其实的东西方政治、经济、文化的交汇之路。千年来,无数商贾、僧侣、旅人穿越广袤荒凉的沙漠、走过飞

热门文章

  • “复活”半年后 京东拍拍二手杀入公益事业

  • 京东拍拍二手“复活”半年后,杀入公益事业,试图让企业捐的赠品、家庭闲置品变成实实在在的“爱心”。 把“闲置品”变爱心 6月12日,“益心一益·守护梦想每一步”2018年四

最新文章

  • 渗透测试中的 URL 重定向

  • 本文为信安之路内部 wiki 第 144 篇文章,注册解锁全部文章开放重定向(Open Redirect),也叫URL跳转漏洞,是指服务端未对传入的跳转url变量进行检查和控制,导致诱导用户跳转到恶意网
  • 盘点最近两年出版的信息安全类图书「送书」

  • 书籍是获取知识性价比最高的途径,每一本书都汇聚了作者巨大的心血以及多年的实践经验,这两年疫情期间,信息安全领域出现了多个优秀书籍,今天就来一一盘点,总有一款适合你。送书活
  • 公益刷洞前奏,目标哪里来?

  • 大家好,好久不见,上周一直在做信息收集,顺带整理这两年刷公益漏洞编写的脚本和工具,经过两年的时间沉淀,积累了一套属于自己的自动化挖洞系统,一觉醒来就有一百个漏洞等着要提交,现