创宇区块链|Creat future 惨遭随意转移币,幕后黑手究竟是谁?

2023-12-14 21:32

本文主要是介绍创宇区块链|Creat future 惨遭随意转移币,幕后黑手究竟是谁?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

CF 代币合约被发现存在漏洞,它允许任何人转移他人的 CF 余额。到目前为止,损失约为 190 万美元,而 pancakeswap上CF/USDT 交易对已经受到影响。

知道创宇区块链安全实验室 第一时间对本次事件深入跟踪并进行分析。

事件详情

受影响的合约地址 https://bscscan.com/address/0x8B7218CF6Ac641382D7C723dE8aA173e98a80196#code ,问题函数出在第563行:

function _transfer(address from, address to,uint256 amount) public {require(from != address(0), "ERC20: transfer from the zero address");require(amount > 0, "Transfer amount must be greater than zero");if(useWhiteListSwith){require(msgSenderWhiteList[msg.sender] && fromWhiteList[from]  && toWhiteList[to], "Transfer not allowed");}uint256 fee = 0;...uint acceptAmount = amount - fee;_tOwned[from] = _tOwned[from].sub(amount);_tOwned[to] = _tOwned[to].add(acceptAmount);emit Transfer(from, to, acceptAmount);
}

_transfer() 函数是直接转移代币 transfer() 和 授权转移代币 transferFrom() 的具体实现,但该函数的修饰器是 public,因此任何人都可以不通过 transfer() 或 transferFrom() 函数直接调用它。

而当变量 useWhiteListSwith 设置为 False 时,该函数不会检查调用地址和传输地址是否合规,直接将代币转移到指定地址。

在区块高度为 16841993 时,管理员就把 useWhiteListSwith 设置为 False :
_transfer() 函数是直接转移代币 transfer() 和 授权转移代币 transferFrom() 的具体实现,但该函数的修饰器是 public,因此任何人都可以不通过 transfer() 或 transferFrom() 函数直接调用它。

而当变量 useWhiteListSwith 设置为 False 时,该函数不会检查调用地址和传输地址是否合规,直接将代币转移到指定地址。

在区块高度为 16841993 时,管理员就把 useWhiteListSwith 设置为 False :
在这里插入图片描述
此时开始有攻击者利用 _transfer() 函数直接转移代币:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结

经过完整分析,知道创宇区块链安全实验室明确了该次事件的源头由函数本身权限出现问题,而管理员同时操作不慎关闭了白名单检测,两方结合导致攻击者可以实现转移任意钱包代币的操作。

在核心函数上我们一直建议使用最小权限原则,像这次的 _transfer() 函数本不该用public修饰器,使得 transferFrom() 函数检查授权额度的功能形同虚设;而合约管理者也不该随意修改关键变量值,导致攻击者可以绕过白名单检查的最后一道防线。

合约不仅仅是代码层面的安全,不光需要白盒代码审计,更需要合约管理员共同合理维护。

这篇关于创宇区块链|Creat future 惨遭随意转移币,幕后黑手究竟是谁?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/493944

相关文章

Window Server创建2台服务器的故障转移群集的图文教程

《WindowServer创建2台服务器的故障转移群集的图文教程》本文主要介绍了在WindowsServer系统上创建一个包含两台成员服务器的故障转移群集,文中通过图文示例介绍的非常详细,对大家的... 目录一、 准备条件二、在ServerB安装故障转移群集三、在ServerC安装故障转移群集,操作与Ser

windos server2022的配置故障转移服务的图文教程

《windosserver2022的配置故障转移服务的图文教程》本文主要介绍了windosserver2022的配置故障转移服务的图文教程,以确保服务和应用程序的连续性和可用性,文中通过图文介绍的非... 目录准备环境:步骤故障转移群集是 Windows Server 2022 中提供的一种功能,用于在多个

SSID究竟是什么? WiFi网络名称及工作方式解析

