上一次的内容主要是 XSS 跨站漏洞的分析,那我们这次主要是给大家带来的是 CSRF 的漏洞分析,教程内容主要来自:https://www.bilibili.com/video/BV1Bp4y1q7XF 本文章作为本课程的一个读书笔记。
课程目录:
一、了解与测试
1、漏洞概述
关于这个漏洞的概述:
2、测试流程
那我们进入一个场景来描述:
这个场景的话就是 lucy 女士想要更改购物网站的信息,更改的信息就是需要luck女士登录这个网站,编辑信息,上传信息。就可以完成信息的更改,但是这时候你会发现 这个更改信息是以 url 信息来传输。那以黑客的角度,要如何入侵呢?
那 CSRF和XSS到底有什么区别?
XSS的话其实就是通过 cookie 直接盗取用户的信息和权限,CSRF的话是要有用户权限的前提下来进行盗取信息。那我们如何判断这个网站是否有 CSRF 漏洞呢?:
二、实验演示
我们直接用 pikachu 靶场来进行实战演示:
然后我们开始对个人信息进行修改:
然后我们通过BP抓包可以抓到这些内容:
http://127.0.0.1:88 GET /vul/csrf/csrfget/csrf_get_edit.php?sex=11232&phonenum=123123&add=123123&email=123123&submit=submit true 302 34903 HTML Get the pikachu 1742295772464
你会发现这个链接地址是不存在 token 等防 csrf 攻击的,那我们攻击者就可以直接更改信息,构造成一个链接:
http://127.0.0.1:88/vul/csrf/csrfget/csrf_get_edit.php?sex=man&phonenum=123123&add=123123&email=123123&submit=submit
那我们就可以直接让 Lucy 女生点击我们构造好的链接,这样的话信息就被更改了:
三、防护措施
1、token怎么防止 CSRF 的
后台是这样的:
这是一个示例,当你请求这个页面的时候,系统就会生成一个token。也就是说当你每次刷新的时候,老的token就会被替代,生成新的token,然后丢进前端进行比对。
那我们代入 pikachu 靶场来查看:
通过 BP 抓包后的结果:
http://127.0.0.1:88 GET /vul/csrf/csrftoken/token_get_edit.php?sex=123&phonenum=123&add=123&email=132&token=6461167d95596a58e0300825650&submit=submit true 302 35031 HTML Get the pikachu 1742296474767
你会发现多了个 token 的内容,这样的话就可以防止 csrf 漏洞攻击了。那前端大概是怎么样的内容:
前端多了个表单,不过这是隐藏的你看不见,当你提交的时候这个token就会传送到后台,然后后台就进行比对,比对成功就成功修改信息。
最后的 set_token 的话就是:
其实就是删除旧 token 重新生成新的 token
2、防范措施
关于 CSRF 漏洞分析,我们就到这里结束了,感谢大家阅读!也同时希望大家能够推荐本博客给各位,希望大家能够借鉴学习,有问题可以在评论区指出!