티스토리 뷰
Heap exploit task.
House of Force 에 관한 문제 아래 링크 포스트를 쓴 계기가 된 문제이다.
http://err0rless313.tistory.com/entry/The-House-of-Force-kor
BCTF 당시 푼 문제가 아니라서 LIBC파일을 줬는지 모르겠으나 github에 같이 있는걸 보면 준듯 하다.
그래서 따로 LIBC를 leak해서 libc version을 구하진 않았고 local환경의 LIBC로 처리했다.
일단 House of Force에 관한 문제이기 때문에 Heap의 위치, 그리고 Top chunk에 0xffffffff을 덮어 씌워야 했고,
처음 받는 name, org, host에 각각 "A" * 64, "A" * 64, "\xff\xff\xff\xff"을 넣어주면 strcpy의 특성상 null을 만날때 까지 복사를 해주기 때문에
(이건 직접 STACK을 확인하는게 좋다.) name이 있는 위치를 얻을 수 있고 (그 값에 0xd8을 더하면 Top chunk이다.) Top chunk에
0xffffffff을 덮어씌울 수 있다.
malloc은 new note에서 malloc(user_input + 4); 만큼 값을 넣을 수 있기 때문에 House of Force를 이용할 수 있는 조건은 모두 갖추어져 있다.
위 절차를 모두 거쳐 atoi@got를 printf.plt로 덮어주고 printf("%31$p"); 를 이용하여 __libc_start_main + 222의 주소를 구한 후에
edit note로 다시 atoi@got를 system@libc로 덮어주면 쉘을 획득 할 수 있다.
'Pwnable > CTF' 카테고리의 다른 글
Boston Key party 2016 CookBook (0) | 2016.04.08 |
---|---|
Holyshield 2016 Exploit300 VOD exp only (0) | 2016.01.17 |
32c3 CTF 2015 teufel (3) | 2015.12.31 |
32c3 CTF readme (0) | 2015.12.30 |
SECCON 2015 Quals FSB:TreeWalker (0) | 2015.12.09 |