Yukardaki kod paracnda, satr 140, LP belirteci bakiyesini balanceOf() araclyla alr ve likiditeye depolar. 144-145 satrlarnda, UniswapV2Pair'in sahip olduu toplam LP jetonlarnn ksm (yani, _totalSupply'den likidite), iki varln (token0 ve token1). Daha sonra iki varln (amount0, amount1) 148149 satrlarndaki adrese aktarlr. Burada, kt bir aktr, arayann daha fazla token0+token1 almasn salamak iin mint() ilevi arlmadan hemen nce UniswapV2Pair szlemesine bir miktar token0+token1 veya LP belirteci gndererek (balance0, balance1) ve likiditeyi maniple edebilir. PancakeBunny kaynak kodunda hackern bunu yapmaktan nasl kr edebileceini gstereceim. PancakeBunny kaynak kodunda, BunnyMinterV2.mintForV2() ilevi, BUNNY belirtelerini dl olarak basmaktan sorumludur. Spesik olarak, baslacak miktar (yani mintBunny), giri parametrelerinden tretilir: _withdrawalFees ve
id: f98fe00da7322f99963a606023fd5a0e - page: 2
_performanceFee. Hesaplama ilevle ilgilidir: _zapAssetsToBunnyBNB() (satr 213), priceCalculator.valueOfAsset() (satr 219) ve miktarBunnyToMint() (satr 221). Hacker byk miktarda BUNNY basabileceinden, sorun yukarda belirtilen ilevden birinde yatmaktadr. _zapAssetsToBunnyBNB() ilevinden balayalm. Aktarlan varlk bir Cake-LP (satr 267) olduunda, likiditeyi kaldrmak ve likidite havuzundan (satr 278) (satr 278) (token0, token1) (token0, token1) almak iin belirli bir miktarda LP jetonu kullanlr. zapBSC szlemesinin yardmyla, bu varlklar BUNNY-BNB LP jetonlar ile deitirilir (287288 satrlar). Karlk gelen miktarda BUNNY-BNB LP jetonlar daha sonra arayan kiiye iade edilir (satr 298). Burada bir sorunumuz var. Miktar, yakldn varsaydnz LP jetonlarnn miktaryla eleiyor mu? PancakeV2Router.removeLiquidity() uygulamasnda, LP jetonlarnn likiditesi (zapAssetsToBunnyBNB() iindeki miktar) PancakePair szlemesine (satr 500)
id: 2a764e23f20b47386421cce37dfad32f - page: 3
burn() arlr. PancakePair'in mevcut LP jeton bakiyesi 0'dan bykse, yaklacak miktar gerek miktardan daha byk olur ve bu da dolayl olarak baslacak BUNNY miktarn artrr. _zapAssetsToBunnyBNB() iindeki baka bir sorun da zapBSC.zapInToken() arsdr. Bunun arkasndaki mantk, removeLiquidity() tarafndan toplanan iki varl BUNNY-BNB LP jetonlaryla deitirmektir. zapBSC varlklar PancakeSwap araclyla takas ettiinden, hacker takas edilen BUNNY-BNB miktarn maniple etmek iin ash loan kullanabilir. BunnyMinterV2.mintForV2()'ye dnersek, zapAssetsToBunnyBNB() tarafndan dndrlen bunnyBNBAmount, bir Oracle mekanizmasna benzer ekilde BNB'ye (yani vauleInBNB) dayal deeri alntlamak iin priceCalculator.valueOfAsset() esine iletilir. Txn detayn ve CertiKin yapt duyuru grselini aaya brakyorum, Flash Loan bir ok projede kullanlr (kt niyetli deil), yeterli tedbir alnmaz ise kt niyetli olarak kullanlabilir.
id: b9c869b1495552ecf3105f8118ddabc1 - page: 4
Bir projenin Flash Loan saldrs riski olup olmadna bakmann en basit yolu token mint var m? Yok mu? Bu sorunun cevabn bulmanz yeterli. Szleme detayna bakp Max supply 0 yada gzkyorsa her zaman bir risk vardr. ok teknik olduu iin basit anlatamadm farkndaym. :) Keyii okumalar. yi ki varsnz GANG!
id: f6a7c817eb86c9a2f16b75cd91713fc4 - page: 4