Pikachu靶场——URL 重定向

1. URL 重定向

不安全的url跳转

不安全的url跳转问题可能发生在一切执行了url地址跳转的地方。

如果后端采用了前端传进来的(可能是用户传参,或者之前预埋在前端页面的url地址)参数作为了跳转的目的地,而又没有做判断的话
就可能发生"跳错对象"的问题。

也就是说不安全的URL跳转漏洞是指在Web应用程序中存在未经验证的用户输入作为跳转目标URL的情况。攻击者可以利用这个漏洞,将用户重定向到恶意网站或执行其他恶意操作。

依次点击页面中的链接地址

image-20230909162337485

在点击第4个的时候发现路径发生变化

image-20230909162419708

我们可以将url的值修改为百度的链接地址进行尝试

image-20230909162603239

发现跳转成功

image-20230909162539668

1.1 源代码分析

修改前,当url参数的值不为 i 时,就会跳转到 url 值表示的页面。

image-20230909162916925

1.2 漏洞防御

修改后,如果url的值为unsafere.php,则跳转到unsafere.php,如果url的值不为i,也不为unsafere.php,则留在当前页面,并显示提示信息。

image-20230909164324454

页面显示结果如下:

image-20230909164259848

防范URL重定向漏洞的方法:

  1. 对用户输入进行合法性验证:对于所有接收用户输入的参数,都需要进行合法性验证。验证方式包括检测是否为合法的URL、检测是否为域名白名单之内等。

  2. 避免使用直接的URL重定向:应避免直接使用输入参数中提供的URL地址进行重定向,可以使用一个中间转换链接(例如使用本站跳转)对URL进行重定向。

  3. 使用白名单过滤:维护白名单限制允许进行重定向的URL地址,可以有效限制攻击者可利用的重定向地址。

  4. 采用固定的重定向URL:在编写代码时,设置一个固定的重定向URL地址,或者设置一个预定义的URL地址参数,避免通过用户输入URL地址的形式来触发重定向操作。

  5. 限制重定向次数:设置最大重定向次数,如果超过预设值就结束重定向。这可以避免攻击者构造类似蜜罐攻击的链接,不断跳转用户浏览器,造成用户浏览器崩溃。

  6. 带有安全标志的重定向:使用安全标志,例如在URL中使用SSL证书或者添加额外的参数来传递当前会话信息等方式,可以增加重定向的安全性。

猜你喜欢

转载自blog.csdn.net/weixin_58783105/article/details/133377450
今日推荐