분류 전체보기

CTF

FIESTA 2023 Writeup

공급망 공격○ 공급망 공격 1die로 분석하면 VB 6 버전의 프로그램이다. 프로그램을 실행하면 MSCOMCTL.OCX와 관련된 오류가 발생한다. MSCOMCTL.OCX 가 없어서 프로그램 실행이 안됩니다 MSCOMCTL.OCX 가 없어서 프로그램 실행이 안됩니다MSCOMCTL.OCX 가 없다고 프로그램 실행이 안됩니다.component 'MSCOMCTL.OCX' or one of this dependencies not correctly registered: a file is missing or invaild 라는 오류 메시지가 뜨는 경험을 하셨다면 해결방법입니다. 이omnislog.com링크의 방법으로 해결하면 실행과 분석이 가능하다. C:\Windows\system32>regsvr32 MSCOMCTL..

CTF

WACON 2023 Prequal Writeup

PWNflash-memory○ checksec└─# checksec app [*] '/root/dream/flash-memory/app' Arch: amd64-64-little RELRO: Partial RELRO Stack: Canary found NX: NX enabled PIE: PIE enabledPartial RELRO이므로 GOT overwrite를 이용한 풀이가 가능할 것이라고 생각하고 넘어갈 수 있다. 몇 가지 기능들이 존재하는데, 기능들을 분석하는 것이 중요한 문제이므로 분석하고 넘어가도록 하자. stream = fopen("/proc/self/maps", "r");if ( !stream ){ printf("C..

CTF

SSTF 2023 Writeup

PWNBOF 101#include #include #include #include void printflag(){ char buf[32]; int fd = open("/flag", O_RDONLY); read(fd, buf, sizeof(buf)); close(fd); puts(buf);}int main() { int check=0xdeadbeef; char name[140]; printf("printflag()'s addr: %p\n", &printflag); printf("What is your name?\n: "); scanf("%s", name); if (check != 0xdeadbeef){ printf("[Warn..

System Hacking Advanced

[dreamhack] house_of_spirit

개념정리House of Spirit은 fastbin을 공격하는 기법으로, 같은 크기만큼 재할당 하는 경우에는 같은 주소를 반환하는 fastbin 특성을 이용한다. free() 함수의 인자를 조작해서 임의 메모리를 해제할 수 있을 때 사용할 수 있는 기법이다. 정확히는 스택/힙에 fake chunk size를 쓰고 해당 주소에서 0x8을 더한 주소를 free 할 수 있는 경우에 발생한다. ○ House of force와의 차이점House of force은 실제 Top chunk size를 조작하는 공격 기법이지만, House of Spirit은 Top chunk size를 변경할 수 없는 경우에 fake chunk를 구성해서 공격하는 기법이라는 차이점이 있다. 예를 들어보자. 다음과 같이 스택에 prev_..

System Hacking Advanced

[dreamhack] house_of_force

개념정리House of Force 기법은 top chunk의 size를 조작하여, 임의 주소에 힙 청크를 할당할 수 있는 공격 기법이다. top chunk는 기본적으로 다음 할당을 위한 주소를 저장하는 역할을 한다고 이해하면 된다. 따라서 top chunk의 size를 조작한다면 다음에 할당할 주소를 조작하는 것과 같기 때문에 임의 주소에 쓰기가 가능한 것이다. House of Force는 공격자가 top chunk의 size를 조작하고, 원하는 크기의 힙 청크를 할당할 수 있을 때 활용 할 수 있다. ○ _ini_mallocstatic void *_int_malloc (mstate av, size_t bytes){ INTERNAL_SIZE_T nb; /* normalized ..

Reversing Advanced

[dreamhack] rev-basic-9

rev-basic-9_BOOL8 __fastcall sub_140001000(const char *buf){ int i; // [rsp+20h] [rbp-18h] int len; // [rsp+24h] [rbp-14h] len = strlen(buf); if ( (len + 1) % 8 ) return 0i64; for ( i = 0; i buf 길이가 8의 배수여야 한다.buf를 8자리씩 sub_1400010A0()로 검증한다.sub_1400010A0()이 실행된 후, buf[i] == &unk_140004000 조건이 충족해야 한다.sub_1400010A0() 가 실행된 후의 buf가 [그림]의 데이터와 일치하면 된다. 다음으로 sub_1400010A0()를 분석해보자.__int64 _..

keyme
'분류 전체보기' 카테고리의 글 목록 (3 Page)