CSRF概述
CSRF(Cross-Site Request Forgery),你可以这么来理解:攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发消息,盗取你的账号,添加系统管理员,甚至于购买商品、虚拟货币转账等
- 抓取一个正常请求的数据包,如果没有Referer字段和token,那么极有可能存在CSRF漏洞
- 如果有Referer字段,但是去掉Referer字段后再重新提交,如果该提交还有效,那么基本上可以确定存在CSRF漏洞。
学习:
一.CSRF(get) login
先搞清楚我们的目的:要作为黑客修改用户的信息,欺骗用户点击网站来修改个人信息。
根据提示,登录,修改个人信息
bp抓包
可以看到各个参数都在url里面,那么我们只要修改这个url,就可以直接修改参数了。
GET /pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=girl&phonenum=20230602&add=8888888&email=lucy%40pikachu.com&submit=submit HTTP/1.1
并没有看到CSRF的token,说明没有防CSRF的措施。修改get请求,将phonenum修改为20230602,然后补全url并发送给被攻击者
二 .CSRF(post) login
同样,登录后进行抓包
post型,因为是请求体,不能在url中,所以无法再使用上述办法(即通过URL来伪造请求)进行修改。但是我们可以根据抓包所获取的信息自己构造一个表单
关于post请求就相对麻烦一下,因为不能和get一样直接发给用户一个网站从而修改其用户信息,而是必须要通过表单提交的信息才行。
所以这里采取的方法,设计一个钓鱼网站。欺骗用户点击其中的form提交,当然,form中的内容是我们预先设定好的,然后点击之后,我们的黑客网站就会讲我们设定好的黑客信息以post方式请求存在csrf漏洞的网站,从而修改用户信息。
(这里借鉴学习了)