CSRF-跨站请求伪造
旧版本设备被测试出来的csrf漏洞,跨站请求伪造,一直没明白什么意思,趁着版本还没有修复,正好可以将这个问题复现一下,清楚下整个过程和防护的手段,但是通过什么样的方式去达到实际攻击的效果还是没能想通,达到这样的攻击的前提是获取到有效的cookie或者是请求的发送是在用户的同一个浏览器,那么只要页面的关闭和账号的退出未导致cookie失效,那么也能攻击
实际上是利用被攻击人有效的cookie,进行请求的伪造提交数据,那么得不到用户的cookie可以想办法他使用的浏览器发送请求,那么很可能就自带了有效的cookie,为了避免这种情况
验证请求头中的Origin,Origin中的字段确认来源域名就可以,来源不对那么就是一个不合法地方发送的请求,所以服务器拒绝
Referer存在,也可以用来确认HTTP请求的来源地址。来源不对也是不合法,当然这种http请求的headers是很容易随便伪造的,基本没用
比较有效的方式,添加csrf_token值,每次页面的刷新出一个新的token,每次数据提交或者重要操作时,必须使用这个值作为参数提交,或者是在http请求头中提交,由于token每次访问后值会变化,所以伪造请求时不容易伪造出这个值,只有正常访问时才能得到服务器响应的正确token
1.服务器响应token给前端
2.前端使用这个token发请求
3.服务器收到token校验合法性和有效性
Origin和Referer的校验
先抓取一个添加规则的请求(旧版本存在token但是没校验)
右键生成一个csrf-poc,使用浏览器打开
由于规则名会重复导致加不进去所以修改一个名称,点击浏览器测试,粘贴到当前抓包的浏览器(一定要同一个浏览器,因为登陆过有cookie信息)ÿ