CSRF跨站请求伪造&Referer同源&Token校验&复用删除置空&联动上传或XSS
补充:
XSS漏洞与CSRF区分
主要区别
目标:XSS攻击用户,CSRF攻击应用。
执行位置:XSS在用户浏览器执行,CSRF在用户不知情时执行请求。
防御措施:XSS防御侧重于输入过滤和输出编码,CSRF防御则依赖Token和请求验证。
总结
XSS通过注入恶意脚本攻击用户,CSRF则通过伪造请求攻击应用。两者都需要不同的防御策略来应对。
CSRF 功能点:
删除帐户
更改电子邮件
如果不需要旧密码,请更改密码
如果您的目标支持角色,请添加新管理员
更改正常信息,名字,姓氏等......
类似复选框的接收通知
更改个人资料图片/删除它
CSRF 绕过:
删除令牌并发送带有空白参数的请求
删除token参数
将请求从 POST 更改为 GET
更改正文编码
将 token 替换为随机值
删除裁判或在 CSRf 文件中使用此行|`
<meta name="referrer" content="no-referrer">
使用另一个用户令牌
更改令牌中的一个字符,内容长度绕过
#案例-CSRF利用-无防护
检测:黑盒手工利用测试,白盒看代码检验(有无token,来源检验等)
生成:BurpSuite->Engagement tools->Generate CSRF Poc
利用:将文件防止自己的站点下,诱使受害者访问(或配合XSS触发访问)
#案例-CSRF利用-同源策略防护
绕过1:规则匹配绕过问题(代码逻辑不严谨)
功能逻辑:<meta name="referrer" content="no-referrer">
匹配机制:http://xx.xx.xx.xx/http://xx.xx.xx.xx
绕过2:配合文件上传绕过(严谨使用同源绕过)
绕过3:配合存储XSS绕过(严谨使用同源绕过)
#案例-CSRF利用-Token校验防护
绕过1:将Token参数值复用(代码逻辑不严谨)
绕过2:将Token参数删除(代码逻辑不严谨)
绕过3:将Token参数值置空(代码逻辑不严谨)
#复盘
SRC-CVE的CSRF报告