BREAK THE SYNTAX CTF - HexDumper
·
CTF/Solved
서론얼마 전 우연히 드림핵 디코 채널에서 어떤 외국인을 도와줬는데,주말에 갑자기 DM으로 혹시 시간이 되면 같이 CTF를 하지 않겠냐고 연락이 왔다.주말에 큰 일정이 없어 가볍게 해 볼 생각으로 참여하게 되었고, pwnable 1 solve, misc. 0.8 solve 했다. 1. hexdumper보통은 소스코드는 잘 제공하지 않는데, 특이하게도 이 CTF는 제공해줬다.메뉴가 아래와 같이 구성되어있고, 보자마자 heap 문제라는 생각이 들었고 이를 가정하여 소스코드 분석을 했다.void menu(void) { puts("=========== DUMP MENU ==========="); puts("1) Create a new dump"); puts("2) Hexdump a dump"); ..
Dreamhack CTF Season 7 Round #9 (🚩Div1) - chain-lightning
·
CTF/Solved
보호되어 있는 글입니다.
Hackappatoi CTF '23
·
CTF/Solved
1. go2win buffer overflow 문제. static compile 되어있어서 gdb가 제대로 disassemble 하지 못하는 이상한 문제가 있었음. (나중에 알고보니 golang이라 그런거였음.) - ~ file go2win go2win: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, Go BuildID=48JPIwuiWHqAWxDMZivh/G6kBAN3TcK1YEUaef8ap/H_z3bCAF-A6sudbCtLHg/CWiJISSpnfio3_sfcTUd, not stripped 1번 문제이니 그냥 buffer overflow라고 가정하고, flag를 읽어주는 함수 주소를 찾아봤고, gef➤ info funct..
Dreamhack CTF Season 3 Round #4 (🌱Div2) - 모든 문제
·
CTF/Solved
보호되어 있는 글입니다.
DEFCON 31 - Live CTF - what-a-maze-meant
·
CTF/Unsolved
1. intro 2. code 및 분석 2.1. code int __cdecl main(int argc, const char **argv, const char **envp) { unsigned int v3; // eax unsigned int v4; // eax char v6; // [rsp+Bh] [rbp-3A5h] BYREF int i; // [rsp+Ch] [rbp-3A4h] int j; // [rsp+10h] [rbp-3A0h] unsigned int v9; // [rsp+14h] [rbp-39Ch] unsigned int v10; // [rsp+18h] [rbp-398h] int v11; // [rsp+1Ch] [rbp-394h] char v12[904]; // [rsp+20h] [rbp-390..
TJCTF 2023 - pwn/formatter
·
CTF/Solved
1. intro 2. code 및 분석 2.1. code main int __cdecl main(int argc, const char **argv, const char **envp) { char s[268]; // [rsp+0h] [rbp-110h] BYREF int i; // [rsp+10Ch] [rbp-4h] setbuf(_bss_start, 0LL); xd = calloc(1uLL, 4uLL); printf("give me a string (or else): "); fgets(s, 256, stdin); printf(s); r1(s[0]); if ( win() ) { for ( i = 0; i
TJCTF 2023 - pwn/groppling-hook
·
CTF/Solved
1. intro 2. code 및 분석 2.1. code #include "stdio.h" #include void laugh() { printf("ROP detected and denied...\n"); exit(2); } void win() { FILE *fptr; char buf[28]; // Open a file in read mode fptr = fopen("flag.txt", "r"); fgets(buf, 28, fptr); puts(buf); } void pwnable() { char buffer[10]; printf(" > "); fflush(stdout); read(0, (char *)buffer, 56); /* Check ret */ __asm__ __volatile__("add $0x..
TJCTF 2023 - pwn/shelly
·
CTF/Solved
1. intro 2. code 및 분석 2.1. code int __cdecl main(int argc, const char **argv, const char **envp) { char s[256]; // [rsp+0h] [rbp-100h] BYREF setbuf(stdout, 0LL); printf("0x%lx\n", s); fgets(s, 512, stdin); for ( i = 0; i checksec chall [*] '/home/wyv3rn/ctf/chall' Arch: amd64-64-little RELRO: Partial RELRO Stack: No canary found NX: NX disabled PIE: No PIE (0x400000) RWX: Has RWX segments 더불어 프로..
TJCTF 2023 - pwn/flip-out
·
CTF/Solved
1. intro 2. code 및 분석 2.1. code int __cdecl main(int argc, const char **argv, const char **envp) { int result; // eax int v4; // [rsp+4h] [rbp-BCh] FILE *stream; // [rsp+8h] [rbp-B8h] char nptr[48]; // [rsp+10h] [rbp-B0h] BYREF __int64 v7; // [rsp+40h] [rbp-80h] __int64 v8; // [rsp+48h] [rbp-78h] __int64 v9; // [rsp+50h] [rbp-70h] __int64 v10; // [rsp+58h] [rbp-68h] __int64 v11; // [rsp+60h] [rb..
TJCTF 2023 - pwn/teenage-game
·
CTF/Solved
1. intro 2. code 및 분석 2.1. code main int __cdecl main(int argc, const char **argv, const char **envp) { char v3; // al int v5[2]; // [rsp+8h] [rbp-A98h] BYREF char v6[2704]; // [rsp+10h] [rbp-A90h] BYREF setup_terminal(argc, argv, envp); setvbuf(stdout, stdout_buf, 0, 0x1000uLL); init_player(v5); init_map(v6, v5); print_map(v6); signal(2, sigint_handler); while ( v5[0] != 29 || v5[1] != 89 ) { v..