본문 바로가기

system

2017 0ctf babyheap babyheap 2017 0ctf babyheapalloc 사이즈를 4096 이하 맘대로 정할 수 있다. calloc으로 할당시 할당한 데이터 공간을 모두 0으로 초기화 시키므로 주의! 원하는 heap에 원하는 size만큼 정보를 넣을 수 있다. 아주 큰 heap overflow가 터진다. 이렇게 자유분방한 문제일수록 아직은 바로 딱 익스가 생각이 안나네유ㅜㅠ free에서 heap free 가능, dump에서 leak이 가능하다. 힙 내에 overlapping chunk를 만든 후 heap overflow를 내서 calloc으로 초기화된 chunk의 header를 다시 써준 다음 free시키고 main arena를 leak하면 된다.그 다음 unlink는 unsafe가 안되니 패스하고 house of s.. 더보기
pwnable.tw applestore 보호되어 있는 글입니다. 더보기
pwnable.tw dubblesort 보호되어 있는 글입니다. 더보기
2017 34c3 simpleGC simpleGC 2017 34c3 simpleGCtcache를 익히고 처음 풀어본 문젠데 정말 힘들게 풀었다.. 머리 터지는줄,,앞으로 이런 복잡한 바이너리는 struct와 주석, rename을 최대한 활용하여 프로그램을 정확하게 파악할 수 있도록 해야겠다. 일단 이 바이너리에는 여러가지 취약점이 존재한다. 하지만 쓸만한 취약점은 몇 개 안된다. 살펴보도록 하자. 가비지 컬렉팅을 하는 쓰레드이다. 그룹에 속해있는 사람이 아무도 없다면 free를 진행한다. user을 delete할 때 group에 속해 있는 사람 수를 줄이는 함수이다. 그룹을 새로 만들거나 변경할 수 있는 함수이다. 사실 여기서 idx의 값을 제한하지 않아 group_addr의 값까지 바꿀 수 있는데 *(ptr[idx]+2)에 입력하기 때.. 더보기
glibc 2.26 tcache 동작 분석 및 exploit (how2heap) tcache 이번에 코드게이트 준비하다가 우연히 tcache dup 문제를 풀게 됐는데 한글 문서가 별로 없는것 같아서 glibc 분석 내용을 정리한다. tcache(thread local caching)은 malloc과 free의 호출 횟수를 줄여 속도를 높이기 위해 고안되었다고 한다. 캐싱 작업을 통해 fastbin, unsortedbin 등등..이 불릴 일 없이 빠르게 처리하는 것 같다.. tcache 구조체xxxxxxxxxxtypedef struct tcache_entry{ struct tcache_entry *next;} tcache_entry;​/* There is one of these for each thread, which contains the per-thread cache (hence.. 더보기
pwnable.tw calc 보호되어 있는 글입니다. 더보기
pwnable.tw silver bullet 보호되어 있는 글입니다. 더보기
pwnable.tw hacknote 보호되어 있는 글입니다. 더보기