CTF

· CTF
예선 8위, 본선 11위로 아쉽게 수상은 하지 못했다 ㅠ... 예선전 같은 경우 대회 끝나기 12시간 전까지는 top 5를 유지했지만 자고 일어나니 8등이 되어 있었다 ㅋㅋ.. 본선은 평소 자신 없던 heap 관련 문제가 나와서 포너블은 풀지 못했고, 웹에서 php의 strcmp 취약점 관련 문제를 풀어서 11등을 했다. 이번 대회는 음원차트 컨셉으로 진행됐는데, 홈페이지 ui도 그렇고 푼 사람 명단도 그렇고 정말 색다르고 재밌었던 대회 같았다. 작년 YISF 대회도 참여했었는데, 그때는 해킹 공부를 시작한 지 얼마 안 된 시점이라 거저 주는 문제를 제외하고는 한 문제도 못 푼 체 떨어졌었다. (벽이 느껴졌었다.) 하지만 아쉽게 수상을 하진 못했지만 이번 대회에서는 잠시나마 상위권에 들어보기도 하고 꽤 ..
· CTF
Misc - Welcome misc의 1pt 문제 Welcome이다. 단순히 디스코드에 접속하기만 해도 flag를 준다. flag{W3Lcom3_7o_CS4w_D1ScoRD} Pwn - Alien Math 리버싱이 조금 필요한 간단한 시스템 해킹 문제다. 실행해보면 퀴즈 같은걸 내고 사용자의 입력을 받은 후 점수를 출력해주는 것 같다. main 함수를 확인해보면 rand 함수를 통해 값을 생성하고, 그 값이 사용자가 입력한 값과 같으면, 그 다음 단계로 넘어가는 것 같다. 하지만 srand 함수로 시드를 설정해주지 않았기 때문에 rand 함수는 항상 같은 값을 생성하게 된다. gdb로 확인해보면 생성되는 값은 0x6b8b4567인 것을 알 수 있다. 구한 값을 입력해보면 다음 단계로 넘어가는 것을 볼 수..
· CTF
Web - Basic (10 points) RTLxHA CTF 2021의 웹 카테고리의 Basic 문제다. 링크만 주어져 있다. 해당 링크로 들어가면 위 사진처럼 로그인 창이 뜨는데, 시험 삼아 sql injection을 이용한 인증 우회 공격을 시도해봤다. id : 1' or '1' = '1' -- pw : 1234 (
· CTF
redpwnCTF 2021의 리버싱 문제 wstrings다. 너무 쉽게 풀려서 조금 허무했던 문제다. 문제 파일로 바이너리가 주어져 있다. 문제 파일을 실행해보면 Welcome to flag checker 1.0. 문구와 flag를 달라는 문구가 출력된 후 입력을 받는다. 입력을 받고 바로 종료되는데, 예상을 해보면 올바른 flag를 찾아 입력하면 correct 같은 성공 문자열이 뜰 것 같으니, flag 값과 입력 값을 비교하는 로직을 분석하여 flag 값을 알아내면 될 것 같다. ida로 확인해본 wstrings 바이너리의 main 함수다. wprintf 함수를 통해 "Welcome to flag checker 1.0. Give me a flag> " 문구를 출력하고 fgetsws 함수를 통해 wch..
· CTF
redpwnCTF의 ret2generic-flag-reader 문제다. 바이너리와 소스코드가 주어져 있다. 바이너리를 실행하면 앞서 푼 포너블 문제와 마찬가지로 여러 문구들이 출력되고 입력을 받는다. 마찬가지로 nx bit가 걸려있다. #include #include #include void super_generic_flag_reading_function_please_ret_to_me() { char flag[0x100] = {0}; FILE *fp = fopen("./flag.txt", "r"); if (!fp) { puts("no flag!! contact a member of rob inc"); exit(-1); } fgets(flag, 0xff, fp); puts(flag); fclose(fp);..
· CTF
redpwnCTF의 beginner-generic-pwn-number-0 문제다. 바이너리와 바이너리의 소스코드가 주어져 있다. 바이너리를 실행시키면 여러 문구들이 출력된 후 사용자의 입력을 받는다. 입력을 받은 후에는 아무 동작 없이 프로그램이 종료된다. 보호 기법으로는 nx bit만 걸려있는 것을 알 수 있다. #include #include #include const char *inspirational_messages[] = { "\"𝘭𝘦𝘵𝘴 𝘣𝘳𝘦𝘢𝘬 𝘵𝘩𝘦 𝘵𝘳𝘢𝘥𝘪𝘵𝘪𝘰𝘯 𝘰𝘧 𝘭𝘢𝘴𝘵 𝘮𝘪𝘯𝘶𝘵𝘦 𝘤𝘩𝘢𝘭𝘭 𝘸𝘳𝘪𝘵𝘪𝘯𝘨\"", "\"𝘱𝘭𝘦𝘢𝘴𝘦 𝘸𝘳𝘪𝘵𝘦 𝘢 𝘱𝘸𝘯 𝘴𝘰𝘮𝘦𝘵𝘪𝘮𝘦 𝘵𝘩𝘪𝘴 𝘸𝘦𝘦𝘬\"", "\"𝘮𝘰𝘳𝘦 𝘵𝘩𝘢𝘯 1 𝘸𝘦𝘦𝘬 𝘣𝘦𝘧𝘰𝘳𝘦 𝘵𝘩𝘦 𝘤𝘰𝘮𝘱𝘦𝘵𝘪𝘵𝘪𝘰𝘯\"", ..
· CTF
sanity-check redpwnCTF 2021의 sanity-check 문제다. flag가 그냥 주어져있다. flag{1_l0v3_54n17y_ch3ck_ch4ll5} discord redpwnCTF 2021의 discord 문제다. redpwnCTF 2021 디스코드 서버에 들어가 rules 채널을 확인한다면 flag를 얻을 수 있다. flag{chall3n63_au7h0r5h1p_1nfl4710n} compliant-lattice-feline redpwnCTF 2021의 compliant-lattice-feline 문제다. nc로 주어진 서버에 접속해주면 flag를 준다. flag{n3tc4t_1s_a_pip3_t0_the_w0rld}
· CTF
Cyberthreatforce CTF의 Bof_1 문제다. 문제 자체가 어렵기 보다는 혼자 어렵게(쉐도우 복싱 미쳤다..ㅋㅋ) 생각해서 풀이 시간이 오래 걸렸다. 공격 시나리오만 제대로 안다면 10분도 안 걸리고 풀 수 있는 문제다. 문제 파일을 실행시킨다면 위와 같이 동작한다. "hello who are you?"라는 문구가 출력되고 입력을 받는데, 입력한 값이 그 다음 줄에 "Hello "와 함께 출력된다. checksec으로 보호기법을 확인해보면 Canary와 NX가 걸려 있는 것을 알 수 있다. 이 때까지만 해도 canary를 우회하는 상상을 했다. canary는 그냥 장식이었다.. ida로 메인 코드를 확인해보면 bof에 취약한 포맷 스트링 %s와 scanf 함수로 입력을 받는 것을 알 수 있다..
· CTF
HackASet CTF의 iq 문제다. 이번 ctf는 해킹 대회가 아니라 수학? 우주 과학? 문제 대회 느낌이 났다. (이래서 it를 하려면 수학, 과학 공부를 해야 하는 건가..) 일단 풀이 전 이 ctf는 문제 서버에 접속했을 때 각각의 팀에 부여되는 ticket을 입력해줘야 한다. ticket을 입력해야지 문제 내용이 나온다. nc로 대회 서버에 접속하면 다음과 같은 문구들이 출력된다. QPSK Modulation이라는 문구와 함께 IQ(?) 좌표가 출력되고 0100011 같은 2진 숫자 들을 I/Q Sample로 변환하라고 하면서 입력을 받는다. 아예 감이 안 잡혀서 구글링을 하니 QPSK는 위상 편이 변조다라는 것을 깨달았고 I/Q Sample은 하나의 좌표 체계라는 것을 깨달았다. 약 30분 ..
· CTF
HSCTF 8의 stonks 문제다. 이 문제는 대회 기간 내에 풀지 못했지만, 좋은 교훈을 얻을 수 있던 문제라서 풀이한다. 문제를 실행하면 다음과 같은 실행 화면이 나온다. 출력된 문구들을 보면 ai 주식 가격 출력 프로그램인 것 같다. 'Please enter the stock ticker symbol: '라는 문구를 통해 사용자의 입력을 받는데, 시험삼아 많은 수의 1을 입력으로 주니 segmentation fault가 터졌다. bof 취약점이 있는 것 같다. ida를 통해 문제의 main 함수를 확인해보면 puts 함수를 통해 문구들을 출력하고 이름부터 취약한 vuln 함수를 실행해 주는 것을 알 수 있다. vuln 함수에서 사용자의 입력을 처리하는데, 문제는 bof 취약점이 있는 gets 함수..
dyp4r
'CTF' 카테고리의 글 목록