概述
参考链接
CSRF 是 Cross Site Request Forgery 的 简称,中文名为跨域请求伪造,在CSRF的攻击场景中,攻击者会伪造一个请求(一般是一个链接),然后欺骗目标用户进行点击,用户一旦点击了这个请求,这个攻击也就完成了,所以CSRF攻击也被称为“one click”攻击。
场景例子
lucy想要在购物网站上修改购物地址,这个操作是lucy通过浏览器向后端发送了请求。这个请求里面包含了lucy的新有货地址,如果是通过GET提交的,那么会以URL传参的方式的方式将新的地址提交给后台,类似上图中的URL,相当于点了链接就能修改个人信息。
如果这时候攻击者想要修改lucy的信息怎么办?那么他需要取得lucy的账号,获得登录权限。这时候他可以将修改个人信息的请求伪造一下,构造类似下图中的URL,引诱lucy在登录状态下进行点击,这样攻击就成功了。
CSRF攻击需要条件
① 目标网站没有对修改个人信息修改的请求进行防CSRF处理,导致该请求容易被伪造
因此,判断一个网站有没有CSRF漏洞,其实就是判断对关键信息(密码等)的操作(增删改)是否容易被伪造
② lucy点击伪造的请求链接时有登录状态(已经登陆了目标网站),如果lucy没有登录,那么即便lucy点击了链接也没有作用
从CSRF的利用条件来看,CSRF的利用难度会大一些,所以CSRF对应的安全级别低一些
CSRF和XSS的区别
我们利用XSS可以达到盗取用户Cookie的目的,那么CSRF的区别在哪?
CSRF是借助用户的权限完成攻击,攻击者并没有拿到用户的权限。目标构造修改个人信息的链接,利用lucy在登录状态下点击此链接达到修改信息的目的。
XSS直接盗取了用户的权限,然后实施破坏。攻击者利用XSS盗取了目标的Cookie,登录lucy的后台,再修改相关信息。
</