2023-08-23 11:25 | 出处: odaily
8 月 18 日,Exactly protocol 遭遇黑客攻击,攻击者已获利约 1204 万美元。SharkTeam 对此事件第一时间进行了技术分析,并总结了安全防范手段,希望后续项目可以引以为戒,共筑区块链行业的安全防线。
攻击者地址:
0 x3747dbbcb5c07786a4c59883e473a2e38f571af9
0 x417179df13ba3ed138b0a58eaa0c3813430a20e0
0 xe4f34a72d7c18b6f666d6ca53fbc3790bc9da042
攻击合约:
0 x6dd61c69415c8ecab3fefd80d079435ead1a5b4d
被攻击合约:
0 x675d410dcf6f343219aae8d1dde0bfab46f52106
攻击交易:
0 x3d6367de5c191204b44b8a5cf975f257472087a9aadc59b5d744ffdef33a520e
0 x1526acfb7062090bd5fed1b3821d1691c87f6c4fb294f56b5b921f0edf0cfad6
0 xe8999fb57684856d637504f1f0082b69a3f7b34dd4e7597bea376c9466813585
攻击流程:
(1)攻击者(0 x417179df)先通过攻击合约(0 x6dd61c69)创建了多个恶意市场代币合约和多个 uniswapPool 合约。
(2)随后调用被攻击合约(0 x675d410d)的 leverage 函数并传入一个恶意市场代币地址。
(3)在 leverage 函数中通过 deposit 函数到 pool 合约中添加 USDC 和恶意市场代币的流动性并重入到被攻击合约(0 x675d410d)的 crossDeleverage 函数
(4)在 crossDeleverage 函数中被攻击合约(0 x675d410d)会使用 USDC 到 pool 合约中兑换恶意市场代币。
(5)函数调用完成后,攻击合约(0 x6dd61c69)移除 pool 中的流动性,随后提出兑换而来的 USDC 代币获利。
(6) 多次循环上面的操作,每次攻击都会更换被攻击用户地址和恶意市场代币地址。
(7) 然后将获得的 USDC 发送给攻击者(0 xe4f34a72)。
(8)多次执行同样的操作获利
最后在与 pool 进行兑换时会使用用户的 exaUSDC 余额来抵消付给 pool 合约的 USDC 数量。
(1)在涉及到有关外部地址传参和调用的情况下,应严格校验传参地址是否为可信地址。
(2)项目上线前,需要向第三方专业的审计团队进行智能合约审计。
官网:https://www.sharkteam.org