重定向攻击

2018/07/26 408

重定向攻击

攻击者通过重定向的方式,把用户误导到恶意网站上,从而获取用户名和密码。

攻击原理

example.com/detail需要身份验证,如果用户未登录,会重定向到example.com/login?returnUrl=example.com/detail
当登陆成功后,自动会跳转到用户原始想要访问的页面example.com/detail,这个值通过returnUrl得到。

如果用户不慎进入攻击者所挂下的恶意网址example.com/login?returnUrl=a.com/login,同时a.com/login的登录界面跟example.com/login一模一样。这时,用户不会察觉出任何异常,如果这时候,用户重新输入用户名和密码,那么用户名和密码就泄露给a.com。这就是重定向攻击

如何避免

服务端不要贸然的重定向,确保重定向目标是服务端认可的。

ASP.NET Core中,使用如下代码判断

Url.IsLocalUrl(returnUrl)
评论