분류 전체보기

    TBTL CTF 2024 (Pwn)

    TBTL CTF 2024 (Pwn)

    [solved] [pwn/Enough with the averages]더보기// gcc -o chall chall.c -Wextra#include #include void read_flag() {  FILE* in;  char flag[64];  in = fopen("flag.txt", "rt");  fscanf(in, "%s", flag);  fclose(in);}void vuln() {  int score[20];  int total = 0;    for (int i=0; i read_flag 함수와 vuln 함수가 스택 프레임을 공유한다. vuln에선 값을 더해서 평균 값을 내고 출력해준다. scanf의 인자가 "%d"인데 문자를 넣게되면 값이 바뀌지 않고 보존된다.이를 이용해서 플래그 값을 추출해..

    [pwn.college] Shellcode Injection write-up

    보호되어 있는 글입니다.

    San Diego CTF 2024 (Pwn)

    San Diego CTF 2024 (Pwn)

    [solved] [pwn/point-plunderer]더보기int __cdecl main(int argc, const char **argv, const char **envp){ int v4; // [rsp+8h] [rbp-18h] BYREF unsigned int v5; // [rsp+Ch] [rbp-14h] BYREF unsigned int v6; // [rsp+10h] [rbp-10h] unsigned int v7; // [rsp+14h] [rbp-Ch] unsigned __int64 v8; // [rsp+18h] [rbp-8h] v8 = __readfsqword(0x28u); setvbuf(stdin, 0LL, 2, 0LL); setvbuf(_bss_start, 0LL, 2, 0LL)..

    [pwn.college] Format String Bug

    [pwn.college] Format String Bug

    pwn college에서 fsb 문제들로 배운 점들을 정리한다.(fsb는 너무 어렵다..)  64비트를 기준으로 출력되는 순서는 다음과 같다.rsi, rdx, rcx, r8, r9, [rsp], [rsp+8], [rsp+0x10], [rsp+0x18], [rsp+0x20] ...rsp+0부터 쭉쭉 가다보면 buffer 주소가 나올 것이다.웬만하면 fsb가 터지는 출력 함수가 호출되기 직전에 브포를 걸고 하는 게 좋다. (레지스터 값을 보기 위해) 다음은 메모리의 값을 읽는데 사용되는 형식 지정자들이다. (AAR)%c, %hhx: 1 byte%hx: 2 bytes%d, %i, %x: 4 bytes%lx, %p: 8 bytes%s: dereference a pointer '%' 문자와 '$' 문자를 같이 사..