freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

零时科技 || HFLH 攻击事件分析
2024-08-28 14:53:24

1724827710_66cec83ed37461fa69e11.jpg!small?1724827711350

背景介绍

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

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

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

攻击及事件分析

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

1724827758_66cec86e3f100a48cd5c9.png!small?1724827758371

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

1724827780_66cec884516bda92f7769.png!small?1724827780277

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

1724827793_66cec891d92290df77b84.png!small?1724827794984

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

1724827804_66cec89c55166820f7c98.jpg!small?1724827804212

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

1724827818_66cec8aa87228a817f0d6.png!small?1724827818925

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

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

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

1724827837_66cec8bd7522d87b49410.jpg!small?1724827837546

如下图:

1724827848_66cec8c8dd595db1dcb80.png!small?1724827849219

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


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

1724827870_66cec8dee29e3751ad9ce.png!small?1724827870994

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

总结

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

# 黑客攻击 # 安全事件
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录