전체 글

· TOOR
Heap 일단 heap 청크 구조를 알려면 힙이 무엇인지 알아야 할 것 같다. heap 은 프로그램이 실행되는 도중 동적으로 할당하고 해제하여 사용하는 메모리 영역 이다. 동적 메모리 할당자는 tcmalloc (google) ptmalloc2 (glibc) libumen (solaris) jemalloc (FreeBSD and Firefox) dlmalloc (General purpose allocator) 등이 있다. 우리가 봐야할 것은 ptmalloc2 와 dlmalloc 이다. dlmalloc 리눅스에서 사용되는 힙 관리에 사용되는 memory allocator dlmalloc 이 사용되다가 쓰레드 기능이 추가된 ptmalloc이 현재 사용된다. 그러므로 현재 우분투에서 사용되는 Memory Alo..
· TOOR
glibc 의 FILE 구조체가 가지고 있는 vtable을 변경하는 등 파일 스트림을 이용해 프로그램의 흐름을 변경하는 기법 이지만 vtable 을 변경하는 것은 최근 버전에선 대부분 막혀있다. 그래서 요즘엔 그냥 파일 스트림을 변경한다. 로컬 버전은 glibc 2.35 따라서 실습은 glibc 2.35 기준으로 했다. intro dreamhack - Backgropund : _IO_FILE https://dreamhack.io/lecture/courses/271 파일을 열 때 파일 접근 유형을 명시해야 한다. 대표적으로 읽기 및 쓰기 모드가 있다. 읽기 모드로 파일을 열고, 파일에 데이터를 작성하려하면 에러가 발생하지는 않지만 기능이 수행되지 않는다. 모든 파일 함수는 fopen 함수에서 반환한 파일 ..
· TOOR
Execution 실행을 하면 ya, da, yum, ba 로 이루어진 문자열이 출력된다. 복사해서 같은 문자열을 넣어주면 점수를 얻고 아니면 점수가 감점된다. Audit __int64 __fastcall main(__int64 a1, char **a2, char **a3) { initialize(); puts("Yolo yada yada - Play with me!"); puts("==========================================="); main_func(); return 0LL main 함수에서 minn_func 을 호출한다. unsigned __int64 sub_EAD() { size_t v0; // rax size_t v2; // rax char *s1; // [rsp+..
· TOOR
보호되어 있는 글입니다.
· TOOR
보호되어 있는 글입니다.
· TOOR
tistoryBlogName: lmxx tistoryTitle: “[TOOR] 6.2 Toor_Canary write_up” tistoryTags: “” tistoryVisibility: “0” tistoryCategory: “1189856” tistorySkipModal: true tistoryPublished: “” tistoryPostId: “65” tistoryPostUrl: https://lmxx.tistory.com/65 link [TOOR] 6.1 Canary & canary write_up [[Canary Canvas.canvas|Canary Canvas]] main main 함수의 어셈은 다음과 같다. Dump of assembler code for function main: 0x0000..
· 후기
늦었지만 CDDC 후기다. 본선은 싱가포르에서 진행 되었다. 몇 문제 풀었지만 포너블이 아니라 아쉬웠다. 문제 하나를 풀어야 다음 문제가 열리는 식이였는데 포너블 문제 첫번째께 너무 어려웠다. 초반에 열리는 문제를 다 풀면 앞에 나가서 iot 장비 같은걸 해킹하거나 사용해서 플래그를 얻는 문제가 있었다고 하는데 못해봐서 아쉬웠다. 마리나 베이 호텔 엑스포? 거기서 진행 했다. 대회장 밖에 음식들이 진열 돼있었는데 맛은 그렇게 있지 않았다. 대회 끝나고 싱가포르 플라이어에서 대관람차를 타고 야경을 봤다.
· TOOR
핵심.read 함수의 리턴은 eax 에 저장되고 이는 길이를 반환한다. 필요한 것 rao syscall; ret gadget 셸코드 or binsh 인데 binsh 삽입보다 셸코드 넣는게 더 가능성 높을 듯 sigreturn frame read Exploit method mprotect 를 호출해서 code 영역에 쓰기, 실행 권한을 부여한다. shellcode 를 삽입해서 실행한다. Attack Flow 우선 read syscall 을 하는데 mov edx, 0x130 으로 bof 가 발생하고 rao가 가능하다. syscall gadget 이 있는데 eax control gadget 이 없어 보이는데 read syscall 의 return 은 입력받은 문자열의 길이 이기 때문에 eax 를 조작할 수 있..
lmxx
lmxx