Hack/Pwnable
-
Return To Libc 원리Hack/Pwnable 2015. 6. 11. 23:10
RTL은 Buf + SFP + system() + "AAAA" + "/bin/sh" 이렇게 공격을 한다. 공격하는 입장에서도 해당 원리를 이해하지 못하는 분이 많다. buf를 채워주고 sfp 4바이트까지 채워준후, 시스템함수 + "AAAA" + /bin/sh주소를 넣어주는데, AAAA를 넣는이유를 간단하게 설명하겠다. system()함수는 인자를 ebp + 8의 인자를 인식하기 때문에 system함수뒤에 4바이트값을 넣어준다. 결국에 system함수의 인자는 /bin/sh를 가리키게된다.
-
GOT OverwriteHack/Pwnable 2015. 6. 4. 23:58
GOT Overwrite는 간단히 말하자면 printf("/bin/sh");가 있다면 printf를 system으로바꿔 술을 실행시키는 기법이다. 필요한것은 3개이다. .plt주소, printf@got 주소, system주소 간단하게 코드를 짜자. 이 프로그램을 gcc로 컴파일해주자. gcc -o filename filename.c -z execstack -fno-stack-protector -m32 32비트로, nx bit와 카나리를 없애주는 옵션이다. got overwrite를 해보자. 우선 readelf로 plt주소를 구해보자. plt주소는 080482e0이다. printf의 got주소를 찾자 disas main을한후, printf@plt를 call하는 부분을찾자 80482f0을 call하는데 해당..