解析CSRF跨站请求伪造

    作者:课课家教育更新于: 2017-12-28 11:23:54

      当存心不良的web站点导致用户的浏览器在可信的站点上进行非意愿的活动时,我们就说发生了跨站请求伪造(CSRF)攻击。可能有些朋友对CSRF不是很熟悉,不要紧,我们下面就来学习。
      什么是CSRF?
      跨站请求伪造是指攻击者可以在第三方站点制造http请求并以用户在目标站点的登陆态发送到目标站点,而目标站点未校验请求来源使第三方成功伪造请求。
      JS控制浏览器发送请求的时候,浏览器时根据目标站点,而不是来源站点,来发送cookie的,如果当前会话中有目标站点的cookie,就发送出去。核心问题是浏览器的会话机制,是跨站请求伪造漏洞的根源。
      CSRF(Cross-site requestforgery,跨站请求伪造)也被称为“oneclickattack”或者session riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。
      CSRF攻击原理
      CSRF攻击原理比较简单,如下图所示。其中web A为存在CSRF漏洞的网站,web B为攻击者构建的恶意网站,user C为web A网站的合法用户。
      解析CSRF跨站请求伪造 _web_html_微博_课课家教育
      1. 用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A;
      2.在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A;
      3. 用户未退出网站A之前,在同一浏览器中,打开一个TAB页访问网站B;
      4. 网站B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点A;
      5. 浏览器在接收到这些攻击性代码后,根据网站B的请求,在用户不知情的情况下携带Cookie信息,向网站A发出请求。网站A并不知道该请求其实是由B发起的,所以会根据用户C的Cookie信息以C的权限处理该请求,导致来自网站B的恶意代码被执行。
      CSRF攻击之所以会发生,其根本原因就是Web站点所验证的是Web浏览器而非用户本身。下面我们用体的示例来详细介绍CSRF攻击。
      例A:
      针对某个人进行CSRF POST攻击,需要诱导用户点击所以称 one click attack
      首先假定有2个用户,分别为 A用户 和 B用户
      A用户申请的ID为1 ,B用户申请的ID为2
      A用户修改个人资料的URL假设为:http://www.xxx.com/userinfo.php?id=1
      POST参数为name
      如果A用户知道B用户ID为2且A用户通过修改ID不能访问到B用户的时候,可以进行CSRF攻击
      首先建个页面,页面代码如下:
      
      
      
      
      
      别人只要点击链接,即可触发漏洞
      今天关于CSRF的内容就学到这啦,你是不是对CSRF有了不同的认识?阅读更多内容,欢迎登陆课课家(www.kokojia.com)!

    标签: webhtml微博

课课家教育

未登录