| 关键词:网站 CSRF 攻击 用户 referer 浏览器 恶意 Request 方式 token |
1.定义Cross-site Request Forgery –在某个恶意站点的页面上,促使访问者请求被攻击网站的某个 URL,从而达到改变服务器端数据的目的 攻击者盗用了你的身份,以你的名义发送恶意请求 –诞生于2000年,火于2007/2008年 –90%的网站存在此类漏洞 –特征为目标站点无token或者referer限制 –利用方式分GET与POST两种 CSRF 与 XSS的区别? Csrf的破坏力取决于受害者的权限,与浏览器机制有关。 · CSRF,跨站请求伪造(Cross Site Request Forgery) · 在用户会话下对某个请求发出GET/POST请求,而请求并非用户自愿发出 · 网站通过cookie识别用户,当用户在某网站成功进行身份验证后,浏览器会得到一个标识其身份的cookie。只要不关闭浏览器或退出登录,以后访问这个网站都会带上这个cookie · 如果这期间被人诱骗请求了这个网站的url,则相当于发出了身份认证后的请求,可能会执行一些用户不想做的敏感操作 2.CSRF攻击过程目标网站:www.webA.com 恶意网站:www.webB.com 转账功能链接: http://www.webA.com/transport?account=abc&total=500 恶意网站www.webB.com某CSRF页面: new Image().src=http://www.webA.com/transport?account=abc&total=500; 诱骗受害用户访问恶意网站CSRF页面 3.CSRF的危害· 盗取目标网站上用户隐私数据 · 篡改目标网站上用户数据 · 传播CSRF蠕虫 · … CSRF的应用与危害要取决于其场景。对于开源的、多用户的、以及社交网站,CSRF攻击带来的后果可能非常严重,且此时CSRF可以直接攻击管理员后台。然而对于闭源的、宣传册式的网站,CSRF造成的危害相对要小的多。因为此时攻击者并不清楚后台的情况,且由于此类网站用户数量很少,基本不能对其他用户产生攻击。 ![]() 从上图可以看出,要完成一次CSRF攻击,受害者必须依次完成两个步骤: 1.登录受信任网站A,并在本地生成Cookie。 2.在不登出A的情况下,访问危险网站B。 · 你不能保证你登录了一个网站后,不再打开一个tab页面并访问另外的网站。 · 你不能保证你关闭浏览器了后,你本地的Cookie立刻过期,你上次的会话已经结束。(事实上,关闭浏览器不能结束一个会话,但大多数人都会错误的认为关闭浏览器就等于退出登录/结束会话了……) 3.上图中所谓的攻击网站,可能是一个存在其他漏洞的可信任的经常被人访问的网站 4.CSRF缺陷代码A站点: String user = request.getParameter("user"); String pass = request.getParameter("pass"); PreparedStatement ps = con.prepareStatement("update UserTB set password=? Where user=?"); ps.setString(1,user); ps.setString(2,pass); con.executeUpdate(); 恶意站点上的代码 GET方式 POST方式 |
| 本文出处: https://www.toutiao.com/a6633963812661756419/ |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|