一.什么是CSRF漏洞及利用流程
CSRF(cross site request forgery)跨站(客户端)请求伪造,指攻击者在用户信息未失效的情况下(如cookie等信息),诱导用户点击某些链接,让用户在不知情的情况下,以用户身份像服务器发送请求,执行某些操作
利用用户cookie,冒充用户身份,以用户的身份发送恶意请求
条件:1.用户未退出目标网站 2.用户访问恶意网站 3.在同一浏览器
二.CSRF的分类
GET型CSRF:将恶意代码拼接到url类,诱导用户点击链接,执行操作
POST型CSRF:表单提交,诱导用户点击含恶意代码的表单进行提交,执行操作
三.实践
本地搭建dvwa靶场时记得设置好域名,hosts解析
DVWA-LOW
方法一.对修改界面进行抓包,生成payload,将bp作为危险网站,用户点击后执行修改密码的操作
方法二.含burpsuite的链接容易被识别,可以自行搭建网站,为了让网站更真实,可以让ai基于代码生成红包页面,诱导用户点击
DVWA-Medium
改为中等级,再次使用钓鱼网站无效,对操作进行拦截查看区别
发现代码对referer进行了限制,所以钓鱼网站经拦截后需对referer进行修改
DVWA-High
观察源代码,发现对正常网站进行拦截时多了一个user_token参数,而恶意链接的请求中没有
方法一.bp进行拦截修改,使用组件对user_token进行获取
方法二.和xss打组合拳,利用xss漏洞获取到user_token
DVWA的user_token和用户会话强绑定且具有时效性,修改密码时拦截的token已失效且会话不匹配,xss获取到token实时且绑定受害者会话。
CSRF Token Tracker获取到的user_token值会变,实时同步最新有效的token并匹配对应有效会话