CSRF漏洞
概述
CSRF为cross site request forgery
跨站请求伪造也被称为 one-click attack 或者
session riding,通常缩写为 CSRF , 是一种挟制用户在当前已登录的 Web 应用程序上执行非本意的操作
的攻击方法
简单地说,是攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己曾经认证过的网站并执行一些操作(如发邮件,发消息,甚至财产操作如转账和购买商品)。由于浏览器曾经认证过,所以被访问的网站会认为是真正的用户操作而去执行。这利用了 web 中用户身份验证的一个漏洞:简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的
CSRF原理
1、用户打开浏览器,访问登陆受信任的 A 网站
2、在用户信息通过验证后,服务器会返回一个 cookie 给浏览器,用户登陆网站 A 成功,可以正常发送请求到网站 A
3、用户未退出网站 A,在同一浏览器中,打开一个危险网站 B
4、网站 B 收到用户请求后,返回一些恶意代码,并发出请求要求访问网站 A
5、浏览器收到这些恶意代码以后,在用户不知情的情况下,利用 cookie 信息,向网站 A 发送恶意请求,网站A 会根据 cookie 信息以用户的权限去处理该请求,导致来自网站 B 的恶意代码被执行

CSRF漏洞攻击
打开 pichachu 靶场来到 csrf(get)漏洞,输入用户登录后发现修改密码处没有任何验证,存在 csrf 攻击,通过 csrf 漏洞攻击修改资料。
账号和密码 vinc 123456


使用 burpsuite 构造攻击 exp 输入信息后 选择 generate csrf-poc


复制下来 写入到 poc.html
受害者受到的攻击途径
1.受害者登录网站后,没有退出的情况下,访问网站 b 触发
2.在存在漏洞的网站,挖掘 xss 漏洞,自动调用这 poc.html
受害者访问 poc.html 点击 poc.html

CSRF防御方案
1.增加 Token 验证(常用做法)
对关键操作增加 Token 参数,token 必须随机,每次都不一样
2 关于安全的会话管理(避免会话被利用)
不要在客户端保存敏感信息(比如身份验证信息)
退出、关闭浏览器时的会话过期机制
设置会话过机制,比如 15 分钟无操作,则自动登录超时
3 访问控制安全管理
敏感信息的修改时需要身份进行二次认证,比如修改账号密码,需要判断旧 密码
敏感信息的修改使用 POST,而不是 GET
通过 HTTP 头部中的 REFERER 来限制原页面
4 增加验证码
一般在登录(防暴力破解),也可以用在其他重要信息操作的表单中(需要考虑可用性)
更新: 2025-05-05 10:07:25
原文: https://www.yuque.com/yuhui.net/network/azvbope39kl0g9wz

评论(0)
暂无评论