https://github.com/gaganpreet/stripe-ctf3-level4
My solution to Stripe CTF Level 4
https://github.com/gaganpreet/stripe-ctf3-level4
Last synced: 9 months ago
JSON representation
My solution to Stripe CTF Level 4
- Host: GitHub
- URL: https://github.com/gaganpreet/stripe-ctf3-level4
- Owner: gaganpreet
- Created: 2014-01-30T21:34:49.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2014-01-30T21:44:35.000Z (almost 12 years ago)
- Last Synced: 2025-01-11T10:38:19.586Z (10 months ago)
- Language: Go
- Size: 355 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
My solution to the Level 4 of Stripe CTF 3.
This is a completely distributed solution implemented using goraft (although by the end I had hardcoded some stuff like [column count](https://github.com/gaganpreet/stripe-ctf3-level4/blob/master/minesql/sql.go#L60-65) and [strings for compression](https://github.com/gaganpreet/stripe-ctf3-level4/blob/master/util/util.go#L56-85))
Best score: 2723
Rank: 25
# SQLCluster
SQLCluster makes your SQLite highly-available.
## Getting started
To run this level, you'll need a working Go installation. If you don't
have one yet, it's quite easy to obtain. Just grab the appropriate
installer from:
https://code.google.com/p/go/downloads/list
Then set your GOPATH environment variable:
http://golang.org/doc/code.html#GOPATH
It'll probably be convenient to check this code out into
$GOPATH/src/stripe-ctf.com/sqlcluster (that way, `go build` will know
how to compile it without help). However, you can use the provided
`build.sh` regardless of where you happened to check this level out.
## Building and running
Run `./build.sh` to build the SQLCluster binary.
As always, you can run test cases via `test/harness`. This will
automatically fetch and compile Octopus, download your test cases, and
score your level for you.
Octopus will print out your score, together with how it arrived at
said score.
## Protocol
SQCluster communicates with the outside world over HTTP. The public
interface is simple:
POST /sql:
input: A raw SQL body
output: A message with the form "SequenceNumber: $n", followed
by the output of that SQL command.
Run `./build.sh` to build SQLCluster and have it print out some
example usage (including `curl`s you can run locally).
## Supported platforms
SQLCluster has been tested on Mac OSX and Linux. It may work on other
platforms, but we make no promises. If it's not working for you, see
https://stripe-ctf.com/about#development for advice on getting a
development environment similar to our own.