2022年9月8日,CertiK Skynet天网监测到New Free DAO (NFD) 项目遭遇了闪电贷攻击。
漏洞在NFD项目部署的一个未经验证的奖励合约中,攻击者利用闪电贷借入NFD代币,并将其发送到攻击合约。随后攻击合约则调用未经验证的奖励合约,向攻击者发送更多的NFD代币。
攻击者在3次攻击中重复这个过程,获取了4481个WBNB,价值约125万美元。
由于攻击者大量抛售NFD代币(6,838,792个),该代币的价格已经暴跌超过99%。
攻击步骤
① 攻击者部署了一个恶意合约。在同一笔交易中,它调用了以下函数,将自己添加为合约成员。
② 攻击者执行了三次闪电贷攻击,借助第一笔闪电贷款,借入250个WBNB,并将其交易为6,313,508个NFD代币。
③ 这些代币被发送到一些未经验证的合约中。
④ 这调用了0xe2f9d09c,输入NFD代币地址0x0000000000000000000038c63a5d3f206314107a7a9fe8cbba29d629d4f9。
⑤ 这触发了NFD项目部署的另一个未经验证的奖励合约0x8b068e22e9a4a9bca3c321e0ec428abf32691d1e.0x6811e3b9()。
之后,未验证的合约实际上从奖励合约中收到了额外的525,283个NFD代币——总计6,838,792个NFD代币,这些代币被发回给了攻击合约。
⑥ 在上述交易中,NFD合约错误地释放了额外的525,283NFD。因此当攻击者完成攻击时,获取了总计343,323,371个NFD代币,在偿还了最初的250WBNB贷款后,获利4481WBNB,总价值约125万美元。
⑦ 最后攻击者通过两笔交易,将2,000WBNB换为556,556.72USDT。目前攻击者钱包仍持有2,481WBNB。
漏洞分析
本次攻击事件的漏洞位于NFD项目部署的一个未经验证的奖励合约。由于NFD合约的源代码在BSCScan上未被验证,因此还无法确定攻击者用来利用合约的确切机制。
资金去向
攻击者总共获得了4481个WBNB,并将其中的2000个换成了55.7万枚USDT,剩下的WBNB仍然在攻击者的账户中。
将2000WBNB交易为USDT的两笔交易:
https://bscscan.com/tx/0x8c035fc9c3d944b3dd4a0ea721c119240cb624e79b7625a16173ad6682410599
https://bscscan.com/tx/0xda4b4de6ecacfe9b8b60167a2010630aeec103ab51920eb2e1b94ba1fef6c95b
相关地址
攻击者账户:
https://bscscan.com/address/0x22c9736d4fc73a8fa0eb436d2ce919f5849d6fd2
攻击合约:
https://bscscan.com/address/0xa35ef9fa2f5e0527cb9fbb6f9d3a24cfed948863
未经验证的奖励合约:
https://bscscan.com/address/0x8b068e22e9a4a9bca3c321e0ec428abf32691d1e
WBNB-USDT对:
https://bscscan.com/address/0x16b9a82891338f9ba80e2d6970fdda79d1eb0dae
USDT-NFD对:
https://bscscan.com/address/0x26c0623847637095655b2868c3182b2285bdaeaf