CTF/picoCTF

echo back

pu1et 2019. 1. 11. 21:12





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