零时科技 || HFLH 攻击事件分析
2024-08-28 11:27
零时科技
2024-08-28 11:27
订阅此专栏
收藏此文章


背景介绍


近期,我们监控到一起针对 BnbSmartChain 上的项目 HFLH 的链上攻击事件,

https://bscscan.com/tx/0xb61ae75835854e577657c25fe1891ff1c9ffb1b6b61ec4064396a08e222f679e


被攻击的项目为 HFLH ,攻击者通过此次攻击获利约 9.099 BNB 约为 5300 USD 。



攻击及事件分析


首先,攻击者通过 AAVE 利用 f lashloan 借了 2002 WBNB,



接着,利用攻击合约通过合约 Regist(0x4e5A3d30d1caEaB5CADaDB12ca84f0916C473D34) 进行注册。



随后,利用 Borrow 合约进行借贷。Borrow 合约的借贷代码如下:



其中,借贷的金额计算方式为:



我们可以看到,获取 HFLH 的 price 的代码如下:



HFLH 的价格是通过计算 pancakeSwap 中 WBNB 和 HFLH 的余额比例来计算的。且

price=HFLHamount/WBNBamount ,可以看出 HFLH 的数量越多,price 越大。


攻击者通过转入 1999 WBNB 来借出 HFLH ,通过上述公式可以计算出借出的 HFLH 的数量为:



如下图: 



攻击者又将借出的 HFLH 转回到了 pancakeSwap Pair 中,随后又利用 borrow 转入 2.2 WBNB 借出 HFLH 。因为攻击者将借出的 HFLH 转回到了 pancakeSwap Pair 中,相当于拉升了 price ,所以此次转入 2.2 WBNB 可以借出更多的 HFLH 。


接着,攻击者利用 pancakeSwap 的 skim 函数,将转入的 HFLH 拿回,又调用了 withdrawPrincipal 来归还并拿回第一次 borrow 时存入的 1999 WBNB 。



最后,攻击者利用第二次借到的 HFLH 利用 pancakeSwap 兑换了 12.3 WBNB 。最终获利 12.3 - 2.2 - 1.001(flashloan 的利息 ) = 9.099 WBNB ,约为 5300 USD 。



总结


本次漏洞成因主要是因为 HFLH 合约在获取 HFLH Token 的价格时,通过单一来源 PancakeSwapV2 来计算,导致价格被攻击者操纵,最终利用价差套利。建议项目方在设计经济模型、价格计算机制和代码运行逻辑时要多方验证,合约上线前审计时尽量选择多个审计公司交叉审计。




若需了解更多产品信息或有相关业务需求,可扫码关注公众号或移步至官网:


微信号noneage

官方网址https://noneage.com/





推荐阅读

REVIEW




END





点击阅读全文 立刻直达官网

     /www.noneage.com/    


【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

零时科技
数据请求中
查看更多

推荐专栏

数据请求中
在 App 打开