1、定义
csrf,cross script request forgery跨站请求伪造,是受害者用户在登录目标网站A后,访问攻击者控制的网站B,后者的页面伪造请求提交到网站A,同时携带对网站A的cookie登录凭证,使得网站A的服务端接收后认为是用户自身发送,从而造成危害。
(1)登录
csrf发生在用户登录后,且必须是cookie登录凭证,不能在url或请求中包含token,也不能在包含其他请求头部内存在类似token的数据。
(2)危害
可以模拟用户操作,从而进行账号操作,但是一般是增改删业务,而不涉及查询。
2、利用过程
攻击者发现目标网站某处存在csrf漏洞,直接创建或者控制网站B,创建页面使访问者执行csrf的脚本
在受害者登录目标网站A后,通过邮件、短信等方式使其访问网站B的创建页面
3、测试步骤
(1)登录
(2)检查请求是否存在token,以及非常规的请求字段
(3)ajax一般不作为csrf测试,ajax的跨域并不携带cookie
(4)检查referer和origin是否在服务端被检查
4、防护
(1)设置token机制,或者非常规的请求字段
(2)ajax交互
(3)严格检查referer和origin字段,一般习惯拆分各部分