CSRF漏洞+附pikachu靶场详解

发布时间:2024年01月12日


前言

此文章只用于学习和反思巩固csrf攻击知识,禁止用于做非法攻击。注意靶场是可以练习的平台,不能随意去尚未授权的网站做渗透测试!!!


一、CSRF漏洞是什么

CSRF又称跨站请求伪造,是指攻击者在用户登录的状态下(浏览器保存了用户的cookie)通过伪造恶意url诱导用户点击,借助用户的cookie网站权限(冒充用户身份来进行非法操作,对于服务器来说是合法的)达到篡改数据、购买商品等非法操作。

在这里插入图片描述

这张图就详细展示了csrf攻击过程。

二、CSRF漏洞形成的条件

通过上面的讲解我们知道CSRF形成的必要条件是

1、用户要在登录状态(即浏览器保存了该用户的cookie)

2、用户要访问攻击者发的恶意url链接才行

三、CSRF漏洞复现(pikachu靶场)

1、CSRF(get)

点击提示发现有vince/alien/kobe/grady/kevin/lucy/lili几个用户,密码均为123456,这里我们用vince(攻击者测试账号)和lili(受害者)来测试。
攻击者测试,登录vince测试账号,修改个人信息抓包发现。数据包可控参数是拼接在url上,是get请求。发现数据包并没有识别用户的标识,比如token。(如图所示)
在这里插入图片描述
在这里插入图片描述
所以攻击者可以模仿url让用户去点击,实施修改个人信息。
受害者测试。
在这里插入图片描述

假设用户点击了攻击者模仿的url,就会把个人息修改为攻击者想要的内容。(如图所示)
在这里插入图片描述

http://192.168.254.128/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=hacker&phonenum=hacker&add=hacker&email=hacker&submit=submit

在这里插入图片描述

2、CSRF(post)

上一关是get请求,也就是可控参数是拼接在url后面的,若没有严格设置识别用户身份的安全措施,攻击者就可以轻易的构造url让用户去访问从而修改其信息。这一关是post请求,无法简单的构造url进行欺骗,得通过数据包构造一个html界面,诱导用户点击。这里用grady(攻击者测试账号)kevin(受害者账号)
攻击者测试,发现是post请求,数据包没有验证用户的身份。
在这里插入图片描述
在这里插入图片描述
这里我们修改好我们要修改的用户信息,使用burpsuite专业版工具CSRF PoC构造html文件诱导用户访问。(如图所示)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
勾选include auto-submit script,单击Regenerate按钮,然后copy html。
这里我把恶意html文件放在了攻击者服务器,当受害者在登录状态访问192.168.254.131/change.html的恶意url就会触发修改个人信息。
在这里插入图片描述
受害者登录
在这里插入图片描述

受害者访问
在这里插入图片描述
点击了此按钮就会修改个人信息
在这里插入图片描述

3、CSRF(token)

这一关抓数据包发现有个token验证是每修改一次个人信息都会有随机的token值,导致攻击者不好伪造用户的数据包。
在这里插入图片描述

四、CSRF漏洞防御措施

1、验证请求的referer值

看看referer是不是自己的域名,而不是其他域名。

2、设置token随机值

不让攻击者伪造出用户正确的token值。

总结

CSRF漏洞如果要寻找此漏洞可以在有表单的地方抓包修改referer值看看能不能成功,找没有token值的地方测试。CSRF漏洞利用也有很大的缺陷,得在用户登录状态下,浏览器有用户的cookie然后访问攻击者恶意url。这些条件缺一不可。有人会把xss与csrf搞混淆,xss漏洞是攻击者把js代码插入web界面诱导用户点击,从而获取用户的cookie,然后进行登录用户篡改信息。xss是能直接知道用户cookie信息的。而csrf是利用用户的cookie帮助攻击者去篡改用户信息,并不能获取用户的cookie值。此文章是小白自己为了巩固csrf攻击而写的,大佬路过请多指教!

文章来源:https://blog.csdn.net/zyh1588/article/details/135555701
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。