Dreamhack 117

[102] IT 비전공자 [dreamhack]Cherry문제 풀기

이 프로그램은 보안적으로 설계된 것이 아니며, 메모리 취약점이 포함되어 있습니다. 이를 통해 버퍼 오버플로우 공격을 수행할 가능성이 있습니다. 아래는 코드의 주요 동작, 취약점 분석, 그리고 익스플로잇 가능성에 대한 설명입니다.코드 동작 분석1. 초기화 함수 (initialize)void initialize() { setvbuf(stdin, NULL, _IONBF, 0); setvbuf(stdout, NULL, _IONBF, 0); signal(SIGALRM, alarm_handler); alarm(30);}버퍼 모드 설정:setvbuf를 통해 입력(stdin)과 출력(stdout)이 버퍼링되지 않도록 설정.타이머 설정:alarm(30)으로 프로그램 실행 시간을 30초로 제한.30초..

100번째 문제 기념! 500등대 진입!

76번째문제 풀었을때 1000등이었는데, 24개 문제 풀고, 100번 문제 풀었을때 532등!!!하루 한문제, 한걸음의 꾸준함과 사소함이 쌓여 처음 내가 문제 풀었을때, 아득하게 멀어보였던 미래가 지금 눈앞에있다  그리고 분명 처음 문제를 풀땐, 그래, 이 분야에서 내가, 연습해보자, 해킹문제 하루에 하나씩 어렵더라도 해보자라는마음이었고 내가 할 수 있을까 하면서 불안감도 가득했는데,  컴퓨터 공부 그 자체가 나에게 이젠 목표나 성과의 결과가 아닌 그저 정말 즐거움으로 바꼈을때부턴  1등이 이젠 나에게 진짜 목표가 아니다! 그저 하루하루 즐겁게 해킹 문제 풀뿐! 순위는 나에게 그저 숫자니까 즐거우면, 됐다 순위는 서비스(?)일뿐 ㅋㅋㅋㅋ막상 보면 기분 좋음 ㅋㅋㅋㅋ 오늘 100번째 문제 풀었던 기념 자축..

[100] IT 비전공자 [dreamhack]FFFFAAAATTT문제 풀기

부트레코드란, 컴퓨터 부팅을 시작하는 데 필요한 데이터를 유지 관리하는 데 사용되는 하드 디스크의저장소 공간 섹션이다. 일반적으로 부팅 레코드는 하드 드라이브의 첫 번째 섹터에 보관되므로시스템이 응용 프로그램을 시작하는 데 필요한 파일을 쉽게 찾고 읽고 실행할 수 있다.파일에 액세스하고 부팅을 시작하는 데 필요한 모든 코드는 마스터 부팅 레코드에 포함된다.출처 ㅣ https://not4dog.tistory.com/34                         참고 블로그https://not4dog.tistory.com/34 [CTF] Dreamhack FFFFAAAATTT 문제 Write-up문제) FIXFIXFIX! FFFAAATTT! (문제파일 다운로드에서 받지 마시고, 아래의 링크를 통해서 문제파..

[99] IT 비전공자 [dreamhack]pwn-library문제 풀기

#include #include #include struct bookstruct{ char bookname[0x20]; char* contents;};__uint32_t booksize;struct bookstruct listbook[0x50];struct bookstruct secretbook;void booklist(){ printf("1. theori theory\n"); printf("2. dreamhack theory\n"); printf("3. einstein theory\n");}int borrow_book(){ if(booksize >= 0x50){ printf("[*] book storage is full!\n"); return 1; } __uint32_t select = 0; pri..

[98] IT 비전공자 [dreamhack]Small Counter문제 풀기

FTK Imager는 AccessData에서 개발한 디지털 포렌식 도구로, 컴퓨터 시스템이나 디지털 저장 장치의 데이터를 조사하고 분석하기 위해 사용됩니다. 주로 법의학적 증거 수집, 데이터 복구, 파일 시스템 분석 등에 활용되며, 특히 데이터의 무결성을 보장하면서 데이터를 이미징(복제)하거나 미리 보기하는 데 강점을 가집니다.주요 기능디스크 이미징:저장 장치(하드 디스크, SSD, USB 등)의 포렌식 이미징을 수행합니다.디스크 전체 또는 특정 영역을 복제하여 원본 데이터를 변경하지 않고 복제본을 생성.생성된 이미지는 E01, RAW(dd), SMART 등 다양한 형식으로 저장할 수 있습니다.파일 시스템 미리 보기:파일 시스템의 구조와 데이터를 분석하고 미리 보기합니다.삭제된 파일, 숨겨진 파일, 시스..

[97] IT 비전공자 [dreamhack]Small Counter문제 풀기

이 코드는 간단한 프로그램으로 보이며, 리버싱 문제에서 자주 볼 수 있는 구조를 가지고 있습니다. 주된 목표는 프로그램의 동작을 분석하여 숨겨진 문자열(플래그)을 찾거나, 프로그램의 의도된 동작을 이해하는 것입니다.코드 분석1. 변수 초기화_QWORD src[10]; // [rsp+0h] [rbp-F0h] BYREF_BYTE dest[72]; // [rsp+A0h] [rbp-50h] BYREFint i; // [rsp+ECh] [rbp-4h]src:64비트 크기의 _QWORD 배열로 선언된 임시 저장소입니다.크기는 10 × 8바이트 = 80바이트입니다.dest:72바이트 크기의 _BYTE 배열로 선언된 버퍼입니다.i:카운터 변수로 사용되며, 초기값은 10입니다.2. 프로그램의 흐름출력 메..

[96] IT 비전공자 [dreamhack]simple-phparse문제 풀기

소스코다 host: $host path: $path query: $query"; if(preg_match("/flag.php/i", $path)){ echo "NO...."; } else echo "Cannot access flag.php: $path "; ?>   이 PHP와 HTML 코드의 구조를 분석해 보겠습니다.1. 코드의 목적사용자가 요청한 URL을 분석하여 호스트(host), 경로(path), **쿼리(query)**를 추출하고 화면에 출력합니다.만약 경로(path)가 특정 문자열(flag.php)과 일치한다면, 특정 메시지를 출력하는 조건을 포함합니다.HTML과 간단한 CSS 스타일링으로 출력 형식을 정리했습니다.2. 주요 구성 요소..

[94] IT 비전공자 [dreamhack]wargame.kr type confusion문제 풀기

key == $key) { $ret = ["code" => true, "flag" => $FLAG]; } else { $ret = ["code" => false]; } die(json_encode($ret)); } function gen_key(){ $key = uniqid("welcome to wargame.kr!_", true); $key = sha1($key); return $key; }?> view-source   소스코드를 확인해 본 결과 사용자로부터 json이라는 이름의 파라미터(Parameter)를 전달 받아서, 그 json 데이..