专业编程基础技术教程

网站首页 > 基础教程 正文

「教学篇」URL重定向漏洞

ccvgpt 2024-11-27 12:01:36 基础教程 1 ℃

什么是URL重定向?

我们点击一个网页内的外链时, 网页访问另一个网站


「教学篇」URL重定向漏洞

如上图, 这是一个简书网站, 跳转到另一个网站的URL重定向

URL漏洞呢?

进一步利用, 如果我们把上图简书访问的URL改为一个恶意网站, 那么就可以实现一次类似于反射型xss的攻击

举几个应用的例子,

  1. 把url改为和某大网站一模一样的钓鱼网站, 用户输入账号密码后就会被盗号
  2. 把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.com hack.com就是攻击性网站, Baidu代表正常网址 肉鸡点这个网站后, 自以为点的是baidu的站点, 结果跳转的黑客的网站

防1:协议一致性

作用不大, 如果baidu用https协议, hack.com也要用https协议

防2: 域名字符串检测

就是检测 url= 后面的链接, 是否是自己的网站, 比如

  1. <?php
  2. $redirect_url = $_GET['url'];
  3. if(strstr($redirect_url,"www.baidu.com") !== false){
  4. header("Location: " . $redirect_url);}
  5. else{
  6. die("Forbidden");}
  7. ?>

上方代码可以实现, 如果你给的链接里面没有www.baidu.com 这个字符串, 那么就禁止访问

攻2

修改链接为: http://baidu.com?url=www.baidu.com.hack.com 相当于组合域名

防3: 检测跳转URL末尾是否匹配

原理同防2, 改为检测末尾的域名

攻3:

有2个方法绕 防3

  1. 把域名改为: http://baidu.com?url=hack.com/baidu.com 就是把白名单域名当做目录位置放到链接里面
  2. 直接买一个奇怪的域名: www.hack-baidu.com, 要是能买到类似的, 也是醉了….

攻&防4: 无限各种奇葩的正则匹配, 就是不让你加入恶意域名

二次跳板法, 先看代码 http://baidu.com?url=http://baidu.com?url=hack.com 这个先跳转到白名单网站, 再在后面加入一个恶意网站, 也之骚也~~

奇怪的绕过

还有很多奇怪的东西, 直接搬运过来的, 大家欣赏一下吧~


还有其他的绕过思路, 搬到下面了



以上就是URL重定向漏洞的全部内容了,关注我,不迷路~

“黑掌”,一个每天都可以了解到黑客新闻,和掌握更多渗透教学的地方。

Tags:

最近发表
标签列表