SwampCTF Solidity Challenges

Challenge 1 Challenge 2 Challenge 3 Challenge 4 Challenge 5

What is this?

This is a site for deploying and checking completion of Solidity challenges for SwampCTF. We need a way to securely verify competitors have completed a challenge. Best way to see if competitors were able to understand and execute an exploit for the challenge is to have them exploit an actual live contract on the test network.

What do I need to play?

Create an Ethereum account using the MetaMask extension. Change your network to Ropsten Test Network. Copy the challenge contract code into a file on Remix (or any tool which can interact with the Ropsten test net) and paste the deployed contract's address into the At Address space in the Run tab. You can interact with the contract through Remix. Make sure your environment in Remix is Inject Web3 on Ropsten and you've set the correct compiler version listed at the top of the contract next to pragma solidity. Get Ether at Ropsten Faucet or MetaMask Faucet.

How do I play?

Navigate to the challenge page and click Deploy. Once the transaction has completed and the contract is deployed on the test net, the address will be returned. Interact with the on-chain contract and complete the challenge. Each challenge goal is defined in the isComplete() function of the contract. Click the Check Solution button to verify you've completed the challenge, and once the verification has completed, click Get Flag to retrieve the flag to submit to CTFd.