"/>
·设为首页收藏本站📧邮箱修改🎁免费下载专区💎积分✅卡密📒收藏夹👽聊天室
DZ插件网 门户 网站安全 查看内容

CreatFuture攻击事件

2022-4-13 19:10| 发布者: admin| 查看: 311| 评论: 0|原作者: 余生安全团队

摘要: 与余生安全团队无关!如有侵权,请联系后台进行删除.转载请注明出处,感谢!CreatFuture攻击事件1.前言北京时间2022年4月...

声明:该文章仅供区块链安全学习和技术分享,请勿将该文章和文章中提到的技术用于违法活动上,切勿参与区块链相关违法项目,如产生任何后果皆由读者本人承担,与余生安全团队无关!

如有侵权,请联系后台进行删除。转载请注明出处,感谢

Creat Future 攻击事件

北京时间 2022 年 4 月 11 日, CF 代币合约被发现存在未验证发送者权限的漏洞,它允许任何人转移他人的 CF 余额。到目前为止,损失约为 190 万美元,而 pancakeswap 上 CF/USDT 交易对已经受到影响。

攻击事件如下图所示:

2.1 基础信息

合约所有者地址:0xcd87248c74915e85f80293f10dcf300a73bc6581

攻击者地址(其中一个):0xee0221d76504aec40f63ad7e36855eebf5ea5edd

交易 hash(其中一个):0xc7647406542f8f2473a06fea142d223022370aa5722c044c2b7ea030b8965dd0

漏洞合约:0x8B7218CF6Ac641382D7C723dE8aA173e98a80196

2.2 流程

  1. 管理员将 useWhiteListSwith 设置为 false
  1. 直接调用 _transfer() 函数转走任意账户代币。

2.3 细节

首先看到合约 CFTokenSinglePool_merge.sol_transfer() 函数,其函数可见性为 public,而 _transfer() 函数本来应该是直接转账 transfer() 函数和授权转账 transferFrom() 函数的内部调用实现,因此这里的 _transfer() 函数可以被任何人直接调用,而 transferFrom() 函数的检查授权额度功能也失效了。

在区块高度 16841993 时合约所有者将 useWhiteListSwith 变量设置为了 false

合约 CFTokenSinglePool_merge.sol 第 570 行的 if 判断中,需要检查 useWhiteListSwith 变量的值,如果其为 false 则不需要进行权限判断,也就是不会去校验 msg.senderfromto 地址是否在白名单内,这样就绕过了权限检查。

由于任何人都可以调用 _transfer() 函数加上没有了白名单的权限检测判断,导致了任何人都可以调用该函数转走其他地址的代币。

2.4 后续处理

在该次攻击事件出现后合约所有者将 useWhiteListSwith 变量又设置为了 true

该次攻击事件的主要原因是由函数本身可见性设置错误,且合约所有者将 useWhiteListSwith 设置为 false 关闭了白名单的检测判断,这两者同时导致了此次问题的出现。

对于智能合约函数,我们一定要注意其可见性的正确设置,最好保证最小权限。

关注我们,微信公众号:余生安全团队。



上一篇:中国信通院联合腾讯云数据库邀您参加《开源数据库发展研究报告》调研问卷
下一篇:5种for循环一次彻底搞懂

鲜花

握手

雷人

路过

鸡蛋

评论

您需要登录后才可以发表言论 登录立即注册
创宇盾启航版免费网站防御网站加速服务
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:3.144.46.90,GMT+8, 2024-11-23 13:06 , Processed in 0.259810 second(s), 52 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2024 Discuz! Team.

关灯
扫一扫添加微信客服
QQ客服返回顶部
返回顶部