전체 글
[2023 JBU CTF] GPS Tracking write-up
분야 : Forensic 💡 2023 JBU CTF에서 출제한 문제에 대한 write-up이다. 🧐 문제 문제명 : GPS Tracking prob1.dat 파일이 주어진다. 해당 파일을 HxD툴로 열어보면, 규칙적으로 데이터가 저장됨을 추측할 수 있다. 문제와 함께 봤을 , 규칙적으로 위치 정보를 담고 있음을 알 수 있다. 해당 장소들의 플러스 코드를 조합하여 플래그를 획득하라고 한다. 플래그 형식 flag = '' for place in places: flag += plus_code[:-2] -> scpCTF{flag} 플래그 형식은 위와 같다고 한다. .dat 파일의 규칙을 찾아서 위치를 찾고, 플러스 코드로 마지막 두글자씩 연결하면 문제가 해결된다. 💡 Hint `dms` 표현 방식에서 `seco..
[2023 JBU CTF] solve it write-up
분야 : Reversing 💡 2023 JBU CTF에서 출제한 문제에 대한 write-up이다. 🧐 문제 문제명 : solve it 힌트 : 문제 오류가 있어서 문의를 했더니, 나보고 직접 수정하라고 한다. 이게 가능해? 가짜 문제들을 모두 풀면 fake flag가 나온다. 진짜 플래그를 확인하기 위해서는, 해당 exe파일이 pyinstaller로 만들어짐을 인지하고, 이를 디컴파일 하면 소스코드를 확인할 수 있고 플래그를 찾을 수 있다. 🚨 가짜 문제 목록 self.questions = [ { 'question': "Q1. 웹 해킹 기법이 아닌 것은?", 'choices': [ "SSTI", "CSP", "SSRF", "CSRF", "SQLi" ], 'correct_choice': "CSP", }, ..
[2023 JBU CTF] donation write-up
분야 : Pwnable 💡 2023 JBU CTF에서 출제한 문제에 대한 write-up이다. 🧐 문제 문제명 : donation 캔디를 구매할 때 정수 언더플로우가 발생함을 인지하고, 이를 통해 플래그를 구매하는 문제이다. 위 구성이 문제파일로 제공된다. 로컬에서 도커 컨테이너를 올려 익스플로잇을 진행하고, 동일한 페이로드를 서버에 전송하면 실제 문제 플래그를 획득할 수 있다. 이 문제는 c파일이 제공된다. donation.c #include #include #include #include uint16_t your_money = 0; uint16_t dona_money = 0; void get_flag() { FILE *f = fopen("/home/UF/flag", "r"); char buf[256]..
[2023 JBU CTF] ret2 write-up
분야 : Pwnable 💡 2023 JBU CTF에서 출제한 문제에 대한 write-up이다. 🧐 문제 문제명 : ret2 특정 주소를 free할 수 있다. bins의 원하는 주소를 넣고, malloc으로 넣었던 주소를 할당받을 수 있다. 위 구성이 문제파일로 제공된다. 로컬에서 도커 컨테이너를 올려 익스플로잇을 진행하고, 동일한 페이로드를 서버에 전송하면 플래그를 획득할 수 있다. 🧐 분석 위와 같은 보호 기법이 걸려있다. 바이너리를 분석해보자. 🧐 main 함수 분석 int __cdecl main(int argc, const char **argv, const char **envp) { int v4; // [rsp+Ch] [rbp-34h] BYREF char buf[40]; // [rsp+10h] [r..
[2023 JBU CTF] h0f write-up
분야 : Pwnable 💡 2023 JBU CTF에서 출제한 문제에 대한 write-up이다. 🧐 문제 문제명 : h0f 힙 오버플로우가 발생하여 다른 chunk의 값을 덮을 수 있다. 위 구성이 문제파일로 제공된다. 로컬에서 도커 컨테이너를 올려 익스플로잇을 진행하고, 동일한 페이로드를 서버에 전송하면 플래그를 획득할 수 있다. 🧐 풀이 기법 출제자는 unsafe unlink를 통해 플래그를 얻었다. 하지만, 다른 힙 기법으로도 문제를 풀이할 수도 있다. 해당 write up은 **unsafe unlink** 기법을 기준으로 작성한다. 🧐 분석 위와 같은 보호 기법이 걸려있다. 바이너리를 분석해보자. 🧐 main 함수 분석 main함수 이다. buf를 통해 메뉴를 입력받고, 메뉴에 맞는 함수가 호출된다..
[2023 JBU CTF] uaf_basic write-up
분야 : Pwnable 💡 2023 JBU CTF에서 출제한 문제에 대한 write-up이다. 🧐 문제 문제명 : uaf_basic Use After Free 기법을 이해하고, 이를 통해 함수를 호출하여 플래그를 얻는 문제이다. 위 구성이 문제파일로 제공된다. 로컬에서 도커 컨테이너를 올려 익스플로잇을 진행하고, 동일한 페이로드를 서버에 전송하면 플래그를 획득할 수 있다. 해당 문제는 구조체의 이해를 위해 C 소스파일을 제공한다. 🧐 정적 분석 보호 기법은 위와 같다. 문제에서 주어진 C 소스파일을 분석해보자. uaf_basic.c // Name: uaf_basic.c // Compile: gcc -o uaf_basic uaf_basic.c -no-pie #include #include #include ..