2019. 4. 10. 22:47, 워게임/root-me.org
맨 처음에는 뭐 어쩌란건가 싶었는데, 인위적으로 키의 앞부분이 일치할 경우 비교 과정을 다소 느리게 만들어놨습니다. 이를 이용해 timing attack을 하면 됩니다.
from pwn import *
import time, string
st = time.time()
p = remote("challenge01.root-me.org", 51015)
print(p.recvline())
def timing_test(s):
st = time.time()
p.sendline(s)
p.recvline()
return time.time()-st
key = ''
for i in range(12):
for c in string.printable:
print(c)
if timing_test(key+c) >= 0.5*len(key)+0.5:
if timing_test(key+c) >= 0.5*len(key)+0.5:
if timing_test(key+c) >= 0.5*len(key)+0.5:
key += c
break
print(key)
'워게임 > root-me.org' 카테고리의 다른 글
[Cryptanalysis] Initialisation Vector (0) | 2019.04.23 |
---|---|
[Cryptanalysis] RSA - Decipher Oracle (0) | 2019.04.10 |
[Cryptanalysis] RSA - Factorisation (0) | 2019.04.10 |
[Cryptanalysis] LFSR - Known plaintext (0) | 2019.04.10 |
[Cryptanalysis] AES - ECB (0) | 2019.04.04 |
[Cryptanalysis] AES - CBC - Bit-Flipping Attack (0) | 2019.03.19 |
Comments