본문 바로가기

전체 글539

[DIMI CTF] ezheap 118명 중에 7명이 위 문제를 풀었다. 문제에서 주어진 파일을 실행하면 다음과 같이 5가지의 선택 메뉴가 출력된다. ghidra 라는 정적 분석 툴을 이용해서 주어진 실행 파일을 분석하겠다. 위 그림은 ghidra로 분석한 메인 함수의 어셈블리 코드다. ghidra의 decompile 기능을 이용해 디컴파일을 시도하면 아래와 같은 코드를 볼 수 있다. void main(void) { undefined8 uVar1; basic_ostream *this; inital(); menu(); uVar1 = scanInt(); switch(uVar1) { case 0: this = operator 2021. 3. 26.
[DIMI CTF] exec me 118명 중에 15명이 위 문제를 풀었다. 문제에서 주어진 주소로 이동하면 View Source 라는 링크가 출력된다. 해당 링크를 클릭하자. 링크로 이동하면 아래와 같은 php 코드가 출력된다. 2021. 3. 25.
[Pwnable.kr] bof 문제: Nana가 버퍼오버플로우가 가장 흔한 취약점이라고 했어, 진짜야? #include #include #include void func(int key){ char overflowme[32]; printf("overflow me : "); gets(overflowme); // smash me! if(key == 0xcafebabe){ system("/bin/sh"); } else{ printf("Nah..\n"); } } int main(int argc, char* argv[]){ func(0xdeadbeef); return 0; } 문제에서 주어진 코드를 보면 서버에서 gets로 사용자에게 입력 값을 입력받고 key가 0xcafebebe와 같으면 플래그를 출력한다. 따라서 key를 수정하기 위해서 버.. 2021. 3. 24.
[Pwnable.kr] fd 문제: 엄마! 리눅스에 파일 디스크립터가 뭐야?? 문제에서 주어진 서버로 접속하면 fd, fd.c flag 3가지 파일이 있다. fd.c를 열람하면 아래와 같다. char buf[32]; int main(int argc, char* argv[], char* envp[]){ if(argc 2021. 3. 24.
[Dreamhack] rev-basic-0 문제 파일을 x64dbg 디버거로 열어준다. main 함수를 찾기 위해 메뉴에 빨간 네모 안에 있는 Az 메뉴를 클릭한다. "Input :" 문자열을 클릭하여 main 함수를 찾아준다. main 함수는 다음과 같다. push rdi로 스택에 복귀 주소를 저장하고 sub rsp,130으로 0x130만큼의 공간을 할당하고 main 함수가 시작된다. 문제의 핵심은 00007FF6321D112C 주소에서 호출하는 chall0.7FF6321D1000 함수이다. 해당 함수가 0을 반환하면 7FF6321D1166으로 점프하여 Wrong을 반환하고 다른 값을 반환하면 Correct를 반환한다. 따라서 해당 함수가 참을 반환해야 한다. 해당 함수로 들어가면 위 그림과 같은 어셈블리어가 출력된다. mov qword ptr.. 2021. 3. 24.
[Dreamhack] cookie 해당 문제 사이트로 접속하면 위 그림과 같은 페이지가 출력된다. 문제 파일에 소스 코드를 보면 중간에 아래와 같은 코드가 있다. 한번 로그인 창에서 guest, guest로 접속해보겠다. users = { 'guest': 'guest', 'admin': FLAG } id/pw를 guest/guest 로 접속하면 위 그림과 같이 당신은 admin이 아니라는 문구가 출력된다. 문제가 cookie이므로 패킷을 인터셉트하여 쿠키 값을 확인하겠다. 필자는 현재 가장 널리 사용되는 버프 스위트를 사용하여 패킷을 인터셉트하겠다. guest로 로그인한 페이지에서 새로고침하여 패킷을 잡으면 위 그림과 같다. Cookie 값에 username 변수에 guest라고 입력되어 있는데 이를 admin으로 수정한다. 그리고 패킷.. 2021. 3. 23.
[DIMI CTF] simple sqli 118명 중에 20명이 위 문제를 풀었다. 주어진 주소르 이동하면 그림과 같은 페이지가 출력된다. 문제 이름이 simple sqli이므로 SQL 인젝션을 사용해서 문제를 해결해야 한다. 위 그림에서 해당 페이지의 소스가 궁금하다면 여기를 클릭하라고 한다. 클릭하여 코드를 열람하자. 2021. 3. 23.
[DIMI CTF] 5shared 118명 중에 42명이 위 문제를 풀었다. 주어진 주소르 이동하면 그림과 같은 페이지가 출력된다. 5shared란 4shared에서 따온 명칭인 것 같다. 4shared는 사람들이 음악이나 문서 파일 등을 공유하는 서버이다. 이와같이 5shared 서버도 파일을 업로드하고 업로드한 파일을 읽을 수 있는 기능이 있다. 5shared에는 파일 업로드 취약점이 존재한다. 임의의 파일 test.txt 파일을 업로드하면 첫 번째 그림처럼 jpg, gif, png 확장자만 업로드 할 수 있다고 출력되지만 test.jpg.txt 와 같이 파일 이름을 수정하여 업로드하면 필터를 우회할 수 있다. 하지만 업로드 해야할 파일은 txt파일이 아닌 php 웹쉘이다. php 웹쉘은 칼리리눅스에 /usr/share/webshel.. 2021. 3. 23.