概述
不安全的url跳转问题可能发生在一切执行了url地址跳转的地方。
如果后端采用了前端传进来的(可能是用户传参,或者之前预埋在前端页面的url地址)参数作为了跳转的目的地,而又没有做判断的话
就可能发生"跳错对象"的问题。
url跳转比较直接的危害是:
-->钓鱼,既攻击者使用漏洞方的域名(比如一个比较出名的公司域名往往会让用户放心的点击)做掩盖,而最终跳转的确实钓鱼网站
打开pikachu靶场,点击超链接,第一和第二个没反应,点击第三个则会返回到概述页面,点击第四个a标签,URL中url就向后台上传一个为i的值
打开页面源代码,可以看到第一个和第二个a标签没什么变化,而第三个a标签里的url的值是概述页面的后端文件,而第四个a标签的url则是直接赋值i,这也就解释清楚前面为什么会这样跳转了。
第四个a标签是直接赋值的,我们可以在这个标签进行测试。在url中输入一个公开的官方网站地址,比如CSDN网站
127.0.0.1/pikachu/vul/urlredirect/urlredirect.php?url=https://www.csdn.net
提交后,可以看到直接跳转到了CSDN网站。也就是说,攻击者可以通过搭建一个恶意的站点,然后把pikachu中的url的参数修改为恶意站点,攻击者就可以把这个完整的URL路径地址发送给目标用户,从而去实现钓鱼欺骗,获取目标用户的信息!
查看后端源代码:可以看到它通过get请求去获取前端上传的url,然后它会去读取判断,如果url的值等于i就会输出那段话,不等于就会去对url进行定位跳转,这就产生了一个url恶意跳转的问题。在这种情况下,我们可以做相对应的安全限制,比如对url做白名单限制等。