1.原理
1.1CSRF 是 Cross Site Request Forgery 的 简称,中文名为跨域请求伪造,在CSRF的攻击场景中,攻击者会伪造一个请求(一般是一个链接),然后欺骗目标用户进行点击,用户一旦点击了这个请求,这个攻击也就完成了,所以CSRF攻击也被称为“one click”攻击。
1.2CSRF攻击需要条件
① 目标网站没有对修改个人信息修改的请求进行防CSRF处理,导致该请求容易被伪造
因此,判断一个网站有没有CSRF漏洞,其实就是判断对关键信息(密码等)的操作(增删改)是否容易被伪造
② lucy点击伪造的请求链接时有登录状态(已经登陆了目标网站),如果lucy没有登录,那么即便lucy点击了链接也没有作用
从CSRF的利用条件来看,CSRF的利用难度会大一些,所以CSRF对应的安全级别低一些
1.3CSRF和XSS的区别
CSRF是借助用户的权限完成攻击,攻击者并没有拿到用户的权限。目标构造修改个人信息的链接,利用lucy在登录状态下点击此链接达到修改信息的目的。
XSS直接盗取了用户的权限,然后实施破坏。攻击者利用XSS盗取了目标的Cookie,登录lucy的后台,再修改相关信息。
1.4如何确认一个目标站点是否有CSRF漏洞
对目标站点增删改查的地方进行标记,并观察逻辑,判断请求是否可以伪造
1、比如修改管理员账号时,不需要验证旧密码
2、比如修改敏感信息不需要token验证
确认凭证的有效期
3、虽然退出或关闭了览器,但Cookie仍然有效,或者Session没有及时过期,导致CSRF攻击变得简单
2CSRF(get)
点击修改后,拦截包
发现可在包中进行修改个人信息
例如把性别改为boy
成功修改。
(因为是get型,也可以在url直接构造)
3CSRF(post)
拦截包后,在包中直接修改个人信息,放包后成功修改信息。
4CSRF-token
CSRF的主要问题是敏感操作容易被伪造,我们可以加入Token让请求不容易被伪造
每次请求,都增加一个随机码(需要够随机,不容易被伪造),后台每次对这个随机码进行验证, 我们进入Pikachu平台的CSRF(token)页面并登录,我们可以看一下这个GET请求.
加入token ,从而达到防止伪造的作用。