【教学篇】URL重定向漏洞
时间:2023-02-09 11:48:01 | 来源:建站知识
时间:2023-02-09 11:48:01 来源:建站知识
什么是URL重定向?
我们点击一个网页内的外链时, 网页访问另一个网站
如上图, 这是一个简书网站, 跳转到另一个网站的URL重定向
URL漏洞呢?
进一步利用, 如果我们把上图简书访问的URL改为一个恶意网站, 那么就可以实现一次类似于反射型xss的攻击
举几个应用的例子,
- 把url改为和某大网站一模一样的钓鱼网站, 用户输入账号密码后就会被盗号
- 把URL改为一个内嵌csrf的攻击脚本, 就可以实现csrf攻击
感觉本质就是, 伪装恶意链接, 让目标用户访问
在哪里可以发现它?
黑盒测试
这是我学校的一个登陆网站, 其中service=url, 就有可能存在URL重定向漏洞
- 用户分享、收藏内容过后,会跳转
- 跨站点认证、授权后,会跳转
- 站内点击其它网址链接时,会跳转
白盒测试
这里就举一个php的例子, 其他的语言小伙伴们可以自己百度
常见的参数
这个黑盒白盒都可以用于快速定位, 发现可能的漏洞
redirect
redirect_to
redirect_url
url
jump
jump_to
target
to
link
linkto
domain
激动人心的攻防战
攻1:直接利用
下方虚构一个链接来举例子:
http://Baidu.com?url=
http://hack.comhttp://hack.com就是攻击性网站, Baidu代表正常网址
肉鸡点这个网站后, 自以为点的事baidu的站点, 结果跳转的黑客的网站
防1:协议一致性
作用不大, 如果baidu用https协议,
http://hack.com也要用https协议
防2: 域名字符串检测
就是检测 url= 后面的链接, 是否是自己的网站, 比如
<?php
$redirect_url = $_GET['url'];
if(strstr($redirect_url,"www.baidu.com")
!==
false){
header("Location: "
. $redirect_url);}
else{
die("Forbidden");}
?>
上方代码可以实现, 如果你给的链接里面没有
http://www.baidu.com 这个字符串, 那么就禁止访问
攻2
修改链接为:
http://baidu.com?url=
http://www.baidu.com.hack.com相当于组合域名
防3: 检测跳转URL末尾是否匹配
原理同防2, 改为检测末尾的域名
攻3:
有2个方法绕 防3
- 把域名改为: http://baidu.com?url=http://hack.com/baidu.com
就是把白名单域名当做目录位置放到链接里面 - 直接买一个奇怪的域名: www.hack-baidu.com, 要是能买到类似的, 也是醉了….
攻&防4: 无限各种奇葩的正则匹配, 就是不让你加入恶意域名
二次跳板法, 先看代码
http://baidu.com?url=
http://baidu.com?url=
http://hack.com这个先跳转到白名单网站, 再在后面加入一个恶意网站, 也之骚也~~
奇怪的绕过
还有很多奇怪的东西, 直接搬运过来的, 大家欣赏一下吧~
还有其他的绕过思路, 搬到下面了
以上就是URL重定向漏洞的全部内容了,关注我,不迷路~
“黑掌”,一个每天都可以了解到黑客新闻,和掌握更多渗透教学的地方。