Text.finance智能合约安全漏洞分析

2020-11-13 13:40 栏目:经验之谈 来源:网络整理 查看()

北京时间11月12日,CertiK安全研究小组发现,DeFi项目的text.finance智能合同的代码部分存在安全漏洞。

分析之前先测一下视力,看看下图的文字是怎么说的。

Text.finance智能合约安全漏洞分析

如果看不清楚,点击图片,将屏幕亮度调到最高。

有的时候,一些你不想看到的因素,被排版或者这样刻意隐藏。

接下来说一下这个项目的两个漏洞。阅读文章时,您不妨注意[函数函数]在图片中的位置。

第一个项目符号:项目所有者可以通过第一个漏洞将指定数量的令牌转移到任何地址。

第二个子弹:项目业主可以通过第二个漏洞强行将任何投资人的流动性池中的资产转移到项目业主的地址。

弱点分析

textMiner.sol

部署地址:

https://ethercan . io/address/0x 9858728 de 38 c 914 C2 ea 32484 a 113 b 6628d 984 a 82 #代码

漏洞1

项目负责人在textMiner.sol智能合同第1000行实现了withUpdates()函数。该函数可以为devaddr地址转换任意数量的令牌。通过查看图2中devaddr和项目所有者的地址值,我们可以发现它们是相同的,因此项目所有者可以通过此漏洞为devaddr地址强制使用任意数量的令牌。

同时,当前的devaddr地址所有者可以通过图3中的dev()函数将devaddr地址值更改为另一个地址,因此最终的项目所有者可以更改更改devaddr地址值的方法,并将任意数量的令牌转换为任意地址。

虽然项目负责人在图1中将withUpdates()函数设置为不允许智能契约的外部调用,但是他有意在图4的第919行实现了add()函数,然后通过第921行代码调用withUpdates()函数,从而实现了将100000000000000000000000000000000000000000000000000000000000000000000000000

Text.finance智能合约安全漏洞分析

Text.finance智能合约安全漏洞分析

脆弱性2

Text.finance智能合约安全漏洞分析

通过调用图5中的emergencyWithdraw()函数,项目所有者可以取出某个特定地址的投资者流动性池中的所有流动性资产,并将其转移到项目所有者的地址。

紧急撤回()函数基于正确的紧急撤回()函数。所以,即使审稿人没有恶意揣测,也很难说项目方没有恶意改写,加了漏洞。

从下面图6的对比中可以发现,Sushiswap允许投资者通过调用emergencyWithdraw()函数紧急取出自己的流动性资产,而在text.finance中,只允许项目负责人调用该函数,同时允许项目负责人取出属于任何投资者的流动性资产。

Text.finance智能合约安全漏洞分析

安全建议

CertiK安全研究团队认为,投资者在投资DeFi项目时,不仅要了解智能合同的常用代码,还要仔细考察具体代码的执行逻辑。否则很容易陷入类似于这个项目的恶意漏洞陷阱。

对于非技术背景的投资者,需要了解项目是否经过严格的技术审核。从Text.finance项目的恶意漏洞可以看出,盲目投资一个没有经过严格审计的项目,可能会造成很大的风险,造成不可估量的损失。

微信二维码
售前客服二维码

文章均源于网络收集编辑侵删

提示:币友交流QQ/WX群请联系客服加入!

郑重申明:资讯文章为网络收集整理,官方公告以外的资讯内容与本站无关!
虚拟币开发,虚拟币交易平台开发,山寨币交易平台开发 Keywords: 虚拟币开发 虚拟币交易平台开发 山寨币交易平台开发