CTF-free-Lunch
CTF-free-Lunch
题目来源:点击
首先这个代币只有一个合约,还是容易理解。如果对unswap V2
有了解的话,会更好的理解合约。发现漏洞。
要了解流动池点击,
题目要求是:我们初始有俩个代币,让我们通过这个SafuMaker合约后,翻倍50,并且要耗尽这个合约的资金。
攻击流程(这道题没有思路,或者是说对流动性的了解太少了,看了测试合约,发现这个思路真的让我茅舍顿开,或者是,题目还是做少了):
添加流动性并获得 LP 代币:
- 攻击者首先向 SAFU-USDC 流动性池添加流动性,例如存入 10 USDC 和 10 SAFU。这一步使得攻击者获得相应数量的 LP 代币,代表他们在流动性池中的份额。
创建新流动性池:
- 攻击者使用获得的 LP 代币与 SAFU 代币创建一个新的流动性池。这一步增加了攻击者的流动性控制能力。
转移 LP 代币并进行转换:
- 攻击者将 10% 的新流动性池的 LP 代币转移到 safuMaker 合约,并调用其 convert 方法。这通常会激活一些机制,例如将 LP 代币转换为 SAFU 代币或其他奖励。
代币交换:
- 攻击者使用路由合约执行代币交换,将 SAFU 代币转换为 SAFU-Pair LP 代币。这一步骤允许攻击者利用价格差异获取更多的 LP 代币。
移除流动性并提取资产:
- 攻击者移除流动性池中的所有资产,这会将他们的 LP 代币转换为基础的 USDC 和 SAFU 代币。
由于在流动性池中不断进行交易、提供流动性以及获取奖励,攻击者的最终余最终余额大幅增加。
攻击者成功的关键在于对流动性池机制的利用,通过不断添加流动性、转移 LP 代币和进行代币交换,攻击者能够有效增加其代币余额,最终实现经济利益的获取。
个人认为就像无中生有一样,更像一种欺骗,不过这样确实也能获利
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.