CSRF跨站请求伪造
条件
1、需要请求伪造数据包
2、无过滤防护,有过滤防护能绕过
3、受害者需要触发
案例一(无防护)
burp抓到添加用户的包

使用burp自带的转换为csrf的poc

勾选上include-auto-submit script,删除点击标签,使其不用点击就能访问

这个数据包构造好了之后,点击这个html,如果该用户刚好登录了这个cms的后台并且有权限增加用户那么就会成功创建一个admin用户。

防护措施:检测(Referer)来源
案例二
抓取zblog新增数据包

转化为csrf poc

将html上传到外网服务器访问,被过滤

根据网页目录找到cmd.php文件,搜索MemberMng

按住ctrl点击CheckIsRefererValid

按住ctrl点击CheckHTTPRefererValid,HTTP_REFERER函数是获取referer头的,如果referer为空的话就执行成功

将referer头改成网站地址绕过

或者在referrer头后门加上同源地址

成功添加,但是这个并没有什么用,因为被攻击者不会主动去修改referfer头

在生成的poc头部加上这个使其数据包自动将referer头去空

通过burp抓包可以看到已经没有了referer头了

放包后成功添加,因为代码逻辑就是为空就是True

绕过
referer验证
规则匹配绕过问题(代码逻辑不严谨)
添加<meta name="referrer" content="no-referrer">到头部文件
referer头加上同源地址:http://xx.xx.xx.xx/http://xx.xx.xx.xx
配合文件上传绕过(严谨使用同源绕过)
配合存储XSS绕过(严谨使用同源绕过)
token验证
Token参数值复用(代码逻辑不严谨)
Token参数删除(代码逻辑不严谨)
Token参数值置空(代码逻辑不严谨)