一、前言
北京时间3月20日晚,知道创宇区块链安全实验室 监测到以太坊上分布式跨链协议 Li.Finance 受到了攻击,攻击者执行了37次call注入获取了多个钱包中约60万美元的资产(204个ETH)。此次资产损失并没有非常大,但项目方对于攻击的处理非常积极并值得学习与肯定(见后文),目前项目方已补偿了协议损失并修复后重新部署了协议。知道创宇区块链安全实验室 第一时间跟踪本次事件并分析。
二、分析
1.攻击者相关信息
攻击tx:0x4b4143cbe7f5475029cf23d6dcbb56856366d91794426f2e33819b9b1aac4e96被攻击合约:0x5A9Fd7c39a6C488E715437D7b1f3C823d5596eD1–代理合约0x73a499e043b03fc047189ab1ba72eb595ff1fc8e–逻辑合约攻击者地址: 0xC6f2bDE06967E04caAf4bF4E43717c3342680d76 – 部署地址0x878099F08131a18Fab6bB0b4Cfc6B6DAe54b177E – 收款地址
2.攻击流程
攻击调用流程攻击者构造payload并调用被攻击合约0x5a9fd7c3的swapAndStartBridgeTokensViaCBridge函数
具体使用的Payload如下–图中选中部分即为利用授权转账(transferFrom)部分的