CSRF漏洞原理详解及防御⽅法
跨站请求伪造:攻击者可以劫持其他⽤户进⾏的⼀些请求,利⽤⽤户⾝份进⾏恶意操作。
例如:请求是⼀个删除ID为1的账号,但是只有管理员才可以操作,如果攻击者把这个页⾯嵌套到其他⽹站中<img src=
“x/del.php?id=1”> 再把这个页⾯发送给管理员,只要管理员打开这个页⾯,同时浏览器也会利⽤当前登陆的这个管理账号权限发出:这个请求,从⽽劫持此请求,利⽤管理员账户执⾏了⼀些操作。
危害:添加管理员账号、修改⽹络配置、直接写⼊webshell等
1、挖掘经验
CSRF主要⽤于越权操作,因此多发⽣在有权限控制的地⽅。
⿊盒挖掘:先搭建好环境,打开⼏个⾮静态页⾯,抓包看有没有token,如果没有,再直接请求这个页⾯,不带referer,如果返回数据还是⼀样的,那说明很有可能存在CSRF漏洞,
⽩盒挖掘:读取代码的核⼼⽂件,查看⾥边有没有验证token和referer相关的代码。或者直接搜索token这个关键字,再去看⼀下⽐较关⼼的功能点的代码有没有验证。
spring framework rce漏洞复现
2、漏洞防范
主流防范有两种:增加token/referer验证避免img标签请求的⽔坑攻击和增加验证码(影响⽤户体验)
(1)、利⽤token
Token实在页⾯或者cookie中插⼊⼀个不可预测的字符串,服务器验证token是否是上次留下的即可判断是不是可信请求;
Token实现代码:
通过MD5当前时间加上(1,1000)的随机数⽣成token,然后检查是否有token;
抓包,发现没有token,返回结果faild;
⽣成token值,发送返回结果success;
(2)、验证码实现
验证码没token那么实⽤,⽤户体验较差,所以这⼀种⽅式只能⽤在敏感操作的页⾯,利⽤登录页⾯等。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。