A base docker for CTF eth challenges with geth, eth-faucet and challenge web server.
273
An all-in-one web docker for building ethereum contract challenges in capture the flag (CTF).
Use the following command to run a quick demo:
docker run -it -p 20000:80 -e FLAG=slctf{flag} vvbbnn00/eth-challenge-all-in-one-base:beta
Then you can access the challenge at http://localhost:20000/challenge.
To get eth from faucet, you can visit http://localhost:20000/.
The JSON RPC API is available at http://localhost:20000/jsonrpc.
Mention that the api is not compatible with Remix!
The build.py script will compile the contracts and generate the challenge for you.
Before building the image, please run it first.
python build.py
If you miss the requirements, you can install them by running:
pip install -r requirements.txt
In the challenge dictionary, you can modify the challenges.
contracts directory is where you should code the challenge contract, specifically, you need to implement isSolved() function to check if it is solved.challenge.yml file is the config for specifying challenge description, flag, contract name, constructor, gas limit etc. Refer to the comments in this file for more details.You can build multi-contract challenges by deploying contracts in a setup contract's constructor
Use the following command to build a docker image:
cd example-deployment/
docker image build -t <your-challenge-name> .
Then you can run the docker image:
docker run -p port:80 --env FLAG=<your-flag> <your-challenge-name>
Many thanks to JetBrains for providing their excellent tools and an open source license to support the development of this project.
This project is developed based on eth-challenge-base, thanks a lot.
Distributed under the MIT License. See LICENSE for more information.
Content type
Image
Digest
sha256:000305da8…
Size
221 MB
Last updated
over 3 years ago
docker pull vvbbnn00/eth-challenge-all-in-one-base:beta