Skip to content

Latest commit

 

History

History
15 lines (13 loc) · 4.4 KB

QuillCTF.md

File metadata and controls

15 lines (13 loc) · 4.4 KB
Contract Done Exploit PoC Description
01 RoadClosed RoadClosedExploit - Use of extcodesize to check if an address is an EOA
- Lack of access control for some critical methods (e.g addToWhitelist)
02 Confidential ConfidentialExploit - Read private variables from storage
03 VIPBank VIPBankExploit - Wrong check of parameter to prevent users from withdrawing too many ethers at a time which leads to funds locked forever in the contract.
04 SafeNFT SafeNFTExploit - OpenZeppelin's ERC721 implementation of safeMint is not safe and performs an external call to the receiver address.
05 Delegate DelegateExploit - delegatecall can override variables of the calling contract.
06 CollatzPuzzle CollatzPuzzleExploit - Use huff to heavily optimize the contract by relying on opcodes directly.
07 TrueXOR TrueXORExploit - Use the amount of gas left (with gasleft()) to return different values using a view function that takes no parameters
- Use delegatecall to keep the context of the main contract (especially, msg.sender, msg.value and address(this)).
20 VoteToken VoteTokenExploit (*) - The contract doesn't update its state when users transfer tokens
21 PrivateClub PrivateClubExploit (*) - Not enough check of the parameters (e.g. becomeMember)
- Too much power given to the contract owner

(*) Detailed reports have been written for these exploits: VoteToken and PrivateClub.