timezone |
---|
Asia/Taipei |
- 自我介绍 Ching367436, 竹狐 CTF 戰隊創辦人。曾學過一些 web2,主要著重於白箱測試。剛接觸 web3,希望能透過這個活動來增強自己於 web3 的實力。
- 你认为你会完成本次残酷学习吗? 可以
Damn Vulnerable DeFi - The Rewarder
邏輯漏洞,可透過重複領取獎勵,將合約中的 DVT, WETH 轉移至指定的 recovery address。
Damn Vulnerable DeFi - Selfie
透過 flash loan 取得 DVT 後即可取得 DVT voting power,再透過 voting power 控制 SimpleGovernance
合約呼叫 SelfiePool.emergencyExit
,將合約中的 DVT 拿走。
Damn Vulnerable DeFi - Unstoppable
透過改變 Unstoppable
合約狀態,讓其無法正常 flash loan。
Damn Vulnerable DeFi - Compromised
利用外洩的 private keys 來控制 oracle,將 exchange 的 Ethers 偷走。
Damn Vulnerable DeFi - Naive Receiver
- Flash loan 接收合約沒做好限制,造成任何人都可以這個合約的身分進行 flash loan。
- Flash loan pool 使用了 ERC2771 + Multicall,可偽造 message sender 進行 withdraw。
Damn Vulnerable DeFi - Puppet
Lending pool 使用了 Uniswap v1 作為 oracle 來計算借錢所需 collateral 的量,可透過賣 DVT 給 Uniswap 來影響,使得借款時需要的抵押金為 0。
Damn Vulnerable DeFi - Puppet V2
Lending pool 使用了 Uniswap v2 作為 oracle 來計算借錢所需 collateral 的量,可透過賣 DVT 給 Uniswap 來影響,使得借款時需要的抵押金變小。
Damn Vulnerable DeFi - Truster
TrusterLenderPool.flashLoan
可用於呼叫任意其他合約函數。可以呼叫 DamnValuableToken.approve
來 approve 自己,再用 DamnValuableToken.transferFrom
來取得其 DVT。
Damn Vulnerable DeFi - Free Rider
FreeRiderNFTMarketplace.buyMany
的沒有驗證是否支付了 NTFs 總價FreeRiderNFTMarketplace._buyOne
最後將 NFT 價錢支付給了買家,而不是原本的擁有者- Player 一開始沒有足夠的 ETH 進行攻擊,但可以使用
UniswapV2
提供的 flash swap 來借到足夠的 ETH
Damn Vulnerable DeFi - Side Entrance
Damn Vulnerable DeFi - Backdoor
Damn Vulnerable DeFi - Climber
Damn Vulnerable DeFi - ABI Smuggling
Damn Vulnerable DeFi - Shards
Damn Vulnerable DeFi - Withdrawal
今天在打 神盾盃—資安競賽,拿了第二(第 一、二 名皆是竹狐戰隊成員)。
打完後今天還有一點時間,來看 Damn Vulnerable DeFi - PuppetV3。
目前把 UniswapV3Pool.swap
的使用方法看好、IUniswapV3SwapCallback
寫好,明天把這題剩下的部分看完。
應該之後會找時間把整個 UniswapV3 看過。
Damn Vulnerable DeFi - Puppet V3
還在處理 Damn Vulnerable DeFi - Wallet Mining 的如何計算 USER_DEPOSIT_ADDRESS
的 salt 部分 (Reference),明天繼續。
The destination address is calculated as follows:
initialisation_code = memory[offset:offset+size] address = keccak256(0xff + sender_address + salt + keccak256(initialisation_code))[12:]