CSRF跨站请求伪造

CSRF全称为跨站请求伪造(Cross-site request forgery),也被称为 one-click attack 或者 session riding,它的意思是被攻击者在登录的情况下点击有攻击性的链接或访问含有恶意代码的网页,在被攻击者没意识到的情况下,使用被攻击者的身份对服务器发送一个存在CSRF漏洞的请求,例如添加管理员、修改密码等攻击行为。

CSRF攻击攻击原理及过程

1.用户q正常登陆访问web
2.验证通过,返回Cookie
3.用户在没有退出Web A的账户的情况下,访问Web B 
4.Web B要求用户q访问Web A 实现一些操作
5.根据4的要求,浏览器带着用户q的Cookie访问Web A
6.Web A 接收到请求,根据用户q的权限处理相关的操作

CSRF漏洞检测

最简单的方法就是抓取一个正常请求的数据包,无token,去掉Referer、Origin字段后再重新提交,如果该提交还有效,那么可以定制POC进行验证。这个漏洞往往伴随着CORS。无论是POST,GET都可以进行尝试

防护方案

1.提交验证码。在表单中添加一个随机的数字或字母验证码。通过强制用户和应用进行交互。来有效地遏制CSRF攻击。
2.验证Referer\Origin\Token   Token:增加随机、一次性、不可猜测的token做验证
3.在 HTTP 头中自己定义属性并验证。通过 XMLHttpRequest 这个类,能够一次性给全部该类请求加上 csrftoken 这 HTTP 头属性。并把 token 值放入当中。这样攻克了上种方法在请求中添加 token 的不便。同一时候,通过XMLHttpRequest 请求的地址不会被记录到浏览器的地址栏,也不用操心 token 会透过 Referer 泄露到其它站点中去。

参考文章

https://www.cnblogs.com/sablier/p/11099909.html

https://www.jianshu.com/p/9f83f6d76386

posted @ 2022-04-30 12:49  九天揽月丶  阅读(131)  评论(0编辑  收藏  举报