티스토리 뷰

Pwnable/CTF

BCTF 2016 bcloud

err0rless313 2016. 4. 5. 21:32

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
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함