CSRF 跨站请求伪造
1.原因
Referer等判断不严格
没有严格区分GET、POST请求,$_REQUEST既支持POST也支持GET
没有同源策略(WebView可能没有):协议、域名、端口要相同,否则阻止跨域获取Cookie等操作
2.利用方式
抓包,右键Engagement tools->Genearte CSRF PoC
自动点击一次:
<input id="id"/>
<script>
setTimeout(document.getElementById("id").click());
// 5秒后自动点击:setTimeout("document.getElementById('id').click()",5000);
</script>
3.绕过
Token
通过XSS来获取
目标:
<input type="hidden" name="token" value="<?php echo $token;?>"/>
获取:
document.querySelector('input[name="token"]').value