如何使用Spring Boot实现带查询字符串的重定向及开放重定向漏洞代码示例
存在开放重定向漏洞的Spring Boot代码示例
以下是一个存在**开放重定向(Open Redirect)**漏洞的Spring Boot Controller方法,它接收路径变量和查询字符串参数,并直接跳转至用户指定的页面:
@GetMapping("/vpn/gas/{web}") @ResponseBody public RedirectView getFoo(@RequestParam String a, @RequestParam String b, @PathVariable("web") String web) { // 此处拼接的url未被使用,直接将用户可控的web变量作为跳转地址 String url = web + ".com"; RedirectView rv = new RedirectView(); rv.setUrl(web); return rv; }
漏洞说明
这个方法的风险点在于:直接将用户可控的web路径变量作为跳转目标URL,没有做任何合法性校验或白名单限制。攻击者可以构造类似/vpn/gas/https://恶意域名.com的请求,诱导用户点击后跳转到钓鱼网站或恶意站点,从而实施诈骗或窃取用户信息。
内容的提问来源于stack exchange,提问作者sathish
相关产品推荐
相关产品推荐

