Ejemplo n.º 1
0
def main():
        if len(sys.argv) < 3:
                key = SAMPLE_KEY
                filename = SAMPLE_FILENAME
        else:
                key = sys.argv[1]
                filename = sys.argv[2]

        f = open(filename, "r")
        ciphertext = ""
        for line in f:
                ciphertext += common.b64decode(line.rstrip())

        print common.aes_cbc_decrypt(ciphertext, key, "\x00" * 16)
        
        
        if False:
                for _ in range(1000):
                        key = common.randbytes(16)
                        pt = common.randbytes(random.randint(1, 64))
                        iv = common.randbytes(16)

                        AFTER = binascii.hexlify(common.aes_cbc_decrypt(common.aes_cbc_encrypt(pt, key, iv), key, iv))

                        PT = binascii.hexlify(common.pkcs7_pad(pt, len(pt) + (16 - (len(pt) % 16))))

                        print PT == AFTER
def decryption_oracle(ct, IV):
        global key

        try:
                pt = common.aes_cbc_decrypt(ct, key, IV)
                unpadpt = common.unpad(common.aes_cbc_decrypt(ct, key, IV), 16)
        except common.InvalidPaddingError as e:
                return False

        # print hex(ord(pt[-1]))
        return True
def decryption_oracle(ct, IV):
    global key

    try:
        pt = common.aes_cbc_decrypt(ct, key, IV)
        unpadpt = common.unpad(common.aes_cbc_decrypt(ct, key, IV), 16)
    except common.InvalidPaddingError as e:
        return False

    # print hex(ord(pt[-1]))
    return True
def decryption_oracle(ct):
        global key
        global IV

        try:
                t = common.aes_cbc_decrypt(ct, key, IV).index(";admin=true;")
        except:
                return False

        return True
Ejemplo n.º 5
0
def decryption_oracle(ct):
    global key
    global IV

    try:
        t = common.aes_cbc_decrypt(ct, key, IV).index(";admin=true;")
    except:
        return False

    return True