当前位置:首页区块链慢雾:假钱换真钱

慢雾:假钱换真钱

攻击者通过调用 Controller 合约中的 swapExactJarForJar 函数时,伪造 _fromJar 和 _toJar 的合约地址,通过转入假币而换取合约中的真 DAI,完成了一次攻击的过程。

根据慢雾区的信息,2020年11月22日,以太坊 DeFi项目泡菜金融遭到攻击,损失约2000万Dai。慢雾安全小组立即对相关事件进行跟踪分析。下面是一个简单的分析过程

1项目控制器合约中的swapexactjarforjar函数允许传入两个任意的jar合约地址进行代币交换fromJar、toJar、fromJarAmount、Tojarminamount是一个可以由用户控制的变量,可以由用户从jar和_uTojar填充它们的地址_uFromjarAmount是攻击者提取合同,约2000万戴

2在使用swapexactjarforjar函数进行交换的过程中,通过_fromjar contract进行转换,Tokar contract的token()函数得到相应的token,用于指定要交换的资产。而且由于攻击者传入了_FromJar合约和_UFromJar合约,所以使用token()函数获得的值也可以控制_FromJar合约,而tojar合约获得的token是Dai,。

3在这种情况下,控制器契约使用transferfrom函数,fromjar契约传输一定数量的ptoken,但由于fromjar契约是攻击者控制的地址,因此这里传输的ptoken就是攻击者的假币。同时,由于合同中的金额不足,将通过转移来判断合同金额是否足以赎回合同。在这次进攻中,傣族在合同中是不够交换的。此时,合同将建议从策略池中获得的份额不足,以弥补攻击者设置的2000万Dai;

4交流还在继续。从策略池中提出Dai后,控制器契约将调用,以达到攻击者设置的2000万Dai,fromjar的withraw函数将丢弃攻击者在第三步输入的假ptoken burn,然后合约判断当前合约,tojar合约中指定的token余额是多少,tojar合约中指定的token是Dai。控制者合同将判断合同中剩余Dai的数量。此时,由于控制人合同第三步累计2000万Dai,因此Dai余额为2000万。此时,控制器契约调用_jar契约的deposit函数将2000万Dai传输给tojar契约中的攻击者控制的。此时,攻击者完成获利

结论:在本次攻击中,攻击者通过调用控制器合同中的swapexactjarforjar函数和_Tojar的合同地址伪造,通过转移假币换取合同中的真实Dai,完成了攻击过程。

温馨提示:

文章标题:慢雾:假钱换真钱

文章链接:https://www.btchangqing.cn/147991.html

更新时间:2020年11月26日

本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。

区块链行情

比特币/比特币多头反弹,上攻以太,抛售大幅回升

2020-11-26 5:55:36

区块链行情

比特币是最大的卖空者吗?

2020-11-26 6:16:27

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索