This repository houses my personal solutions to RingZer0's programming challenges.
It is strongly encouraged that you do not view my solutions unless you've already solved the relevant problems yourself.
Each challenge consists of some (typically non-static) dataset that must be
processed according to the problem statement and submitted back to the specified
URI via a GET request. Assuming a correct and timely submission, a level
unlock flag is injected into the server's response which must then be extracted
and POST-ed back to the challenge endpoint in question.
Most challenges have a dataset/solution TTL of a few seconds, so performance isn't that important.
Authentication is cookie-based. The current workflow of getting and storing session cookies is as follows:
- Manually log in via the site's
/loginendpoint, - Execute
document.cookievia devtools, - Save the
PHPSESSIDcookie in/session.json.
Given the relatively low number of published programming challenges at the time of this writing, automation of the above steps does not seem warranted.
- Linux
- Node.js >= v6.2.2
- Python >= v3.4.3
- GCC >= v4.8.4
The /session.json file changes relatively often. In order to not pollute the
commit log, set the assume-unchanged bit on it after cloning:
$ git update-index --assume-unchanged session.json
All original code is released under the MIT license, unless otherwise specified.
All referenced product names, trademarks, logos, and images are property of their respective owners.