JulSwap闪电贷攻击分析及事件后续

本文约560字,阅读全文需要约1分钟
5 月 28 日, BSC 链上 DEX 协议、自动化的流动性协议的 JulSwap 遭到闪电贷攻击。

事件起因

2021 年 5 月 28 日,有消息称 BSC 链上 DEX 协议、自动化的流动性协议的 JulSwap 遭到闪电贷攻击,知道创宇区块链安全实验室 第一时间展开分析并将攻击结果简讯分享给大家,供参考研究。

JulSwap闪电贷攻击分析及事件后续

事件分析

攻击者交易:

https://bscscan.com/tx/0x1751268e620767ff117c5c280e9214389b7c1961c42e77fc704fd88e22f4f77a
攻击合约地址:
0x7c591aab9429af81287951872595a17d5837ce03 

JulSwap闪电贷攻击分析及事件后续

 1. 通过交易记录可以看出攻击者通过闪电贷借到70000个 JULB 代币,然后调用 JULB-WBNB 的交易对进行兑换得到1400个 BNB,这时攻击合约中就有了1400个 WBNB。

2. 随后攻击合约调用JulProtocolV2合约(0x41a2F9AB325577f92e8653853c12823b35fb35c4)的 addBNB 函数进行抵押挖矿。该函数的功能就是通过转入 WBNB,合约会计算出相应需要多少 JULB 代币进行添加流动性挖矿,随后会记录转入的 WBNB 的数量用于抵押挖矿,函数代码如下所示。

JulSwap闪电贷攻击分析及事件后续

3.由于闪电贷兑换了 WBNB,所以 JulProtocolV2 合约错误的计算出了14.4w个 JULB 代币能与515个 WBNB 去交易对中添加流动性,并把 lp 代币转入了 JulProtocolV2 合约。此时攻击合约还剩下885个 WBNB。

4.攻击者再用剩下的 WBNB 兑换为 JULB,由于 pair 中添加了大量的 JULB 代币的流动性,所以在兑换时只需要363个 WBNB 就可以兑换出7w个 JULB 代币用于还贷,合约还剩下885-363=522个 WBNB,最后把这些 WBNB 转入钱包地址,攻击者就完成了一次闪电贷套利。

事件后续

JULBSWAP 的 CEO 在 twitter 中发推文称此次事件由于闪电贷造成的兑换套利,官方将在后续更换新的版本并尝试开始回购 JULB 代币用于补偿用户。后续事件如果有新进展,实验室将会持续跟进,同时我们提醒各大项目方在 defi 项目中一定要做好代码审计测试,特别是在一些原有功能需求的更改上一定要做好数据测试和安全控制。

JulSwap闪电贷攻击分析及事件后续

JulSwap闪电贷攻击分析及事件后续

本文来自投稿,不代表Odaily立场。如若转载请注明出处。

ODAILY提醒,请广大读者树立正确的货币观念和投资理念,理性看待区块链,切实提高风险意识;对发现的违法犯罪线索,可积极向有关部门举报反映。

推荐阅读
星球精选