분류 전체보기

    ChildHeap (double free, stdout leak)

    stdout을 이용하여 leak이 필요한 문제이다. Writeup File information Code Main int __cdecl __noreturn main(int argc, const char **argv, const char **envp) { int v3; // [rsp+Ch] [rbp-4h] Init(*(_QWORD *)&argc, argv, envp); while ( 1 ) { while ( 1 ) { menu(); v3 = input_number(); if ( v3 != 1 ) break; Malloc(); } if ( v3 != 2 ) exit(0); Free(); } } Main함수는 다음과 같은 역할을 한다. menu 함수 호출 input_number로 입력을 받아 입력에 따라 다음..

    HackCTF Reversing Me

    Writeup information #include #include ​ int main() { int i; char *serial = "H`cjCUFzhdy^stcbers^D1_x0t_jn1w^r2vdrre^3o9hndes1o9>}"; char enter[54]; printf("키를 입력하시게 : "); scanf("%s", enter); if (strlen(enter) == strlen(serial)) { for (i = 0; i < strlen(serial) && (enter[i] ^ (i % 2)) == serial[i]; i++); if (i - 1 == strlen(enter)) printf("정답일세!\n"); } else printf("그건 아닐세...\n"); exit(0); } 문제는 위..

    stdout을 이용한 leak

    hackctf childheap 문제로 처음 접한 기법이다. 최근 heap문제에서 자주 사용되기도 하고 한번 정리해두고 싶어 글을 쓰게 되었다. (모자란 부분은 조금씩 채워 나갈 예정) Source Code source code는 puts의 code를 간단하게 분석하면서 최종적으로 _IO_SYSWRITE가 어떻게 호출이 되는지 알아보자. 먼저 호출되는 puts함수부터 살펴보면 다음과 같다. _IO_puts #include "libioP.h" #include #include ​ int _IO_puts (const char *str) { int result = EOF; size_t len = strlen (str); _IO_acquire_lock (_IO_stdout); ​ if ((_IO_vtable_of..

    HackCTF Magic PNG

    전에 프로젝트 진행하면서 PNG 구조 알아본 적이 있는데 덕분에 쉽게 풀었던 문제이다. Writeup File information 문제 파일을 다운 받고 압축을 해제하면 다음과 같이 png파일이 하나 있다. 이 파일은 깨져서 열어도 아무것도 볼 수 없는 파일이다. Solve 이 문제는 PNG format을 조금 알아보면 쉽게 풀 수 있는 문제이다. PNG의 시그니쳐 89 50 4E 47 0D 0A 1A 0A PNG에는 크게 세 청크가있다. IHDR (49 48 44 52) iHDR은 말 그대로 헤더 즉 PNG의 여러 메타 데이터가 저장된다. IDAT (49 44 41 54) 실제로 이미지에 대한 데이터가 저장된다. IEND (49 45 4E 44) 파일의 끝을 알려주는 청크 먼저 HxD or 010 e..

    HackCTF - 달라란 침공

    달라란 침공은 Pwntool이 아직 익숙하지 않을 때 시도하면 좋은 문제이다. 만약 문제를 못 풀어 보신분은 삽질을 하더라도 혼자서 시도해보길 바란다. Writeup Information nc를 접속하면 다음과 같은 화면이 나온다. 이 중 하나를 선택하여 입력해주면 다음과 같이 간단한 연산 문제가 나오고 문제를 맞히면 다음 문제가 나온다. 이 문제는 Pwntlool을 이용하여 데이터를 뽑아낸 후에 연산 후 결과 값을 보내주면 되는 문제이다. Code 코드가 좀 개떡이라 죄송합니다.. 문제는 달라란 은행, 보라빛 요새, 달라란 거리 3개의 챕터? 가 있으며 각 챕터는 다음과 같다. 달라란 은행 '+', '-' 연산 20문제 보라빛 요새 '*', '/' 연산 30문제 달라란 거리 '+', '-', '*', ..

    Windows Artifacts

    보호되어 있는 글입니다.