立即收到价值6万元的数字货币盲盒
2023年2月16日凌晨,AvalancheDeFi平台PlatypusFinance遭遇闪电贷攻击,被盗约900万美元。攻击者部署了未经验证的合同,并使用闪电贷款消耗了约900万美元。
攻击步骤对于三次攻击,我们将选择最大的金额来分析过程:
1. 攻击者将闪电贷获得的4400万USDC存储在Platypus中 USDC池,获得4400万 LP-USDC。
2. 攻击者将这4400万LP-USDC存储在MasterPlatypusv4中。
3.该平台的贷款限额设定为95%,这意味着攻击者最多可以借用4400万LP-USDC约4180万USP。
4. 攻击者在Platypustreasure合同中调用borow铸造约4180万USP。
5. 由于借来的USP金额不超过限额,协议的issolvent值将永远返回true。
6. 由于issolvent变量为true,攻击者可以调用emergencywithdraw提取其质押的4400万LP-USDC资金。
7. 在支付了移除流动性的费用后,攻击者总共提取了43、999、999、921和036 USDC(LP-USDC)。
8. 攻击者偿还了闪电贷款,并以多种稳定货币的形式获利约850万美元。
2,425,762 USDC
1,946,900 USDC.e?
1,552,550 USDT
1,217,581 USDT.e
687,369 BUSD
691,984 DAI.e?
在写这篇文章的时候,大约有900万美元被盗。攻击者部署的合同中仍有价值850万美元的资产;攻击者地址1.71万美元(EOA);Aave池399,400美元。
漏洞分析该事件的漏洞在于MasterPlatypusv4合同函数emergencywithdraw中的偿付能力检查存在问题。其偿付能力检查不考虑用户的债务价值,只检查债务金额是否达到最大限度。合同允许用户在通过偿付能力检查后提取所有存入的资产。
platypustreasureas.issolvent将返回两个值。第一个值是solvent,它是一个布尔值,决定了用户的债务金额是否低于贷款限额。第二个值debtamount显示用户欠的债务金额。
假如用户的债务金额不超过用户抵押物贷款金额的95%,那么solvent的价值就是true。
但在emergencywithdraw函数中,偿付能力检查只验证了布尔值solvent,而忽略了债务金额。这意味着,如果用户的债务不超过贷款限额,用户可以调用函数emergencyWithdraw提取所有存入的抵押品。
写在最后通过安全审计,可以发现设计缺陷。
该事件的预警已在Certik官方推特上首次播出。欢迎关注Certik官方推特,获得更多漏洞、黑客攻击和Rug 与Pull相关的社区预警信息。
近千万美元的攻击不断,今年黑客来钱甚至比黑道快多了。
合同审计是Web3世界的“安心”!
这篇文章来自抹茶交易所。
安卓下载抹茶:立即前往下载抹茶IOS:立即前往
标签: 币