Skip to content

Latest commit

 

History

History
121 lines (96 loc) · 7 KB

Ching367436.md

File metadata and controls

121 lines (96 loc) · 7 KB
timezone
Asia/Taipei

Ching367436

  1. 自我介绍 Ching367436, 竹狐 CTF 戰隊創辦人。曾學過一些 web2,主要著重於白箱測試。剛接觸 web3,希望能透過這個活動來增強自己於 web3 的實力。
  2. 你认为你会完成本次残酷学习吗? 可以

Notes

2024.08.29

Damn Vulnerable DeFi - The Rewarder

邏輯漏洞,可透過重複領取獎勵,將合約中的 DVT, WETH 轉移至指定的 recovery address。

2024.08.30

Damn Vulnerable DeFi - Selfie

透過 flash loan 取得 DVT 後即可取得 DVT voting power,再透過 voting power 控制 SimpleGovernance 合約呼叫 SelfiePool.emergencyExit,將合約中的 DVT 拿走。

2024.08.31

Damn Vulnerable DeFi - Unstoppable

透過改變 Unstoppable 合約狀態,讓其無法正常 flash loan。

2024.09.01

Damn Vulnerable DeFi - Compromised

利用外洩的 private keys 來控制 oracle,將 exchange 的 Ethers 偷走。

2024.09.02

Damn Vulnerable DeFi - Naive Receiver

  1. Flash loan 接收合約沒做好限制,造成任何人都可以這個合約的身分進行 flash loan。
  2. Flash loan pool 使用了 ERC2771 + Multicall,可偽造 message sender 進行 withdraw。

2024.09.03

Damn Vulnerable DeFi - Puppet

Lending pool 使用了 Uniswap v1 作為 oracle 來計算借錢所需 collateral 的量,可透過賣 DVT 給 Uniswap 來影響,使得借款時需要的抵押金為 0。

2024.09.04

Damn Vulnerable DeFi - Puppet V2

Lending pool 使用了 Uniswap v2 作為 oracle 來計算借錢所需 collateral 的量,可透過賣 DVT 給 Uniswap 來影響,使得借款時需要的抵押金變小。

2024.09.05

Damn Vulnerable DeFi - Truster

TrusterLenderPool.flashLoan 可用於呼叫任意其他合約函數。可以呼叫 DamnValuableToken.approve 來 approve 自己,再用 DamnValuableToken.transferFrom 來取得其 DVT。

2024.09.06

Damn Vulnerable DeFi - Free Rider

  1. FreeRiderNFTMarketplace.buyMany 的沒有驗證是否支付了 NTFs 總價
  2. FreeRiderNFTMarketplace._buyOne 最後將 NFT 價錢支付給了買家,而不是原本的擁有者
  3. Player 一開始沒有足夠的 ETH 進行攻擊,但可以使用 UniswapV2 提供的 flash swap 來借到足夠的 ETH

2024.09.07

Damn Vulnerable DeFi - Side Entrance

2024.09.08

Damn Vulnerable DeFi - Backdoor

2024.09.09

Damn Vulnerable DeFi - Climber

2024.09.10

Damn Vulnerable DeFi - ABI Smuggling

2024.09.11

Damn Vulnerable DeFi - Shards

2024.09.12

Damn Vulnerable DeFi - Withdrawal

2024.09.13

今天在打 神盾盃—資安競賽,拿了第二(第 一、二 名皆是竹狐戰隊成員)。

打完後今天還有一點時間,來看 Damn Vulnerable DeFi - PuppetV3。 目前把 UniswapV3Pool.swap 的使用方法看好、IUniswapV3SwapCallback 寫好,明天把這題剩下的部分看完。 應該之後會找時間把整個 UniswapV3 看過。

2024.09.14

Damn Vulnerable DeFi - Puppet V3

2024.09.15

還在處理 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:]