echo back
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']