据慢雾区消息,币安智能链(BSC)DeFi 项目 AutoShark Finance 被黑,导致代币价格闪崩。慢雾安全团队在第一时间跟进分析,并将结果以简讯的形式分享给大家,供大家参考。 由于 AutoShark 策略池的机制,攻击者需要事先存入一定数量的 LP 代币到策略池中,为后续攻击做准备,所以整个攻击其实分成了 2 步,这里主要分析的是第 2 笔的攻击交易。 攻击步骤如下: 1. 攻击者从 Pancake 的 WBNB/BUSD 交易对中借出大量 WBNB; 2. 将第 1 步借出的全部 WBNB 中的一半通过 Panther 的 SHARK/WBNB 交易对兑换出大量的 SHARK,同时池中 WBNB 的数量增多; 3. 将第 1 步和第 2 步的 WBNB 和 SHARK 打入到 SharkMinter 中,为后续攻击做准备; 4. 调用 AutoShark 项目中的 WBNB/SHARK 策略池中的 getReward 函数,该函数会根据用户获利的资金从中抽出一部分手续费,作为贡献值给用户奖励 SHARK 代币,这部分操作在 SharkMinter 合约中进行操作; 5. SharkMinter 合约在收到用户收益的 LP 手续费之后,会将 LP 重新拆成对应的 WBNB 和 SHARK,重新加入到 Panther 的 WBNB/SHARK 交易池中; 6. 由于第 3 步攻击者已经事先将对应的代币打入到 SharkMinter 合约中,SharkMinter 合约在移除流动性后再添加流动性的时候,使用的是 SharkMinter 合约本身的 WBNB 和 SHARK 余额进行添加,这部分余额包含攻击者在第 3 步打入 SharkMinter 的余额,导致最后合约获取的添加流动性的余额是错误的,也就是说 SharkMinter 合约误以为攻击者打入了巨量的手续费到合约中; 7. SharkMinter 合约在获取到手续费的数量后,会通过 tvlInWBNB 函数计算这部分手续费的价值,然后根据手续费的价值铸币 SHARK 代币给用户。但是在计算 LP 价值的时候,使用的是 Panther WBNB/SHARK 池的 WBNB 实时数量除以 LP 总量来计算 LP 能兑换多少 WBNB。但是由于在第 2 步中,Panther 池中 WBNB 的数量已经非常多,导致计算出来的 LP 的价值非常高; 8. 在 LP 价值错误和手续费获取数量错误的情况下,SharkMinter 合约最后在计算攻击者的贡献的时候计算出了一个非常大的值,导致 SharkMinter 合约给攻击者铸出了大量的 SHARK 代币; 9. 攻击者后续通过卖出 SHARK 代币来换出 WBNB,偿还闪电贷。然后获利离开。 参考交易: https://bscscan.com/tx/0xfbe65ad3eed6b28d59bf6043debf1166d3420d214020ef54f12d2e0583a66f13 —- 编译者/作者:慢雾安全团队 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
慢雾:AutoSharkFinance被黑分析
2021-05-25 慢雾安全团队 来源:区块链网络
LOADING...
相关阅读:
- Chainlink数据馈送现已与OTONOMI完全集成2021-05-25
- 全面带您了解BnbPlant应用2021-05-25
- 像比特币,以太坊,XRP这样的加密货币将恢复…但是这里是条款和条件2021-05-25
- AutoShark 遭攻击后将发行新代币 JAWS 补偿受损用户,并计划 6 月 1 日恢复2021-05-25
- VEGA将于6月2日在CoinList上进行公募2021-05-25