绽开重定向,Web安全皮之不存毛将焉附

by admin on 2019年2月26日

简介

简介

  那么些通过请求(如查询字符串和表单数据)钦赐重定向UQX56L的Web程序恐怕会被曲解,而把用户重定向到表面的恶意U库罗德L。那种歪曲就被叫做开发重定向攻击。

  这一个通过请求(如查询字符串和表单数据)钦定重定向U哈弗L的Web程序恐怕会被歪曲,而把用户重定向到表面包车型大巴恶意UPRADOL。那种歪曲就被喻为开发重定向攻击。

气象分析

情景分析

 
图片 1

 
图片 2

  假使有三个专业网站http://nerddinner.com/,还有一个恶意网站或钓鱼网站http://nerddiner.com/(注意:这里少了个n)。

  如若有一个正规网站http://nerddinner.com/,还有一个恶意网站或钓鱼网站http://nerddiner.com/(注意:这里少了个n)。

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

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

  1.
打开链接后跻身了登录界面,小白输入了投机的帐号名密码实行登录。

  1.
开拓链接后进入了登录界面,小白输入了上下一心的帐号名密码举行登录。

  2. 签到成功后重定向到了恶意网站。

  2. 记名成功后重定向到了恶意网站。

  3. 恶意网站是一个仿制正规网站的报到页面,并在上边提醒用户名或密码错误。

  3. 恶心网站是贰个克隆正规网站的记名页面,并在位置提醒用户名或密码错误。

  4. 小白依据提醒重新输入了帐号密码音信。

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

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

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

  6.
小白继续平常常常的操作。

  6.
小白继续日常正规的操作。

 

 

制止开放重定向

防护开放重定向

  幸免开发重定向只供给判定重定向的链接是地面包车型大巴链接大概是合法的链接即可。

  幸免开发重定向只要求判定重定向的链接是地面包车型地铁链接大概是合法的链接即可。

  1.
只要登录链接和站点其余页面都在同二个域名,在ASP.MVC中能够用Url.IsLocalUrl(string
url)来判定。

  1.
万一登录链接和站点其余页面都在同三个域名,在ASP.MVC中得以用Url.IsLocalUrl(string
url)来判定。

  2.
若是登录链接和站点其余页面不在同一个域名,如单点登录,则须要协调去落成判断的逻辑。
 
骨干代码

  2.
要是登录链接和站点其余页面不在同多个域名,如单点登录,则须要协调去贯彻判断的逻辑。
 
骨干代码

 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         }
 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

联想到XSS

  1.
恶意用户在行业内部网站下挂了跳转到恶意网站的台本。
  2.
普通用户访问到含恶意脚本的页面会跳转到恶意网站。
  3.
恶心网站是一个仿制正规网站的登录页面,并在位置提醒要求再一次登录。
  4.
小白根据提醒重新输入了帐号密码音讯。
  5.
黑心网站保存了客户的用户名密码,然后重定向会正规网站。
 
  注:那种方法每回访问含恶意脚本的页面都会跳转到恶意网站(提醒重新登录),而开放重定向只会唤醒用户名密码错误2回,相对而言,开放重定向的无感知效果要好一点。  

  1.
恶意用户在正式网站下挂了跳转到恶意网站的剧本。
  2.
普通用户访问到含恶意脚本的页面会跳转到恶意网站。
  3.
恶心网站是二个克隆正规网站的登录页面,并在上面指示要求再度登录。
  4.
小白根据提醒重新输入了帐号密码消息。
  5.
黑心网站保存了客户的用户名密码,然后重定向会正规网站。
 
  注:那种措施每便访问含恶意脚本的页面都会跳转到恶意网站(提醒重新登录),而盛开重定向只会唤醒用户名密码错误一遍,相对而言,开放重定向的无感知效果要好一些。  

   图片 3

   图片 4

源码下载

  要是大家想尝尝开放重定向的机能,能够去下载代码,把判断本链接的语句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

源码下载

  假设我们想尝尝开放重定向的效应,能够去下载代码,把判断本链接的语句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

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图