Exemple #1
0
def encryption_oracle(your_string):
    """Encryption oracle with text input."""
    plaintext = "comment1=cooking%20MCs;userdata=" + your_string
    plaintext += ";comment2=%20like%20a%20pound%20of%20bacon"
    plaintext = plaintext.replace(";", "").replace("=", "").encode("utf-8")
    ciphertext = CBC(KEY, IV).encrypt(pkcs7(plaintext, 16))
    return ciphertext
Exemple #2
0
def encryption_oracle(your_string):
    """Encryption oracle with text input."""
    unknown_string = b64decode(
        """Um9sbGluJyBpbiBteSA1LjAKV2l0aCBteSByYWctdG9wIGRvd24gc28gbXkgaGFpci
    BjYW4gYmxvdwpUaGUgZ2lybGllcyBvbiBzdGFuZGJ5IHdhdmluZyBqdXN0IHRvIHNheSBoaQpEaWQgeW91IHN0b3A/IE5vL
    CBJIGp1c3QgZHJvdmUgYnkK""")
    plaintext = your_string + unknown_string
    plaintext = pkcs7(plaintext, 16)
    ciphertext = ECB(KEY).encrypt(plaintext)
    return ciphertext
Exemple #3
0
def encryption_oracle(plaintext):
    """Encryption oracle with text input."""
    keysize = 16
    plaintext = generate_bytes(choice(range(5, 11))) + plaintext
    plaintext += generate_bytes(choice(range(5, 11)))
    plaintext = pkcs7(plaintext, keysize)
    key = generate_bytes(keysize)

    method = choice(range(0, 2))
    if method == 0:
        ciphertext = ECB(key).encrypt(plaintext)
    else:
        ciphertext = CBC(key, generate_bytes(keysize)).encrypt(plaintext)

    return ciphertext
Exemple #4
0
def padding_oracle():
    """Padding oracle."""
    plaintexts = [
        "MDAwMDAwTm93IHRoYXQgdGhlIHBhcnR5IGlzIGp1bXBpbmc=",
        "MDAwMDAxV2l0aCB0aGUgYmFzcyBraWNrZWQgaW4gYW5kIHRoZSBWZWdhJ3MgYXJlIHB1bXBpbic=",
        "MDAwMDAyUXVpY2sgdG8gdGhlIHBvaW50LCB0byB0aGUgcG9pbnQsIG5vIGZha2luZw==",
        "MDAwMDAzQ29va2luZyBNQydzIGxpa2UgYSBwb3VuZCBvZiBiYWNvbg==",
        "MDAwMDA0QnVybmluZyAnZW0sIGlmIHlvdSBhaW4ndCBxdWljayBhbmQgbmltYmxl",
        "MDAwMDA1SSBnbyBjcmF6eSB3aGVuIEkgaGVhciBhIGN5bWJhbA==",
        "MDAwMDA2QW5kIGEgaGlnaCBoYXQgd2l0aCBhIHNvdXBlZCB1cCB0ZW1wbw==",
        "MDAwMDA3SSdtIG9uIGEgcm9sbCwgaXQncyB0aW1lIHRvIGdvIHNvbG8=",
        "MDAwMDA4b2xsaW4nIGluIG15IGZpdmUgcG9pbnQgb2g=",
        "MDAwMDA5aXRoIG15IHJhZy10b3AgZG93biBzbyBteSBoYWlyIGNhbiBibG93"
    ]
    plaintext = plaintexts[choice(range(len(plaintexts)))].encode("utf-8")
    return CBC(KEY, IV).encrypt(pkcs7(plaintext, 16))
Exemple #5
0
def encryption_oracle(email):
    """Encryption oracle with email input."""
    plaintext = profile_for(email)
    plaintext = pkcs7(plaintext, 16)
    ciphertext = ECB(KEY).encrypt(plaintext)
    return ciphertext