A summary and solutions for 200+ CTF blockchain challenges
Solidity
1,103
322 commits
updated Oct 9, 2025
This repository collects blockchain challenges in CTFs and wargames.
These challenges are categorized by topic, not by difficulty or recommendation. Some of them include personal writeups and solutions (e.g., Paradigm CTF 2022). Please be aware that these contain spoilers.
Table of Contents
tx.origindelegatecalldelegatecallselfdestructview/pure to interface and abstract contract functionsview functions that do not always return same valuesstorage and memoryabi.encodePacked with variable length argumentsecrecover returns address(0) for invalid signatures2^256-1 (< Solidity 0.6.0)π: External link
Always-on CTFs / Practice CTFs
| CTF Name | Note |
|---|---|
| Ethernaut | |
| Damn Vulnerable DeFi π | |
| fvictorio's EVM puzzles | |
| Dreamhack π | |
| Hack The Box π | |
| Capture the Ether | |
| Oak Security CosmWasm CTF | |
| Cipher Shastra π | |
| ONLYPWNER π | No solution sharing allowed |
Scheduled CTFs
Note:
| Challenge | Note, Keywords |
|---|---|
| Capture The Ether: Deploy a contract | faucet, wallet |
| Capture The Ether: Call me | contract call |
| Capture The Ether: Choose a nickname | contract call |
| Capture The Ether: Guess the number | contract call |
| Capture The Ether: Guess the secret number | keccak256 |
| Ethernaut: 0. Hello Ethernaut | contract call, ABI |
| Ethernaut: 1. Fallback | receive Ether function |
| Paradigm CTF 2021: Hello | contract call |
| 0x41414141 CTF: sanity-check | contract call |
| Paradigm CTF 2022: RANDOM | contract call |
| DownUnderCTF 2022: Solve Me | |
| LA CTF 2024: remi's-world |
| Challenge | Note, Keywords |
|---|---|
| Capture The Ether: Guess the new number | block.number, block.timestamp |
| Capture The Ether: Predict the block hash | blockhash |
| Ethernaut: 13. Gatekeeper One | msg.sender != tx.origin, gasleft().mod(8191) == 0, type conversion |
| Ethernaut: 14. Gatekeeper Two | msg.sender != tx.origin, extcodesize is 0 |
| Cipher Shastra: Minion | msg.sender != tx.origin, extcodesize is 0, block.timestamp |
| SECCON Beginners CTF 2020: C4B | block.number |
| Paradigm CTF 2021: Babysandbox | staticcall, call, delegatecall, extcodesize is 0 |
| Paradigm CTF 2021: Lockbox | ecrecover, abi.encodePacked, msg.data.length |
| EthernautDAO: 6. (No Name) | block.number, gas price war |
| fvictorio's EVM Puzzles | |
| Huff Challenge: Challenge #3 | |
| Paradigm CTF 2022: LOCKBOX2 | |
| Paradigm CTF 2022: SOURCECODE | quine |
| Numen Cyber CTF 2023: LittleMoney | function pointer |
| Numen Cyber CTF 2023: ASSLOT | staticcall that return different values |
| Paradigm CTF 2023: Black Sheep | Huff |
tx.origintx.origin refers to the address of the transaction publisher and should not be used as the address of the contract caller msg.sender.| Challenge | Note, Keywords |
|---|---|
| Ethernaut: 4. Telephone |
| Challenge | Note, Keywords |
|---|---|
| Capture The Ether: Predict the future | |
| Ethernaut: 3. Coin Flip | |
| DownUnderCTF 2022: Crypto Casino | |
| Paradigm CTF 2023: SkillBasedGame |
| Challenge | Note, Keywords |
|---|---|
| Ethernaut: 15. Naught Coin | transfer, approve, transferFrom |
| Paradigm CTF 2021: Secure | WETH |
| DeFi-Security-Summit-Stanford: VToken |
delegatecalldelegatecall is a potential source of vulnerability because the storage of the delegatecall caller contract can be overwritten by the called contract.| Challenge | Note, Keywords |
|---|---|
| Ethernaut: 6. Delegation | |
| Ethernaut: 16. Preservation | |
| Ethernaut: 24. Puzzle Wallet | proxy contract |
| Ethernaut: 25. Motorbike | proxy contract, EIP-1967: Standard Proxy Storage Slots |
| DeFi-Security-Summit-Stanford: InSecureumLenderPool | flash loan |
| QuillCTF2023: D3l3g4t3 | |
| Numen Cyber CTF 2023: Counter | writing EVM code |
delegatecalldelegatecall are executed in the context of the delegatecall caller contract.| Challenge | Note, Keywords |
|---|---|
| EthernautDAO: 3. CarMarket | Non-use of address(this) |
1 from the value of a variable of uint type when the value is 0 causes an arithmetic overflow.| Challenge | Note, Keywords |
|---|---|
| Capture The Ether: Token sale | multiplication |
| Capture The Ether: Token whale | subtraction |
| Ethernaut: 5. Token | subtraction |
.send() or .transfer()) can always be executed.selfdestruct described in the next section can be used to force such a contract to transfer Ether.| Challenge | Note, Keywords |
|---|---|
| Ethernaut: 9. King | |
| SekaiCTF 2022: Random Song | Chainlink VRF |
selfdestructselfdestruct, it can transfer its Ether to another contract or EOA, and this selfdestruct transfer can be forced even if the destination contract does not have the receive Ether function and the payable fallback function.0, it could be a bug.| Challenge | Note, Keywords |
|---|---|
| Capture The Ether: Retirement fund | integer overflow |
| Ethernaut: 7. Force |
call, and there may not be enough gas for the rest of the process.assert(false) could consume a lot of gas.| Challenge | Note, Keywords |
|---|---|
| Ethernaut: 20. Denial |
view/pure to interface and abstract contract functionsview or pure for a function and design your application under the assumption that the state will not change, it will be a bug.| Challenge | Note, Keywords |
|---|---|
| Ethernaut: 11. Elevator | interface |
| Challenge | Note, Keywords |
|---|---|
| Ethernaut: 31. Stake |
view functions that do not always return same valuesview functions can read state, they can be conditionally branched based on state and do not necessarily return the same value.| Challenge | Note, Keywords |
|---|---|
| Ethernaut: 21. Shop |
storage and memorystorage and memory are not set properly, old values may be referenced, or overwriting may not occur, resulting in vulnerability.| Challenge | Note, Keywords |
|---|---|
| N1CTF 2021: BabyDefi | Cover Protocol infinite minting + flash loan |
| Challenge | Note, Keywords |
|---|---|
| Ethernaut: 17. Recovery | loss of deployed contract address |
| Challenge | Note, Keywords |
|---|---|
| Capture The Ether: Guess the random number | |
| Ethernaut: 8. Vault | |
| Ethernaut: 12. Privacy | |
| Cipher Shastra: Sherlock | |
| 0x41414141 CTF: secure enclave | log, storage |
| EthernautDAO: 1. PrivateData |
| Challenge | Note, Keywords |
|---|---|
| darkCTF: Secret Of The Contract | |
| DownUnderCTF 2022: Secret and Ephemeral |
| Challenge | Note, Keywords |
|---|---|
| Incognito 2.0: Ez | keep in plain text |
| 0x41414141 CTF: crackme.sol | decompile |
| 0x41414141 CTF: Crypto Casino | bypass condition check |
| Paradigm CTF 2021: Babyrev | |
| 34C3 CTF: Chaingang | |
| Blaze CTF 2018: Smart? Contract | |
| DEF CON CTF Qualifier 2018: SAG? | |
| pbctf 2020: pbcoin | |
| Paradigm CTF 2022: STEALING-SATS | |
| Paradigm CTF 2022: ELECTRIC-SHEEP | |
| Paradigm CTF 2022: FUN-REVERSING-CHALLENGE | |
| DownUnderCTF 2022: EVM Vault Mechanism | |
| EKOPARTY CTF 2022: Byte | stack tracing |
| EKOPARTY CTF 2022: SmartRev | memory tracing |
| Numen Cyber CTF 2023: HEXP | previous block hash == gas price % 2^24 |
| BlazCTF 2023: Maze | |
| BlazCTF 2023: Jambo | |
| BlazCTF 2023: Ghost | |
| Curta: Lana | LLVM |
| Ethernaut: 30. HigherOrder | calldata |
| COMPFEST CTF 2025: Synthetic Manipulation |
| Challenge | Note, Keywords |
|---|---|
| SekaiCTF 2024: Zoo | Pausable |
| Challenge | Note, Keywords |
|---|---|
| Ethernaut: 18. MagicNumber | |
| Paradigm CTF 2021: Rever | Palindrome detection. In addition, the code that inverts the bytecode must also be able to detect palindromes. |
| Huff Challenge: Challenge #1 |
| Challenge | Note, Keywords |
|---|---|
| SECCON CTF 2023 Quals: Tokyo Payload | |
| Paradigm CTF 2021: JOP | |
| Real World CTF 3rd: Re:Montagy |
| Challenge | Note, Keywords |
|---|---|
| Huff Challenge: Challenge #2 |
abi.encodePacked with variable length arguments| Challenge | Note, Keywords |
|---|---|
| SEETF 2023: Operation Feathered Fortune Fiasco |
| Challenge | Note, Keywords |
|---|---|
| SEETF 2023: Murky SEEPass | array length, Merkle proof |
A contains interaction with another contract B or Ether transfer to B, the control is temporarily transferred to B.B can call A in this control, it will be a bug if the design is based on the assumption that A is not called in the middle of the execution of that function.B executes the withdraw function to withdraw Ether deposited in A, the Ether transfer triggers a control shift to B, and during the withdraw function, B executes A's withdraw function again. Even if the withdraw function is designed to prevent withdrawal of more than the limit if it is simply called twice, if the withdraw function is executed in the middle of the withdraw function, it may be designed to bypass the limit check.| Challenge | Note, Keywords |
|---|---|
| Capture The Ether: Token bank | ERC-223, tokenFallback() |
| Ethernaut: 10. Re-entrancy | call |
| Paradigm CTF 2021: Yield Aggregator | |
| HTB University CTF 2020 Quals: moneyHeist | |
| EthernautDAO: 4. VendingMachine | call |
| DeFi-Security-Summit-Stanford: InsecureDexLP | ERC-223, tokenFallback() |
| MapleCTF 2022: maplebacoin | |
| QuillCTF 2022: SafeNFT | ERC721, _safeMint() |
| Numen Cyber CTF 2023: SimpleCall | call |
| SEETF 2023: PigeonBank | |
| SekaiCTF 2023: Re-Remix | Read-Only Reentrancy |
| SECCON Beginners CTF 2024: vote4b | ERC721, _safeMint() |
| Full Weak Engineer CTF: Save the Kappa |
| Challenge | Note, Keywords |
|---|---|
| Damn Vulnerable DeFi: 1. Unstoppable | Simple flash loan with a single token. Failure to send the token directly. |
| Damn Vulnerable DeFi: 2. Naivereceiver | The flashLoan function can specify a borrower, but the receiver side does not authenticate the TX sender, so the receiver's funds can be drained as a fee |
| Damn Vulnerable DeFi: 3. Truster | The target of a call is made into the token and the token can be taken by approving it to oneself |
| Damn Vulnerable DeFi: 4. Sideentrance | Flash loan that allows each user to make a deposit and a withdrawal. The deposit can be executed at no cost at the time of the flash loan. |
| Challenge | Note, Keywords |
|---|---|
| Damn Vulnerable DeFi: 5. Therewarder | Get reward tokens based on the deposited token balance. |
| Damn Vulnerable DeFi: 6. Selfie | Get voting power in governance based on the deposited token balance. |
| Challenge | Note, Keywords |
|---|---|
| Paradigm CTF 2021: Upgrade | Bypass using the lending functionality implemented in the token |
| Challenge | Note, Keywords |
|---|---|
| Ethernaut: 22. Dex |
| Challenge | Note, Keywords |
|---|---|
| Ethernaut: 23. Dex Two |
| Challenge | Note, Keywords |
|---|---|
| Paradigm CTF 2021: Broker | Distort Uniswap prices and liquidate positions on lending platforms that reference those prices |
| Damn Vulnerable DeFi: 7. Compromised | Off-chain private key leak & oracle manipulation |
| Challenge | Note, Keywords |
|---|---|
| Damn Vulnerable DeFi: 8. Puppet | Distort the price of Uniswap V1 and leak tokens from a lending platform that references that price |
| DeFi-Security-Summit-Stanford: BorrowSystemInsecureOracle | lending protocol |
A and buy B, the attacker can put in a transaction to sell A and buy B before the transaction, and later put in a transaction to sell the same amount of B and buy A, thereby ultimately increasing the amount of A at a profit.| Challenge | Note, Keywords |
|---|---|
| Paradigm CTF 2021: Farmer | Sandwich the trade from COMP to WETH to DAI |
| Challenge | Note, Keywords |
|---|---|
| Capture The Ether: Account Takeover | |
| Paradigm CTF 2021: Babycrypto | |
| MetaTrust CTF: ECDSA |
(v, r, s), there exists another valid signature (v', r, -s mod n) for the same message.| Challenge | Note, Keywords |
|---|---|
| SmileyCTF: MultisigWallet | ECDSA, signature malleability, secp256k1 |
| COMPFEST CTF 2025: snake_inception | Vyper |
| Challenge | Note, Keywords |
|---|---|
| Capture The Ether: Fuzzy identity | 28 bits, CREATE2 |
| Numen Cyber CTF 2023: Exist | 16 bits |
keccak256 hash, and the public key cannot be recovered from the address.[nonce, gas_price, gas, to, value, data, chain_id, 0, 0] and the signature (v,r,s).| Challenge | Note, Keywords |
|---|---|
| Capture The Ether: Public Key | RLP, ECDSA |
ecrecover returns address(0) for invalid signaturesecrecover precompile returns address(0) when the signature is invalid or malformed.ecrecover.| Challenge | Note, Keywords |
|---|---|
| SekaiCTF 2024: Play to Earn | Burn |
| Challenge | Note, Keywords |
|---|---|
| 0x41414141 CTF: Rich Club | DEX, flash loan |
transfer the ERC-20 token to get the ERC-20 token.permit and transferFrom if the token is EIP-2612 permit friendly.| Challenge | Note, Keywords |
|---|---|
| EthernautDAO: 5. EthernautDaoToken |
| Challenge | Note, Keywords |
|---|---|
| Paradigm CTF 2022: MERKLEDROP |
| Challenge | Note, Keywords |
|---|---|
| Paradigm CTF 2022: VANITY |
| Challenge | Note, Keywords |
|---|---|
| Ethernaut: 27. Good Samaritan |
| Challenge | Note, Keywords |
|---|---|
| Paradigm CTF 2022: TRAPDOOOR | |
| Paradigm CTF 2022: TRAPDOOOOR |
| Challenge | Note, Keywords |
|---|---|
| DownUnderCTF 2022: Private Log | |
| DiceCTF 2024: Floordrop | Geth |
| Challenge | Note, Keywords |
|---|---|
| HITCON CTF 2025: Maximal Extractable Vuln | |
| COMPFEST CTF 2025: snake_inception | Vyper |
| Challenge | Note, Keywords |
|---|---|
| 0CTF 2022: TCTF NFT Market | |
| Numen Cyber CTF 2023: Wallet | illegal v in ecrecover |
Foo storage foo;, the local variable foo points to slot 0.| Challenge | Note, Keywords |
|---|---|
| Capture The Ether: Donation |
2^256-1 (< Solidity 0.6.0)2^256-1.length property has been read-only since v0.6.0.| Challenge | Note, Keywords |
|---|---|
| Capture The Ether: Mapping | |
| Ethernaut: 19. Alien Codex | |
| Paradigm CTF 2021: Bank |
constructor keyword must be used.| Challenge | Note, Keywords |
|---|---|
| Capture The Ether: Assume ownership | |
| Ethernaut: 2. Fallout |
| Challenge | Note, Keywords |
|---|---|
| Capture The Ether: Fifty years | |
| deleted |
| Challenge | Note, Keywords |
|---|---|
| Paradigm CTF 2021: Bouncer | The funds required for batch processing are the same as for single processing. |
| Paradigm CTF 2021: Market | Make the value of one field be recognized as the value of another field by using key misalignment in the Eternal Storage pattern. |
| EthernautDAO: 2. WalletLibrary | m and n of m-of-n multisig wallet can be changed. |
| Paradigm CTF 2022: RESCUE | |
| Paradigm CTF 2022: JUST-IN-TIME | |
| Paradigm CTF 2022: 0XMONACO | |
| BalsnCTF 2022: NFT Marketplace | initialize, _safeTransferFrom, CREATE2 |
| Numen Cyber CTF 2023: LenderPool | flash loan |
| Numen Cyber CTF 2023: GOATFinance | check sum address |
| SEETF 2023: Pigeon Vault | EIP-2535: Diamonds, Multi-Facet Proxy |
| corCTF 2023: baby-wallet | missing from != to check |
Note
| Challenge | Note, Keywords |
|---|---|
| TsukuCTF 2021: genesis | genesis block |
| WORMCON 0x01: What's My Wallet Address | Bitcoin address, RIPEMD-160 |
| Challenge | Note, Keywords |
|---|---|
| darkCTF: Duplicacy Within |
| Challenge | Note, Keywords |
|---|---|
| Dragon CTF 2020: Bit Flip 2 | 64-bit PoW |
| Challenge | Note, Keywords |
|---|---|
| ALLES! CTF 2021: Secret Store | solana,spl-token |
| ALLES! CTF 2021: Legit Bank | |
| ALLES! CTF 2021: Bugchain | |
| ALLES! CTF 2021: eBPF | reversing eBPF |
| Paradigm CTF 2022: OTTERWORLD | |
| Paradigm CTF 2022: OTTERSWAP | |
| Paradigm CTF 2022: POOL | |
| Paradigm CTF 2022: SOLHANA-1 | |
| Paradigm CTF 2022: SOLHANA-2 | |
| Paradigm CTF 2022: SOLHANA-3 | |
| corCTF 2023: tribunal | |
| SekaiCTF 2023: The Bidding | |
| SekaiCTF 2023: Play for Free |
| Challenge | Note, Keywords |
|---|---|
| Oak Security CosmWasm CTF: 1. Mjolnir | logic bug |
| Oak Security CosmWasm CTF: 2. Gungnir | integer overflow |
| Oak Security CosmWasm CTF: 3. Laevateinn | address validation, uppercase |
| Oak Security CosmWasm CTF: 4. Gram | invariant, rounding error |
| Oak Security CosmWasm CTF: 5. Draupnir | missing return |
| Oak Security CosmWasm CTF: 6. Hofund | flash loan, governance |
| Oak Security CosmWasm CTF: 7. Tyrfing | storage collision |
| Oak Security CosmWasm CTF: 8. Gjallarhorn | |
| Oak Security CosmWasm CTF: 9. Brisingamen | |
| Oak Security CosmWasm CTF: 10. Mistilteinn |
| Challenge | Note, Keywords |
|---|---|
| RealWorld CTF 3rd Finals: Billboard |
| Challenge | Note, Keywords |
|---|---|
| Numen Cyber CTF 2023: Move to Checkin | contract call in Sui |
| Numen Cyber CTF 2023: ChatGPT tell me where is the vulnerability | OSINT |
| Numen Cyber CTF 2023: Move to Crackme | reversing Move code and Linux executable |
| justCTF 2024 teaser: The Otter Scrolls | |
| justCTF 2024 teaser: Dark BrOTTERhood | |
| justCTF 2024 teaser: World of Ottercraft |
| Challenge | Note, Keywords |
|---|---|
| Paradigm CTF 2022: RIDDLE-OF-THE-SPHINX | contract call |
| Paradigm CTF 2022: CAIRO-PROXY | integer overflow |
| Paradigm CTF 2022: CAIRO-AUCTION | Uint256 |
| BalsnCTF 2022: Cairo Reverse | reversing |
| Challenge | Note, Keywords |
|---|---|
| TsukuCTF 2021: InterPlanetary Protocol | IPFS address, Base32 in lowercase |
2,030 followers Β· starred Aug 2023
128 followers Β· starred Aug 2022
51 followers Β· starred Nov 2022
34 followers Β· starred Jan 2023
A summary and solutions for 200+ CTF blockchain challenges
Solidity
1,103
322 commits
updated Oct 9, 2025
This repository collects blockchain challenges in CTFs and wargames.
These challenges are categorized by topic, not by difficulty or recommendation. Some of them include personal writeups and solutions (e.g., Paradigm CTF 2022). Please be aware that these contain spoilers.
Table of Contents
tx.origindelegatecalldelegatecallselfdestructview/pure to interface and abstract contract functionsview functions that do not always return same valuesstorage and memoryabi.encodePacked with variable length argumentsecrecover returns address(0) for invalid signatures2^256-1 (< Solidity 0.6.0)π: External link
Always-on CTFs / Practice CTFs
| CTF Name | Note |
|---|---|
| Ethernaut | |
| Damn Vulnerable DeFi π | |
| fvictorio's EVM puzzles | |
| Dreamhack π | |
| Hack The Box π | |
| Capture the Ether | |
| Oak Security CosmWasm CTF | |
| Cipher Shastra π | |
| ONLYPWNER π | No solution sharing allowed |
Scheduled CTFs
Note:
| Challenge | Note, Keywords |
|---|---|
| Capture The Ether: Deploy a contract | faucet, wallet |
| Capture The Ether: Call me | contract call |
| Capture The Ether: Choose a nickname | contract call |
| Capture The Ether: Guess the number | contract call |
| Capture The Ether: Guess the secret number | keccak256 |
| Ethernaut: 0. Hello Ethernaut | contract call, ABI |
| Ethernaut: 1. Fallback | receive Ether function |
| Paradigm CTF 2021: Hello | contract call |
| 0x41414141 CTF: sanity-check | contract call |
| Paradigm CTF 2022: RANDOM | contract call |
| DownUnderCTF 2022: Solve Me | |
| LA CTF 2024: remi's-world |
| Challenge | Note, Keywords |
|---|---|
| Capture The Ether: Guess the new number | block.number, block.timestamp |
| Capture The Ether: Predict the block hash | blockhash |
| Ethernaut: 13. Gatekeeper One | msg.sender != tx.origin, gasleft().mod(8191) == 0, type conversion |
| Ethernaut: 14. Gatekeeper Two | msg.sender != tx.origin, extcodesize is 0 |
| Cipher Shastra: Minion | msg.sender != tx.origin, extcodesize is 0, block.timestamp |
| SECCON Beginners CTF 2020: C4B | block.number |
| Paradigm CTF 2021: Babysandbox | staticcall, call, delegatecall, extcodesize is 0 |
| Paradigm CTF 2021: Lockbox | ecrecover, abi.encodePacked, msg.data.length |
| EthernautDAO: 6. (No Name) | block.number, gas price war |
| fvictorio's EVM Puzzles | |
| Huff Challenge: Challenge #3 | |
| Paradigm CTF 2022: LOCKBOX2 | |
| Paradigm CTF 2022: SOURCECODE | quine |
| Numen Cyber CTF 2023: LittleMoney | function pointer |
| Numen Cyber CTF 2023: ASSLOT | staticcall that return different values |
| Paradigm CTF 2023: Black Sheep | Huff |
tx.origintx.origin refers to the address of the transaction publisher and should not be used as the address of the contract caller msg.sender.| Challenge | Note, Keywords |
|---|---|
| Ethernaut: 4. Telephone |
| Challenge | Note, Keywords |
|---|---|
| Capture The Ether: Predict the future | |
| Ethernaut: 3. Coin Flip | |
| DownUnderCTF 2022: Crypto Casino | |
| Paradigm CTF 2023: SkillBasedGame |
| Challenge | Note, Keywords |
|---|---|
| Ethernaut: 15. Naught Coin | transfer, approve, transferFrom |
| Paradigm CTF 2021: Secure | WETH |
| DeFi-Security-Summit-Stanford: VToken |
delegatecalldelegatecall is a potential source of vulnerability because the storage of the delegatecall caller contract can be overwritten by the called contract.| Challenge | Note, Keywords |
|---|---|
| Ethernaut: 6. Delegation | |
| Ethernaut: 16. Preservation | |
| Ethernaut: 24. Puzzle Wallet | proxy contract |
| Ethernaut: 25. Motorbike | proxy contract, EIP-1967: Standard Proxy Storage Slots |
| DeFi-Security-Summit-Stanford: InSecureumLenderPool | flash loan |
| QuillCTF2023: D3l3g4t3 | |
| Numen Cyber CTF 2023: Counter | writing EVM code |
delegatecalldelegatecall are executed in the context of the delegatecall caller contract.| Challenge | Note, Keywords |
|---|---|
| EthernautDAO: 3. CarMarket | Non-use of address(this) |
1 from the value of a variable of uint type when the value is 0 causes an arithmetic overflow.| Challenge | Note, Keywords |
|---|---|
| Capture The Ether: Token sale | multiplication |
| Capture The Ether: Token whale | subtraction |
| Ethernaut: 5. Token | subtraction |
.send() or .transfer()) can always be executed.selfdestruct described in the next section can be used to force such a contract to transfer Ether.| Challenge | Note, Keywords |
|---|---|
| Ethernaut: 9. King | |
| SekaiCTF 2022: Random Song | Chainlink VRF |
selfdestructselfdestruct, it can transfer its Ether to another contract or EOA, and this selfdestruct transfer can be forced even if the destination contract does not have the receive Ether function and the payable fallback function.0, it could be a bug.| Challenge | Note, Keywords |
|---|---|
| Capture The Ether: Retirement fund | integer overflow |
| Ethernaut: 7. Force |
call, and there may not be enough gas for the rest of the process.assert(false) could consume a lot of gas.| Challenge | Note, Keywords |
|---|---|
| Ethernaut: 20. Denial |
view/pure to interface and abstract contract functionsview or pure for a function and design your application under the assumption that the state will not change, it will be a bug.| Challenge | Note, Keywords |
|---|---|
| Ethernaut: 11. Elevator | interface |
| Challenge | Note, Keywords |
|---|---|
| Ethernaut: 31. Stake |
view functions that do not always return same valuesview functions can read state, they can be conditionally branched based on state and do not necessarily return the same value.| Challenge | Note, Keywords |
|---|---|
| Ethernaut: 21. Shop |
storage and memorystorage and memory are not set properly, old values may be referenced, or overwriting may not occur, resulting in vulnerability.| Challenge | Note, Keywords |
|---|---|
| N1CTF 2021: BabyDefi | Cover Protocol infinite minting + flash loan |
| Challenge | Note, Keywords |
|---|---|
| Ethernaut: 17. Recovery | loss of deployed contract address |
| Challenge | Note, Keywords |
|---|---|
| Capture The Ether: Guess the random number | |
| Ethernaut: 8. Vault | |
| Ethernaut: 12. Privacy | |
| Cipher Shastra: Sherlock | |
| 0x41414141 CTF: secure enclave | log, storage |
| EthernautDAO: 1. PrivateData |
| Challenge | Note, Keywords |
|---|---|
| darkCTF: Secret Of The Contract | |
| DownUnderCTF 2022: Secret and Ephemeral |
| Challenge | Note, Keywords |
|---|---|
| Incognito 2.0: Ez | keep in plain text |
| 0x41414141 CTF: crackme.sol | decompile |
| 0x41414141 CTF: Crypto Casino | bypass condition check |
| Paradigm CTF 2021: Babyrev | |
| 34C3 CTF: Chaingang | |
| Blaze CTF 2018: Smart? Contract | |
| DEF CON CTF Qualifier 2018: SAG? | |
| pbctf 2020: pbcoin | |
| Paradigm CTF 2022: STEALING-SATS | |
| Paradigm CTF 2022: ELECTRIC-SHEEP | |
| Paradigm CTF 2022: FUN-REVERSING-CHALLENGE | |
| DownUnderCTF 2022: EVM Vault Mechanism | |
| EKOPARTY CTF 2022: Byte | stack tracing |
| EKOPARTY CTF 2022: SmartRev | memory tracing |
| Numen Cyber CTF 2023: HEXP | previous block hash == gas price % 2^24 |
| BlazCTF 2023: Maze | |
| BlazCTF 2023: Jambo | |
| BlazCTF 2023: Ghost | |
| Curta: Lana | LLVM |
| Ethernaut: 30. HigherOrder | calldata |
| COMPFEST CTF 2025: Synthetic Manipulation |
| Challenge | Note, Keywords |
|---|---|
| SekaiCTF 2024: Zoo | Pausable |
| Challenge | Note, Keywords |
|---|---|
| Ethernaut: 18. MagicNumber | |
| Paradigm CTF 2021: Rever | Palindrome detection. In addition, the code that inverts the bytecode must also be able to detect palindromes. |
| Huff Challenge: Challenge #1 |
| Challenge | Note, Keywords |
|---|---|
| SECCON CTF 2023 Quals: Tokyo Payload | |
| Paradigm CTF 2021: JOP | |
| Real World CTF 3rd: Re:Montagy |
| Challenge | Note, Keywords |
|---|---|
| Huff Challenge: Challenge #2 |
abi.encodePacked with variable length arguments| Challenge | Note, Keywords |
|---|---|
| SEETF 2023: Operation Feathered Fortune Fiasco |
| Challenge | Note, Keywords |
|---|---|
| SEETF 2023: Murky SEEPass | array length, Merkle proof |
A contains interaction with another contract B or Ether transfer to B, the control is temporarily transferred to B.B can call A in this control, it will be a bug if the design is based on the assumption that A is not called in the middle of the execution of that function.B executes the withdraw function to withdraw Ether deposited in A, the Ether transfer triggers a control shift to B, and during the withdraw function, B executes A's withdraw function again. Even if the withdraw function is designed to prevent withdrawal of more than the limit if it is simply called twice, if the withdraw function is executed in the middle of the withdraw function, it may be designed to bypass the limit check.| Challenge | Note, Keywords |
|---|---|
| Capture The Ether: Token bank | ERC-223, tokenFallback() |
| Ethernaut: 10. Re-entrancy | call |
| Paradigm CTF 2021: Yield Aggregator | |
| HTB University CTF 2020 Quals: moneyHeist | |
| EthernautDAO: 4. VendingMachine | call |
| DeFi-Security-Summit-Stanford: InsecureDexLP | ERC-223, tokenFallback() |
| MapleCTF 2022: maplebacoin | |
| QuillCTF 2022: SafeNFT | ERC721, _safeMint() |
| Numen Cyber CTF 2023: SimpleCall | call |
| SEETF 2023: PigeonBank | |
| SekaiCTF 2023: Re-Remix | Read-Only Reentrancy |
| SECCON Beginners CTF 2024: vote4b | ERC721, _safeMint() |
| Full Weak Engineer CTF: Save the Kappa |
| Challenge | Note, Keywords |
|---|---|
| Damn Vulnerable DeFi: 1. Unstoppable | Simple flash loan with a single token. Failure to send the token directly. |
| Damn Vulnerable DeFi: 2. Naivereceiver | The flashLoan function can specify a borrower, but the receiver side does not authenticate the TX sender, so the receiver's funds can be drained as a fee |
| Damn Vulnerable DeFi: 3. Truster | The target of a call is made into the token and the token can be taken by approving it to oneself |
| Damn Vulnerable DeFi: 4. Sideentrance | Flash loan that allows each user to make a deposit and a withdrawal. The deposit can be executed at no cost at the time of the flash loan. |
| Challenge | Note, Keywords |
|---|---|
| Damn Vulnerable DeFi: 5. Therewarder | Get reward tokens based on the deposited token balance. |
| Damn Vulnerable DeFi: 6. Selfie | Get voting power in governance based on the deposited token balance. |
| Challenge | Note, Keywords |
|---|---|
| Paradigm CTF 2021: Upgrade | Bypass using the lending functionality implemented in the token |
| Challenge | Note, Keywords |
|---|---|
| Ethernaut: 22. Dex |
| Challenge | Note, Keywords |
|---|---|
| Ethernaut: 23. Dex Two |
| Challenge | Note, Keywords |
|---|---|
| Paradigm CTF 2021: Broker | Distort Uniswap prices and liquidate positions on lending platforms that reference those prices |
| Damn Vulnerable DeFi: 7. Compromised | Off-chain private key leak & oracle manipulation |
| Challenge | Note, Keywords |
|---|---|
| Damn Vulnerable DeFi: 8. Puppet | Distort the price of Uniswap V1 and leak tokens from a lending platform that references that price |
| DeFi-Security-Summit-Stanford: BorrowSystemInsecureOracle | lending protocol |
A and buy B, the attacker can put in a transaction to sell A and buy B before the transaction, and later put in a transaction to sell the same amount of B and buy A, thereby ultimately increasing the amount of A at a profit.| Challenge | Note, Keywords |
|---|---|
| Paradigm CTF 2021: Farmer | Sandwich the trade from COMP to WETH to DAI |
| Challenge | Note, Keywords |
|---|---|
| Capture The Ether: Account Takeover | |
| Paradigm CTF 2021: Babycrypto | |
| MetaTrust CTF: ECDSA |
(v, r, s), there exists another valid signature (v', r, -s mod n) for the same message.| Challenge | Note, Keywords |
|---|---|
| SmileyCTF: MultisigWallet | ECDSA, signature malleability, secp256k1 |
| COMPFEST CTF 2025: snake_inception | Vyper |
| Challenge | Note, Keywords |
|---|---|
| Capture The Ether: Fuzzy identity | 28 bits, CREATE2 |
| Numen Cyber CTF 2023: Exist | 16 bits |
keccak256 hash, and the public key cannot be recovered from the address.[nonce, gas_price, gas, to, value, data, chain_id, 0, 0] and the signature (v,r,s).| Challenge | Note, Keywords |
|---|---|
| Capture The Ether: Public Key | RLP, ECDSA |
ecrecover returns address(0) for invalid signaturesecrecover precompile returns address(0) when the signature is invalid or malformed.ecrecover.| Challenge | Note, Keywords |
|---|---|
| SekaiCTF 2024: Play to Earn | Burn |
| Challenge | Note, Keywords |
|---|---|
| 0x41414141 CTF: Rich Club | DEX, flash loan |
transfer the ERC-20 token to get the ERC-20 token.permit and transferFrom if the token is EIP-2612 permit friendly.| Challenge | Note, Keywords |
|---|---|
| EthernautDAO: 5. EthernautDaoToken |
| Challenge | Note, Keywords |
|---|---|
| Paradigm CTF 2022: MERKLEDROP |
| Challenge | Note, Keywords |
|---|---|
| Paradigm CTF 2022: VANITY |
| Challenge | Note, Keywords |
|---|---|
| Ethernaut: 27. Good Samaritan |
| Challenge | Note, Keywords |
|---|---|
| Paradigm CTF 2022: TRAPDOOOR | |
| Paradigm CTF 2022: TRAPDOOOOR |
| Challenge | Note, Keywords |
|---|---|
| DownUnderCTF 2022: Private Log | |
| DiceCTF 2024: Floordrop | Geth |
| Challenge | Note, Keywords |
|---|---|
| HITCON CTF 2025: Maximal Extractable Vuln | |
| COMPFEST CTF 2025: snake_inception | Vyper |
| Challenge | Note, Keywords |
|---|---|
| 0CTF 2022: TCTF NFT Market | |
| Numen Cyber CTF 2023: Wallet | illegal v in ecrecover |
Foo storage foo;, the local variable foo points to slot 0.| Challenge | Note, Keywords |
|---|---|
| Capture The Ether: Donation |
2^256-1 (< Solidity 0.6.0)2^256-1.length property has been read-only since v0.6.0.| Challenge | Note, Keywords |
|---|---|
| Capture The Ether: Mapping | |
| Ethernaut: 19. Alien Codex | |
| Paradigm CTF 2021: Bank |
constructor keyword must be used.| Challenge | Note, Keywords |
|---|---|
| Capture The Ether: Assume ownership | |
| Ethernaut: 2. Fallout |
| Challenge | Note, Keywords |
|---|---|
| Capture The Ether: Fifty years | |
| deleted |
| Challenge | Note, Keywords |
|---|---|
| Paradigm CTF 2021: Bouncer | The funds required for batch processing are the same as for single processing. |
| Paradigm CTF 2021: Market | Make the value of one field be recognized as the value of another field by using key misalignment in the Eternal Storage pattern. |
| EthernautDAO: 2. WalletLibrary | m and n of m-of-n multisig wallet can be changed. |
| Paradigm CTF 2022: RESCUE | |
| Paradigm CTF 2022: JUST-IN-TIME | |
| Paradigm CTF 2022: 0XMONACO | |
| BalsnCTF 2022: NFT Marketplace | initialize, _safeTransferFrom, CREATE2 |
| Numen Cyber CTF 2023: LenderPool | flash loan |
| Numen Cyber CTF 2023: GOATFinance | check sum address |
| SEETF 2023: Pigeon Vault | EIP-2535: Diamonds, Multi-Facet Proxy |
| corCTF 2023: baby-wallet | missing from != to check |
Note
| Challenge | Note, Keywords |
|---|---|
| TsukuCTF 2021: genesis | genesis block |
| WORMCON 0x01: What's My Wallet Address | Bitcoin address, RIPEMD-160 |
| Challenge | Note, Keywords |
|---|---|
| darkCTF: Duplicacy Within |
| Challenge | Note, Keywords |
|---|---|
| Dragon CTF 2020: Bit Flip 2 | 64-bit PoW |
| Challenge | Note, Keywords |
|---|---|
| ALLES! CTF 2021: Secret Store | solana,spl-token |
| ALLES! CTF 2021: Legit Bank | |
| ALLES! CTF 2021: Bugchain | |
| ALLES! CTF 2021: eBPF | reversing eBPF |
| Paradigm CTF 2022: OTTERWORLD | |
| Paradigm CTF 2022: OTTERSWAP | |
| Paradigm CTF 2022: POOL | |
| Paradigm CTF 2022: SOLHANA-1 | |
| Paradigm CTF 2022: SOLHANA-2 | |
| Paradigm CTF 2022: SOLHANA-3 | |
| corCTF 2023: tribunal | |
| SekaiCTF 2023: The Bidding | |
| SekaiCTF 2023: Play for Free |
| Challenge | Note, Keywords |
|---|---|
| Oak Security CosmWasm CTF: 1. Mjolnir | logic bug |
| Oak Security CosmWasm CTF: 2. Gungnir | integer overflow |
| Oak Security CosmWasm CTF: 3. Laevateinn | address validation, uppercase |
| Oak Security CosmWasm CTF: 4. Gram | invariant, rounding error |
| Oak Security CosmWasm CTF: 5. Draupnir | missing return |
| Oak Security CosmWasm CTF: 6. Hofund | flash loan, governance |
| Oak Security CosmWasm CTF: 7. Tyrfing | storage collision |
| Oak Security CosmWasm CTF: 8. Gjallarhorn | |
| Oak Security CosmWasm CTF: 9. Brisingamen | |
| Oak Security CosmWasm CTF: 10. Mistilteinn |
| Challenge | Note, Keywords |
|---|---|
| RealWorld CTF 3rd Finals: Billboard |
| Challenge | Note, Keywords |
|---|---|
| Numen Cyber CTF 2023: Move to Checkin | contract call in Sui |
| Numen Cyber CTF 2023: ChatGPT tell me where is the vulnerability | OSINT |
| Numen Cyber CTF 2023: Move to Crackme | reversing Move code and Linux executable |
| justCTF 2024 teaser: The Otter Scrolls | |
| justCTF 2024 teaser: Dark BrOTTERhood | |
| justCTF 2024 teaser: World of Ottercraft |
| Challenge | Note, Keywords |
|---|---|
| Paradigm CTF 2022: RIDDLE-OF-THE-SPHINX | contract call |
| Paradigm CTF 2022: CAIRO-PROXY | integer overflow |
| Paradigm CTF 2022: CAIRO-AUCTION | Uint256 |
| BalsnCTF 2022: Cairo Reverse | reversing |
| Challenge | Note, Keywords |
|---|---|
| TsukuCTF 2021: InterPlanetary Protocol | IPFS address, Base32 in lowercase |
2,030 followers Β· starred Aug 2023
128 followers Β· starred Aug 2022
51 followers Β· starred Nov 2022
34 followers Β· starred Jan 2023