Documentation of the Training Source-Code
This project is written in python. The Framework flask is used for the web application. The following part will describe how the code is structred.
main.py
This file contains the basic server functionality of the application. Every resource and the requests to this resource is handled in this file
Available resources are:
/ # or /dashboard to access the challange description
/po1 # First Challange - simple CBC Challange where the attacker must decrypt the cookie via a simple CBC Padding Oracle
/po2 # Second Challange - more advanced CBC Challange where the attacker must decrypt the cookie and then change some values.
/po3 # Third Challange - First RSA Padding Oracle Attack, implements a PKCS #1 v1.5 cookie encryption
/po4 # Fourth Challange - Timing is everything... CBC Padding Oracle Attack via Timing Side Channel. Timing is increased using sleep() to simplify the attack.
crypto.py
This file implements every cryptographic function used for the challanges.