목록문제 풀기 위한 배경지식 (3)
Pwnstar
진짜 상당히 오랜만에 블로그에 글을 쓰는데, 올해는 씨텦은 거의 안하고 버그헌팅 공부만 주구장창 하는 중이다. 근데 뭐 딱히 블로그에 글 쓸 거리도 없고 해서 잘 안쓰고 있었는데, winafl을 설치하다가 에러가 너무 많이 떠서 에휴.....이거만 잡고있으면 안되겠다 싶어서 지금 뭐...afl을 윈도우에서 쓰려고는 하는데, afl이 뭔지도 잘 모르고, 공부도 할겸, linux에서도 afl 설치를 좀 해보자 해서 linux에서 설치하는 과정을 올려보려고 한다. 설치 과정이 그리 어렵진 않다. 그냥 뭐 설치 안되어 있는것들 설치해주고, 하면 되는데, 그 과정이 좀 귀찮을 뿐...(그래도 winafl보다는 훨씬 들하다.) 먼저 afl fuzzer가 무엇인지부터 알아보자. American Fuzzy Loop의 ..
소위 ghost(고스트) 취약점이라고 불리는 cve에 대해서 설명해보려고 한다. pwnable.kr의 nuclear문제에서 쓰인 cve인데, 문제를 풀 때 필요한 지식이어서 간단하게라도 짚고 넘어가려고 한다. ubuntu 12.04에서 glibc-2.17 이전 버전에서 발생한다고 하는데, 어떤 취약점인지 파헤쳐보자. 취약한 함수의 이름은 __nss_hostname_digits_dots()이고, glibc의 nss/getXXXbyYY.c에 의해서 호출된다. #ifdef HANDLE_DIGITS_DOTS에 의해 묶여서 다음 소스코드에서만 정의되어있다. inet/gethstbynm.c inet/gethstbynm2.c inet/gethstbynm_r.c inet/gethstbynm2_r.c nscd/geths..
hackctf의 childheap문제를 풀던 중 libc leak을 할 방법을 찾다가 처음 보는 방법이 있어서 자세히 공부를 해 보려고 한다. IO_FILE 구조체의 구조부터 한번 살펴보자 code.woboq.org/userspace/glibc/libio/bits/types/struct_FILE.h.html struct_FILE.h source code [glibc/libio/bits/types/struct_FILE.h] - Woboq Code Browser 106#define __putc_unlocked_body(_ch, _fp) \ code.woboq.org 여기에 잘 나와있는데, 구조체 중 보아야할 곳은 두 개이다. struct _IO_FILE { int _flags; /* High-order wo..