首页
状态
Search
1
VSCode 配置 Roo Code / Cline MCP Server
1,025 阅读
2
zerotier-cli 常用命令
740 阅读
3
Zookeeper 3.8.0 安装配置
386 阅读
4
2023 年电商数据可视化训练
231 阅读
5
Linux centos 7 磁盘扩容步骤
183 阅读
全部文章
大数据
区块链
AI
登录
Search
标签搜索
比赛
大数据
区块链
笔记
区块链安全
漏洞修复
Spark
Spark on Yarn
Hive
HBase
AI
MCP Server
网站合集
区块链开发
fisco bcos
JAVA SDK
IDEA
Hadoop 2.7.7
Hadoop HA
高可用
残月
累计撰写
30
篇文章
累计收到
1
条评论
首页
栏目
全部文章
大数据
区块链
AI
页面
状态
搜索到
30
篇与
残月
的结果
2023-12-08
钓鱼攻击 tx.origin
tx.origin是 Solidity中的一个全局变量,它返回发送交易的帐户的地址。如果授权帐户调用恶意合约,则使用该变量进行授权可能会使合约容易受到攻击。可以调用通过授权检查的易受攻击的合约,因为tx.origin返回交易的原始发送者,在本例中是授权帐户。漏洞代码// SPDX-License-Identifier: MIT pragma solidity ^0.8.13; contract Wallet { address public owner; constructor() payable { owner = msg.sender; } function transfer(address payable _to, uint _amount) public { require(tx.origin == owner, "Not owner"); (bool sent, ) = _to.call{value: _amount}(""); require(sent, "Failed to send Ether"); } }问题分析 合约部署时将部署用户作为当前合约的owner,并定义了transfer方法,此方法需要传入一个转账用户地址 _to和转账数量 _amount。在第一行通过 require 并使用tx.origin和owner判断是否为部署用户,不是将抛出 "Not owner",第12行 向_to 地址 转账 _amount 数量的虚拟币(call 为底层方法),并判断是否转账成功,失败将抛出 "Failed to send Ether"。这题主要问题在于在使用tx.origin作为转账前的检查是不对的,合约本意为检验是否为当前钱包合约的部署用户,但tx.origin会返回最先发送交易的帐户的地址,而不是上一层调用合约的地址。 例如: 第一步 用户-A :部署了 Wallet 合约; 攻击者-B:部署了 钓鱼的恶意合约; 第二步 用户-A :调用了 攻击者-B 恶意合约 第二步 分析 这个时候如果恶意合约调用了 用户-A 部署的 Wallet合约,此时合约中的tx.origin获取的地址为用户-A的地址,并向_to地址转账,并不会触发require的判断,此时攻击者-B只需要将_to 在攻击合约中定义为个人账户地址,此时用户-A的用户余额已被转走。攻击代码contract Attack { address payable public owner; Wallet wallet; constructor(Wallet _wallet) { wallet = Wallet(_wallet); owner = payable(msg.sender); } function attack() public { wallet.transfer(owner, address(wallet).balance); } } 基于以上分析写出攻击合约,攻击合约在部署时传入要攻击的Wallet合约地址,并将个人地址保存在owner中,在 用户-A调用 Attack.attack()方法时,攻击合约将会调用Wallet合约的transfer方法,传入攻击者的地址owner和Wallet合约账户的所剩余额。攻击复现执行步骤隐藏内容,请前往内页查看详情
2023年12月08日
115 阅读
0 评论
0 点赞
2023-12-08
区块链安全漏洞常见案例
区块链安全漏洞常见案例网站集合
2023年12月08日
129 阅读
0 评论
0 点赞
2022-12-30
Hive 2.3.4 安装
Hive 2.3.4 比赛环境搭建
2022年12月30日
92 阅读
0 评论
0 点赞
2022-12-28
Hadoop 2.7.7 HA 高可用搭建
Hadoop 2.7.7 HA 高可用比赛环境搭建
2022年12月28日
140 阅读
0 评论
0 点赞
2022-12-02
Spark on Yarn 2.1.1 安装配置
Spark on Yarn 2.1.1 比赛环境搭建
2022年12月02日
125 阅读
0 评论
0 点赞
1
...
5
6