Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ss.week8;
- /* Importeer de Base64 codec */
- import org.apache.commons.codec.binary.Base64;
- /**
- * Manipuleer een cookie zodat deze adminrechten toekent aan non-admins.
- * @author Christian Versloot
- *
- */
- class BadCookie {
- /**
- * Voer een manipulatie uit.
- * @param args - runtime args
- */
- public static void main(String[] args) {
- /* Leuk gebrabbel */
- System.out.println("Cookie-manipulator is being run");
- System.out.println("[Starting]");
- System.out.println("Busy...........................................................");
- /* Genereer een cookie */
- BadCookieCrypto cookie = new BadCookieCrypto();
- String newCookie = cookie.createCookie();
- System.out.println("Generated cookie with contents " + newCookie);
- System.out.println("Busy...........................................................");
- /* Decode de Base64 string naar Bytes */
- byte[] cookieBytes = Base64.decodeBase64(newCookie);
- /* Bepaal de index van de laatste byte in de Byte array */
- int laatsteByte = cookieBytes.length-1;
- /* Bepaal de key-byte */
- byte key = (byte) (cookieBytes[laatsteByte] ^ (byte)'N');
- System.out.println("Replacing last byte " + cookieBytes[laatsteByte] + " with key " + key);
- System.out.println("Busy...........................................................");
- /* Bepaal de nieuwe Byte-array d.m.v. de key */
- cookieBytes[laatsteByte] = (byte)((byte)'Y' ^ key);
- /* Encode de gemanipuleerde cookie */
- newCookie = Base64.encodeBase64String(cookieBytes);
- System.out.println("The new manipulated cookie is " + newCookie);
- System.out.println("Busy...........................................................");
- System.out.println("[Final check] The non-admin is now admin: " + cookie.isAdmin(newCookie));
- System.out.println("[Finished]");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement