假钱换真钱,揭秘 Pickle Finace 被黑过程_OJA:ROM

据慢雾区情报,2020年11月22日,以太坊DeFi项目PickleFinance遭受攻击,损失约2000万DAI。慢雾安全团队第一时间跟进相关事件并进行分析,以下为分析简略过程

1、项目的Controller合约中的swapExactJarForJar函数允许传入两个任意的jar合约地址进行代币的兑换,其中的_fromJar,_toJar,_fromJarAmount,_toJarMinAmount都是用户可以控制的变量,攻击者利用这个特性,将_fromJar和_toJar都填上自己的地址,_fromJarAmount是攻击者设定的要抽取合约的DAI的数量,约2000万DAI

Discord聊天机器人Glenen完成490万美元融资,Coinshares等参投:9月5日消息,Discord聊天机器人完成490万美元超额认购融资,Slow Ventures、6th Man Ventures、South Park Commons、Spartan Group和Coinshares等参投,天使投资人包括Solana联合创始人Anatoly Yakovenko、Chainlink 前首席运营官 Mike Derezin、去中心化投资协议Syndicate联合创始人Will Papper与ISM Angels。

新资金将用于建设、推动销售与市场营销。Glenen旨在向Web3用户提供Discord聊天机器人服务,但目前以非Web3用户为主。[2023/9/5 13:19:23]

2、使用swapExactJarForJar函数进行兑换过程中,合约会通过传入的_fromJar合约和_toJar合约的token()函数获取对应的token是什么,用于指定兑换的资产。而由于_fromJar合约和_toJar合约都是攻击者传入的,导致使用token()函数获取的值也是可控的,这里从_fromJar合约和_toJar合约获取到的token是DAI,。

安全团队:Gummys项目Discord服务器遭到攻击:金色财经消息,据CertiK监测,Gummys项目Discord服务器遭到攻击。请社区用户在服务器修复之前不要点击任何链接或声明消息。[2022/12/29 22:14:21]

3.此时发生兑换,Controller合约使用transferFrom函数从_fromJar合约转入一定量的的ptoken,但是由于fromJar合约是攻击者控制的地址,所以这里转入的ptoken是攻击者的假币。同时,因为合约从_fromJar合约中获取的token是DAI,然后合约会判断合约里的资金是否足够用于兑换,如果不够,会从策略池中赎回一定量的代币然后转到Controller合约中。在本次的攻击中,合约中的DAI不足以用于兑换,此时合约会从策略池中提出不足的份额,凑够攻击者设定的2000万DAI

动态 | 赵长鹏发推称与未成年人讨论BNB Peter McCormack提示其注意币安服务条款:赵长鹏发推称:“今天和一个14岁的孩子进行了一次有趣的互动。他拒绝以美元为单位讨论数字,而是坚持使用BNB。下一代将是加密的。” 赵长鹏的这番言论引发了热议,一些网友在该推文的下方质疑这一事件的真实性。而英国加密货币节目主持人Peter McCormack则回复表示:“我希望你让他看一下《币安服务条款》。”注:《币安服务条款》中明确提到“用户应声明并保证已年满18岁或根据适用法律签订具有约束力的合同的法定年龄”。[2019/8/18]

4.兑换继续,Controller合约在从策略池里提出DAI凑够攻击者设定的2000万DAI后,会调用_fromJar的withdraw函数,将攻击者在第三步转入的假ptokenburn掉,然后合约判断当前合约中_toJar合约指定的token的余额是多少,由于_toJar合约指定的token是DAI,Controller合约会判断合约中剩余DAI的数量,此时由于第三步Controller合约已凑齐2000万DAI,所以DAI的余额是2000万。这时Controller合约调用_toJar合约的deposit函数将2000万DAI转入攻击者控制的_toJar合约中。到此,攻击者完成获利

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

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金智博客

[0:15ms0-3:483ms