小白收到了外人发的链接

简介

  这几个通过请求(如查询字符串和表单数据)钦点重定向U福特ExplorerL的Web程序大概会被篡改,而把用户重定向到表面的恶意U奥德赛L。这种歪曲就被叫作开采重定向攻击。

此情此景剖析

 
图片 1

  假诺有叁个正式网址http://nerddinner.com/,还有一个恶意网站或钓鱼网站http://nerddiner.com/(注意:这里少了个n)。

  一天,小白收到了人家发的链接:http://nerddinner.com/Account/LogOn?returnUrl=http://nerddiner.com。

  一.
展开链接后进入了登六分界面,小白输入了团结的帐号名密码进行登6。

  二. 签到成功后重定向到了黑心网址。

  三. 黑心网址是3个克隆正规网址的记名页面,并在上头提醒用户名或密码错误。

  4. 小白依照提醒重新输入了帐号密码消息。

  5.
恶心网站保存了客户的用户名密码,然后重定向会正规网址。

  陆.
小白继续平常健康的操作。

 

防卫开放重定向

  制止开采重定向只必要剖断重定向的链接是本地的链接大概是法定的链接就能够。

  一.
假若登六链接和站点其余页面都在同3个域名,在ASP.MVC中可以用Url.IsLocalUrl(string
url)来判定。

  二.
假诺登陆链接和站点其余页面不在同贰个域名,如单点登入,则需求自身去落到实处判定的逻辑。
 
大旨代码

 1        [HttpPost]
 2         public ActionResult LogOn(LogOnModel model, string returnUrl)
 3         {
 4             //Your logon logic here.
 5             FormsAuthentication.SetAuthCookie(model.UserName, false);
 6            //Comment out this code will cause open redirection 
 7             if (!string.IsNullOrEmpty(returnUrl)&& Url.IsLocalUrl(returnUrl))
 8             {
 9                 return Redirect(returnUrl);
10             }
11             return RedirectToAction("Index", "Home");
12         }

 

联想到XSS

  壹.
恶心用户在标准网址下挂了跳转到恶意网址的本子。
  二.
普通用户访问到含恶意脚本的页面会跳转到恶意网址。
  三.
恶心网址是四个克隆正规网址的登6页面,并在下边提醒必要再一次登入。
  四.
小白根据提醒重新输入了帐号密码音信。
  五.
黑心网站保存了客户的用户名密码,然后重定向会正规网站。
 
  注:这种方法每一次访问含恶意脚本的页面都会跳转到恶意网站(提醒重新登入),而开放重定向只会指示用户名密码错误二次,相对来讲,开放重定向的无感知效果要好一点。  

   图片 2

源码下载

  假设我们想尝试开放重定向的作用,能够去下载代码,把判别本链接的语句Url.IsLocalUrl(returnUrl)注释掉,然后在签到页面加上想要跳转到的页面,如http://xxx.com/Account/LogOn?ReturnUrl=http://www.baidu.com。

  下载地址:https://github.com/ErikXu/OpenRedirection

 

 文章转发自:http://www.cnblogs.com/Erik_Xu/p/5497479.html

相关文章