Reference/Pwnable_Study

    [Pwn] Docker파일 주어진 경우 Heap 분석 환경셋팅

    최근 Pwnable 문제를 풀면서 부딪힌 Error에 관해 해결방법을 찾아 정리한 글로 잘못된 부분이 있다면 댓글로 알려주시기 바랍니다. Heap 분석을 위한 플러그인 포너블 문제를 하다보면 stack과 heap을 분석해야 할 경우가 많다. 작성자가 사용하는 pwndbg나 pwn-peda의 경우 아래의 Github및 명령어를 이용해 빌드하는 편이다. # pwndbg install git clone https://github.com/pwndbg/pwndbg cd pwndbg ./setup.sh # gdb-peda install git clone https://github.com/longld/peda.git ~/peda echo "source ~/peda/peda.py" >> ~/.gdbinit #heapi..

    [Pwn] House of spirit

    House of Spirit House of 시리즈중 하나로 Free함수의 인자를 조작해 원하는 주소에 Overwrite가 가능하도록 만드는 공격기법으로 공격조건은 다음과 같습니다. 공격 조건 1. free 함수의 인자를 조작할 수 있어야 할 것 2. Overwrite 하고자 하는 타겟의 주소를 알아야 할 것 3. 해당 영역에 값을 쓸수 있어야 할 것(Overwrtie를 하기 위한 부분) 해당 공격기법을 이해하기 위해서는 배경지식이 필요한데 이전에 정리한 IO_File 정리에서 fastbin, tcache등을 정리한내용을 기반으로 정리하였습니다. https://skysquirrel.tistory.com/268 [Linux] Linux File System _IO_FILE 드림핵 로드맵을 진행하면서 이해하..

    [Pwn] House of Force

    House of Force House of 시리즈중 하나로 힙기반의 Top Chunk를 활용하는 취약점 공격기법이다. Top Chunk는 Heap의 청크 구조에서 힙영역의 가장 마지막에 위치하는 Chunk로 Chunk할당 요청이 들어왔을때 재사용이 가능한 Chunk가 없는 경우 Top Chunk를 쪼개서 사용할 수 있도록 Chunk영역을 반환해주는 역할을 한다. Top Chunk는 일반적으로 0x21000만큼이 할당되어있는데 할당된 사이즈이상의 할당요청은 불가능한것이 기본이다. 그리고 Top Chunk는 Chunk를 쪼개서 사용할수 있게 반환하는 만큼 Free를 통해 해제된 Chunk가 Top Chunk와 인접하게 되면 Top Chunk는 이를 병합한다. (0x48요청이 들어왔을때 헤더까지 해서 Top ..

    [Pwn] _IO_FILE Arbitrary Write

    이전 _IO_FILE Arbitrary Read에 이어 특정영역의 값을 읽을 수 있는 공격 _IO_FILE Arbitrary Write 기법에 대해 정리한 글입니다. 드림핵 자료와 여러 자료를 참고해 정리했으며 다소차이점이 존재할수 있습니다. (잘못된 부분이나 틀린 부분이 있다면 댓글로 지적해주세요.) 먼저 이전에 작성한_IO_FILE의 구조체 분석과 _IO_FILE Arbitrary Read를 통해 해당 공격흐름을 분석했습니다. https://skysquirrel.tistory.com/270 [Pwn] _IO_FILE Arbitrary Read 이전 _IO_FILE vtable Overwrite에 이어 특정영역의 값을 읽을 수 있는 공격 _IO_FILE Arbitrary Read 기법에 대해 정리한 글..

    [Pwn] _IO_FILE Arbitrary Read

    이전 _IO_FILE vtable Overwrite에 이어 특정영역의 값을 읽을 수 있는 공격 _IO_FILE Arbitrary Read 기법에 대해 정리한 글입니다. 드림핵 자료와 여러 자료를 참고해 정리했으며 다소차이점이 존재할수 있습니다. (잘못된 부분이나 틀린 부분이 있다면 댓글로 지적해주세요.) 먼저 이전에 작성한 _IO_FILE vtable Overwrite 에서 _IO_FILE의 구조체를 분석해보며 해당 _IO_FILE 구조체를 Overwrite하는 것으로 원하는 함수를 실행시키는 것이 가능하다는 것을 보았습니다. https://skysquirrel.tistory.com/269 [Pwn] _IO_FILE_Plus & _IO_FILE vtable Overwrite 이전 Linux File Sy..

    [Pwn] _IO_FILE_Plus & _IO_FILE vtable Overwrite

    이전 Linux File System _IO_FILE에 이어서 _IO_FILE_Plus와 _IO_FILE vtable Overwrite에 대한 정리글로 드림핵 자료위주로 정리하였습니다. https://skysquirrel.tistory.com/268 [Linux] Linux File System _IO_FILE 드림핵 로드맵을 진행하면서 이해하는데 어려운부분이 있어 공부하며 정리하는 글로 아래 자료를 참고하여 정리하였습니다. (공부중인 내용이므로 다르거나 틀린 내용이 있을 시 댓글로 알려 skysquirrel.tistory.com (공부중인 내용이므로 틀리거나 잘못된 부분이 있다면 댓글로 알려주세요.) _IO_FILE_plus 구조체 먼저 이전에 봤던 _IO_FILE_plus의 구조를 다시보면 _IO_j..

    [Pwn] SROP(Sig Return Oriented Programming)

    본글은 드림핵 자료를 참고삼아 좀더 빠르게 이해하고자 작성한 글로 틀린 내용이 존재할 수 있습니다. 댓글로 틀린 부분에 대한 지적은 환영합니다. 개요 이전까지 ROP기법을 통해 보호기법이 걸려있는 파일에서 함수를 호출하는 방식을 사용했었습니다. 하지만 코드에 따라 방법이 달라지는 방식이므로 기존보다 더 나은 기법들이 계속 생겨나고 있습니다. SROP는 그중에서 시그널을 활용하는 ROP기법입니다. 시그널 먼저 운영체제는 크게 유저모드와 커널 모드로 나뉘어 있습니다. 실제로 파일을 생성하고 실행하는 모든 작업은 이 두개의 모드가 서로 상호 작용하며 이루어지는데 시그널은 두 모드 사이에서 프로세스에 특정 정보를 전달하는 매개체의 역할을 합니다. rt_sigreturn 프로세스가 바뀌는 것을 컨텍스트 스위칭이라..

    [Pwn] gdb offset Tip

    이번 글은 _rtld_global overwrtie를 하기 위해 문제를 진행하다 막혀 리서칭하다 알게된 Tip아닌 Tip을 정리했기에 _rtld_global overwrtie를 예시로 설명한 글입니다. gdb-peda, pwndbg 지금까지는 pwndbg를 이용해 대부분의 문제를 해결했습니다. 하지만 관련 디버깅툴을 알아보니 gdb-peda 뿐 아니라 몇가지에 특화된 디버깅툴이 많이 존재했습니다. 그중에서도 gdb-peda는 offset을 계산하거나 찾는데 특화가 되어 있다고 합니다. 해서 이러한 좋은 툴을 매번 선택적으로 쓰기 위해서 파일을 갈아엎어야 하는게 불편해서 자료를 찾아보니 이를 해결한 방안이 있었습니다. https://flash-ctf.tistory.com/91 [디버거] PEDA, PWND..