URL重定向漏洞概念、修复方式、以及漏洞特征等

一、URL重定向概念

URL重定向是一种安全漏洞,它允许攻击者利用网站的重定向功能将用户重定向到恶意网站,这种漏洞通常发生在网站没有正确验证或者限制重定向目标URL的情况下,攻击者可以构造一个包含恶意URL的链接,当用户点击该链接,他们就会被重定向到攻击者控制的网站,这可能导致用户信息泄露,钓鱼攻击或者其他的恶意行为。

二、漏洞特征

网站可能允许用户通过参数指定重定向目标,例如:

https://www.aaa.com/login.php?url=https://www.aaa.com/admin.php

其中:301和302状态码表示重定向

301跳转是指页面永久性移走,通常叫做301跳转,也叫301重定向(转向)302重定向又称为暂时性转移,也被称为是暂时性重定向。

三、漏洞检测

当发现请求可能允许用户通过参数指定重定向目标时,例如:

https://www.aaa.com/login.php?url=https://www.aaa.com/admin.php

可以通过替换跳转的地址,来对漏洞进行测试

https://www.aaa.com/login.php?url=https://www.***.com

四、漏洞发现

常产生漏洞的功能点

1.登录跳转我认为就是常见的跳转类型,认证完成之后会跳转,所以在登录的时候多观察url参数

2.用户分享、收藏内容过后,会跳转

3.跨站点认证、授权后,会跳转

4.站内点击其他的网址链接时,会跳转

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

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

五、漏洞风险:

开放重定向(Open Redirect),这是URL重定向中最危险的安全漏洞。

什么是开放重定向?
如果应用程序接收用户输入的URL参数(例如 ?next= 或 ?url=),并在未进行严格验证的情况下直接将其用于重定向目标,攻击者就可以构造一个恶意链接。

攻击场景:

  1. 攻击者构造链接:https://trusted-site.com/login?redirect=https://evil-site.com/phishing
  2. 受害者点击链接,看到受信任域名的登录页。
  3. 受害者登录成功后,被自动重定向到攻击者的钓鱼网站。
  4. 由于浏览器地址栏曾显示受信任域名,受害者容易放松警惕,在钓鱼网站上输入凭证。

危害:

  • 网络钓鱼:利用受信任域名的信誉欺骗用户。
  • OAuth 令牌窃取:在授权回调中劫持访问令牌。
  • 恶意软件分发:将用户引导至挂马网站。

六、防御方式:

1.相对路径白名单

   仅适用于站内跳转

   1.1必须以/开头

   1.2严禁以//开头(防止协议相对URL)。

   1.3严谨包含\、@或者协议头(http:)

   1.4先解码在验证

2.域内白名单

   必须跳转到外部可信合作伙伴时。

   2.1维护一个严格的允许域名列表 (Allowlist)。

   2.2解析用户输入的 URL,提取 Host。

   2.3严格匹配域名(防止 evil-trusted.com 这种子域名欺骗)。

3.间接引用映射

   目标地址动态生成或者及其复杂时。

   3.1不在 URL 中传递真实地址。

   3.2传递随机 Token (ID)。

   3.3服务端查表还原真实地址,用后即焚。

4.交互流程防御,这种是一种辅助方式。

原则就是:增加攻击成本,打破自动化的钓鱼链接。

增加确认页面:

当检测到目标地址不在白名单内(或是外部链接)时,不直接跳转。

展示提示页:“您即将离开本站,前往 [域名],是否继续?”

作用的话就是:让用户意识到自己的操作正在离开受信任的页面环境,自动阻断钓鱼页面。

总结上述防御方式就是:

默认拒绝所有用户提供的重定向地址,除非它能通过严格的相对路径检查或命中明确的域名白名单。

六、  常用参数:

  1. success=http://www.***.com
  2. next=http://www.***.com
  3. data=http://www.***.com
  4. url=http://www.***com
  5. qurl=http://www.***.com
  6. login=http://www.***.com
  7. logout=http://www.***.com
  8. ext=http://www.***.com
  9. clickurl=http://www.***.com
  10. goto=http://www.***.com
  11. redirect_url=http://www.***.com
  12. redirect=http://www.***.com
  13. rit_url=http://www.***.com
  14. forward_url=http://www.***.com
  15. @http://www.***.com
  16. forward=http://www.***.com
  17. pic=http://www.***.com
  18. callback_url=http://www.***.com
  19. jump=http://www.***.com
  20. jump_url=http://www.***.com
  21. click?u=http://www.***.com
  22. originUrl=http://www.***.com
  23. origin=http://www.***.com
  24. Url=http://www.***.com
  25. desturl=http://www.***.com
  26. dest=http://www.***.com
  27. u=http://www.***.com
  28. page=http://www.***.com
  29. u1=http://www.***.com
  30. action=http://www.***.com
  31. action_url=http://www.***.com
  32. Redirect=http://www.***.com
  33. sp_url=http://www.***.com
  34. service=http://www.***.com
  35. recurl=http://www.***.com
  36. j?url=http://www.***.com
  37. url=//http://www.***.com
  38. uri=http://www.***.com
  39. u=http://www.***.com
  40. allinurl:http://www.***.com
  41. q=http://www.***.com
  42. link=http://www.***.com
  43. src=http://www.***.com
  44. tc?src=http://www.***.com
  45. linkAddress=http://www.***.com
  46. location=http://www.***.com
  47. go=http://www.***.com
  48. burl=http://www.***.com
  49. request=http://www.***.com
  50. backurl=http://www.***.com
  51. RedirectUrl=http://www.***.com
  52. Redirect=http://www.***.com
  53. ReturnUrl=http://www.***.com
  54. useruri=http://www.***.com
  55. 上面都为学习网络安全的知识所用,并无违反规定。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值