point
1. FSB(Format String Bug)
2. GOT overwrite
* FSB 자세한 정리 : https://pu1et-panggg.tistory.com/22
어디부터 쓸 수 있는지 확인
총 크게 두 가지 방법이 있다.
1. got주소 알아내서 FSP로 got overwrite
printf@got <- system@plt
puts@got <- vuln주소(0x80485ab)
gdb elfsymbol + readelf -s echoback
printf@got : 0x804a010
puts@got : 0x804a01c
system@plt : 0x8048460
vuln : 0x80485ab
1-1. 주소의 하위 2byte 후 상위 2byte overwrite
ex) 0x804a010일 경우, 0xa010 후 0x804 overwrite
1-2. 주소의 상위 2byte 후 하위 2byte overwrite
ex) 0x804a010일 경우, 0x804 후 0xa010 overwrite
2. ELF사용해서 FSP로 got overwrite
binary = ELF('./echoback')
plt 주소는 binary.symbols['plt.system']
got 주소는 binary.symbols['got.puts']
'CTF > picoCTF' 카테고리의 다른 글
rop chain (0) | 2019.01.11 |
---|---|
buffer overflow 3 (0) | 2018.12.29 |
authenticate (0) | 2018.12.28 |
keygen-me1 (0) | 2018.11.18 |
assembly4 (0) | 2018.11.18 |