분류 전체보기 156

[hackCTF] wishlist ( write-up )

Analysisvoid __fastcall __noreturn main(__int64 a1, char **a2, char **a3) { int select; // eax ​ setup(); while ( 1 ) { menu(); select = read_str(); switch ( select ) { case '2': show(); break; case '3': delete(); break; case '1': add(); break; } } }분석하기는 어렵지 않다.프로그램 내부에는 크개 3가지의 함수가 있다. add()_int64 add() { int index; // ebx ​ index = global_index; ptr[index] = malloc(24uLL); printf("wishlist: "..

[YISF] 순천향대학교 CTF ( write-up )

misc 50문제 설명대로 룰을 확인하면 된다. misc 100해당 nc 서버로 접속하면, 3개의 직선의 방정식을 준다.이 방정식으로 만들어진 삼각형의 넓이를 구하는 파이썬 코드를 작성하면 플래그를 얻을 수 있다.from pwn import * from sympy import Symbol, solve import re ​ x = Symbol('x') y = Symbol('y') ​ r = remote("218.158.141.199",24763) r.recvuntil("") ​ def recv_step(step): r.recvuntil("Step : " + str(step)) r.recvuntil("\n\n") log.info("step : " + str(step)) ​ def recv_num(): num..

[hackingcamp] bofforever ( write-up )

Analysisint __cdecl main() { char buf; // [esp+0h] [ebp-204h] int (**retaddr)(const char *); // [esp+208h] [ebp+4h] ​ system("echo hi"); read(0, &buf, 0x800u); if ( retaddr == &system ) { perror("no hack~"); exit(-1); } return 0; }ret에 system주소가 들어오면 막게 되어있다. 그래서 system을 ret주소에 직접적으로 넣지는 못한다.bss에다가 /bin/sh박고 어뜨케 할려고 bss영역을 확인을 해보았다..data:0804A01C _data segment dword public 'DATA' use32 .data:080..

[SSTF] bofsb ( write-up )

Mitigation juntae@ubuntu:~/ctf/SSTF_2019/bofsb$ checksec bofsb [*] '/home/juntae/ctf/SSTF_2019/bofsb/bofsb' Arch: i386-32-little RELRO: Full RELRO Stack: Canary found NX: NX enabled PIE: PIE enabled미티게이션이 다걸려있다. Analysis/***************************/ /* source codes from bofmt */ /* decompiled by IDA pro */ /***************************/ ​ unsigned int showFlag() { FILE *stream; // ST0C_4 char s; ..