2023 | GlacierCTF | smartcontract
The Council of Apes
题目¶
On top of the glacier you run into a bunch of monkeys. They are screaching at each other, throwin feces around and won't let you pass. You will need to somehow get rid of them to finish your mission.
nc chall.glacierctf.com 13380
Setup.sol
IcyExchange.sol
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
|
CouncilOfApes.sol
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 |
|
IcyPool.sol
TotallyNotCopiedToken.sol
解题思路¶
-
目标是解散
CouncilOfApes
-
只有
apeClass
为GORILLA
才能解散委员会 -
成为
GORILLA
需要 \(10^9\) 票,对应 \(10^9\) 根香蕉,香蕉可通过icyToken
兑换。成为GORILLA
之后能够获取任意数量的香蕉,而IcyExchange
提供icyToken
闪电贷,那么可以借助闪电贷成为GORILLA
,再卖掉香蕉换取icyToken
归还闪电贷 -
发起闪电贷需要质押另一种代币。由于代币总发行量不能超过 \(10^8\),因而不能使用
TotallyNotCopiedToken
。但单次闪电贷的金额不足以成为GORILLA
,考虑到没有重入保护,可以在receiveFlashLoan()
时再次发起闪电贷
Exploit¶
Flag¶
gctf{M0nkee5_4re_inD33d_t0g3ther_str0ng3r}
最后更新:
2023年11月27日 10:53:17
Contributors: