pikachu靶场(CSRF篇)
Posted 染小妖
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pikachu靶场(CSRF篇)相关的知识,希望对你有一定的参考价值。
一、官方的戏精引言
概述
CSRF 是 Cross Site Request Forgery 的 简称,中文名为跨域请求伪造
在CSRF的攻击场景中,攻击者会伪造一个请求(一般是一个链接)
然后欺骗目标用户进行点击,用户一旦点击了这个请求,这个攻击也就完成了
所以CSRF攻击也被称为“one click”攻击
CSRF攻击需要条件
① 目标网站没有对修改个人信息修改的请求进行防CSRF处理,导致该请求容易被伪造
因此,判断一个网站有没有CSRF漏洞,其实就是判断对关键信息(密码等)的操作(增删改)是否容易被伪造
② lucy点击伪造的请求链接时有登录状态(已经登陆了目标网站),如果lucy没有登录,那么即便lucy点击了链接也没有作用
从CSRF的利用条件来看,CSRF的利用难度会大一些,所以CSRF对应的安全级别低一些
CSRF和XSS的区别
我们利用XSS可以达到盗取用户Cookie的目的,那么CSRF的区别在哪?
CSRF是借助用户的权限完成攻击,攻击者并没有拿到用户的权限。目标构造修改个人信息的链接,利用lucy在登录状态下点击此链接达到修改信息的目的。
X·SS直接盗取了用户的权限,然后实施破坏。攻击者利用XSS盗取了目标的Cookie,登录lucy的后台,再修改相关信息。
如何确认一个目标站点是否有CSRF漏洞
对目标站点增删改查的地方进行标记,并观察逻辑,判断请求是否可以伪造。
比如修改管理员账号时,不需要验证旧密码
比如修改敏感信息不需要token验证
确认凭证的有效期
虽然退出或关闭了览器,但Cookie仍然有效,或者Session没有及时过期,导致CSRF攻击变得简单
二、CSRF(get)
我们打开目标:
根据提示,我们登录账号:
我们用vince账号为例:
修改住址后,我们抓个包:
得到get请求,在这个get请求里,没有看到token,也就是说很有可能是没有做任何防护的一些措施 ,为了验证是否存在CSRF漏洞,我们构造攻击链接:
http://127.0.0.1/vul/csrf/csrfget/csrf_get_edit.php?sex=vince&phonenum=18626545453&add=0sec&email=232323&submit=submit
三、CSRF(post)
我们打开目标:
我们还是和之前一样,随意先修改一个地方,抓包查看:
这次我们发现,post提交并没有将敏感信息放在url中去提交,而是在最下面的表单中提交,这次的思路是和XSS POST一样伪造一个表单页面,让用户去点击我们这个页面来完成修改信息:
http://127.0.0.1/pikachu/vul/csrf/csrfpost/1.html
四、CSRF(token)
打开CSRF(token)并且登录,我们抓包后发现,url中多了一串token,因为token是随机生成的,如果后台对比token的值来操作的化,基本无法伪造URL了:
Token是如何防止csrf的:
CSRF的主要问题就是敏感操作的链接容易被伪造
解决容易被伪造的方法:
每次请求,都增加一个随机码
防护措施
增加Token验证(常用做法)
对关键操作增加Token参数,token必须随机,每次都不一样
关于安全的会话管理(避免会话被利用)
不要在客户端保存敏感信息(比如身份验证信息)
退出、关闭浏览器时的会话过期机制
设置会话过机制,比如15分钟无操作,则自动登录超时
访问控制安全管理
敏感信息的修改时需要身份进行二次认证,比如修改账号密码,需要判断旧密码
敏感信息的修改使用POST,而不是GET
通过HTTP头部中的REFERER来限制原页面
增加验证码
一般在登录(防暴力破解),也可以用在其他重要信息操作的表单中(需要考虑可用性)
以上是关于pikachu靶场(CSRF篇)的主要内容,如果未能解决你的问题,请参考以下文章