《SSID究竟是什么?WiFi网络名称及工作方式解析》SID可以看作是无线网络的名称,类似于有线网络中的网络名称或者路由器的名称,在无线网络中,设备通过SSID来识别和连接到特定的无线网络... 当提到 Wi-Fi 网络时,就避不开「SSID」这个术语。简单来说,SSID 就是 Wi-Fi 网络的名称。比如

Nacos客户端本地缓存和故障转移方式

《Nacos客户端本地缓存和故障转移方式》Nacos客户端在从Server获得服务时,若出现故障,会通过ServiceInfoHolder和FailoverReactor进行故障转移,ServiceI... 目录1. ServiceInfoHolder本地缓存目录2. FailoverReactorinit

【区块链 + 人才服务】可信教育区块链治理系统 | FISCO BCOS应用案例

伴随着区块链技术的不断完善,其在教育信息化中的应用也在持续发展。利用区块链数据共识、不可篡改的特性, 将与教育相关的数据要素在区块链上进行存证确权,在确保数据可信的前提下,促进教育的公平、透明、开放,为教育教学质量提升赋能,实现教育数据的安全共享、高等教育体系的智慧治理。 可信教育区块链治理系统的顶层治理架构由教育部、高校、企业、学生等多方角色共同参与建设、维护,支撑教育资源共享、教学质量评估、

【区块链 + 人才服务】区块链集成开发平台 | FISCO BCOS应用案例

随着区块链技术的快速发展,越来越多的企业开始将其应用于实际业务中。然而,区块链技术的专业性使得其集成开发成为一项挑战。针对此,广东中创智慧科技有限公司基于国产开源联盟链 FISCO BCOS 推出了区块链集成开发平台。该平台基于区块链技术,提供一套全面的区块链开发工具和开发环境,支持开发者快速开发和部署区块链应用。此外,该平台还可以提供一套全面的区块链开发教程和文档,帮助开发者快速上手区块链开发。

BT天堂网站挂马事件后续:“大灰狼”远控木马分析及幕后真凶调查

9月初安全团队披露bt天堂网站挂马事件,该网站被利用IE神洞CVE-2014-6332挂马,如果用户没有打补丁或开启安全软件防护,电脑会自动下载执行大灰狼远控木马程序。 鉴于bt天堂电影下载网站访问量巨大,此次挂马事件受害者甚众,安全团队专门针对该木马进行严密监控,并对其幕后真凶进行了深入调查。 一、“大灰狼”的伪装 以下是10月30日一天内大灰狼远控的木马样本截图,可以看到该木马变种数量不

数据库遇上知识图谱、区块链、深度学习

参考资料: https://zhuanlan.zhihu.com/p/33381916 https://www.zuozuovera.com/archives/1062/ 东南大学D&Intel Lab相关ppt 数据库的核心概念——表示、存取、查询 有了数据库是干什么,大概实现的逻辑,特点,才能引申出对当今这些新技术的对比、适应和发展。 目的:研究数据表示、存取数据模型:表示数据的模型,通

HTML5如何成为改变移动互联网幕后的推手

在未来的某一天,我们打开手机,不再需要访问手机应用商店,不论是 Apple的还是Google的,我们只需要点击手机主菜单页面上的一个链接,手机就会立即在它的浏览器上启动一个 “应用程序”;再也不需要flash插件,就能欣赏华丽丽视频画面。   AD:2013云计算架构师峰会课程资料下载   2012年,说HTML5集千宠万爱于一身也毫不夸张,IE、Chrome、Firefox和Opera等

算法备案究竟难在哪里?

算法备案究竟难在哪里? 在当今数字化社会中,算法备案已成为人工智能技术应用中的一个关键环节。然而,对于初学者和企业来说,这一过程充满了挑战和复杂性。本文将深入探讨算法备案的难度和应对策略。 算法备案的挑战 首先,算法备案要求申请者具备深厚的专业知识。要成功通过备案,不仅需要了解AI技术的细节,还必须熟悉相关的法律法规。例如,《互联网信息服务算法推荐管理规定》和《互联网信息服务深度合成管