wooly-vault/README.md

72 lines
1.9 KiB
Markdown
Raw Normal View History

2024-09-05 15:49:56 +02:00
# Wooly-Vault
2024-09-06 20:03:31 +02:00
A few small challenges for ⚒️ Rust Hackers 🦀
## Configuration
Each challenge requires some basic information to host:
* secret - a string that if found signifies that the challenge was solved
* addr - the network adress plus port the challenge should run on
* verbosity - how verbose the logging should be
* challenge - which challenge to host (there are a few)
The secret cannot be inputted with a command line argument, because the arguments can often be
seen in the process view. You may either specify a secret in the 'WOOLY_SECRET' environment
variable or input it interactively on start.
## Challenges
There are a number of challenges:
1. Connect by TCP
2. Connect by TCP and send a special u16
3. Connect by TCP, get sent dynamic math questions, solve them fast enough
2024-09-06 20:04:27 +02:00
## Solution
2024-09-07 15:23:32 +02:00
Solutions for some challenges can be found in [solutions](./solutions/). Don't spoil the
2024-09-06 20:04:27 +02:00
challenge for yourself.
2024-09-07 15:23:32 +02:00
## Hosting
As this is a challenge meant for hackers, it is advisable not to run this on
a system that should not be hacked. Some of the later challenges will possibly
provide remote code execution through things like SQL-injection. For this reason,
you should probably use some kind of VM, or at least a container to host this.
### Docker
Wooly-Vault has a [Dockerfile](./Dockerfile) and a
[docker compose specification](./docker-compose.yml), so you can run it
easily in a docker container:
```bash
WOOLY_SECRET=my_flag docker compose up
```
To configure what challenge is served and on what networking adress, tweak
[docker-compose.yml](./docker-compose.yml).
### The regular way
You can just `cargo run -r` it, or compile with `cargo build -r` and then
execute the executable.
```bash
$ WOOLY_SECRET=my_flag wooly-vault 3 127.0.0.1:1337
$ WOOLY_SECRET=my_flag cargo run -r -- 3 127.0.0.1:1337
```
## Naming
Q: Why is Wooly-Vault wooly?
A: I like sheeps. I'm literally PlexSheep.