Exemplo n.º 1
0
def decryptParamsAndCheckAdmin(encryptedParams):
    cipher = challenge10.CBC(AES.new(key, AES.MODE_ECB), key)
    paddedParams = cipher.decrypt(encryptedParams)
    params = challenge15.unpadPKCS7(paddedParams)
    if any([x > 127 for x in params]):
        raise ValueError(params)
    return params.find(b';admin=true;') != -1
Exemplo n.º 2
0
def decryptParamsAndCheckAdmin(encryptedParams):
    cipher = challenge10.CBC(AES.new(key, AES.MODE_ECB), key)
    paddedParams = cipher.decrypt(encryptedParams)
    params = challenge15.unpadPKCS7(paddedParams)
    if any([x > 127 for x in params]):
        raise ValueError(params)
    return params.find(b';admin=true;') != -1
Exemplo n.º 3
0
def padding_oracle(iv, s):
    cipher = challenge10.CBC(AES.new(key, AES.MODE_ECB), iv)
    paddedT = cipher.decrypt(s)
    try:
        t = challenge15.unpadPKCS7(paddedT)
    except ValueError:
        return False
    return True
Exemplo n.º 4
0
def decryptParamsAndCheckAdmin(encryptedParams):
    cipher = challenge10.CBC(AES.new(key, AES.MODE_ECB), iv)
    paddedParams = cipher.decrypt(encryptedParams)
    params = challenge15.unpadPKCS7(paddedParams)
    return params.find(b';admin=true;') != -1
Exemplo n.º 5
0
def decipher(iv, s, padding_oracle):
    knownP = b''
    for i in range(len(s) // 16):
        st = s if i == 0 else s[:-i * 16]
        knownP = decipher_last_block(iv, st, padding_oracle) + knownP
    return challenge15.unpadPKCS7(knownP)
Exemplo n.º 6
0
def decryptParamsAndCheckAdmin(encryptedParams):
    cipher = challenge18.CTR(AES.new(key, AES.MODE_ECB), nonce)
    paddedParams = cipher.decrypt(encryptedParams)
    params = challenge15.unpadPKCS7(paddedParams)
    return params.find(b';admin=true;') != -1
Exemplo n.º 7
0
 def decrypt(self, key, iv, encryptedMessage):
     cipher = AES.new(key, AES.MODE_CBC, iv)
     return challenge15.unpadPKCS7(cipher.decrypt(encryptedMessage)).decode('ascii')