반응형

전체 글 714

[CTFlearn] Blank Page - 포렌식 / Unicode / HxD

CTFlearn의 쉰 여덟번째 문제 이번엔 조금 참신한 포렌식 문제이다. 이전에도 Unicode와 관련된 비슷한 유형의 문제를 풀어본 적 있는데 (https://hackingstudypad.tistory.com/354) 이번 문제의 풀이법은 조금 다르다. 문제 설명을 읽어보면 Super Agent School을 졸업한 스파이인 나에게 Master-Mind가 비밀 지령을 줬는데 읽지 못하겠다고 도와달라고 한다. TheMessage.txt 파일이 주어지는데 메모장으로 열어보면 아무것도 없는 빈 파일이다. 메모장을 드래그 한번 해봤더니 그래도 뭔가 내용이 들어있는것 처럼 블록이 잡히는걸 볼 수 있었다. 그래서 HxD를 이용해 TheMessage.txt 파일을 열어봤다. 안에 많은 내용이 적혀있었는데, 자세히 ..

워게임/CTFlearn 2023.01.18

[JISCTF] Baby Reverse - 리버싱 / IDA

제목처럼 간단한 리버싱 문제 아무런 설명없이 파일만 덩그러니 주어진다. Easy.zip 파일 압축을 풀어보면 Easy 라는 이름의 파일이 들어있다. 리눅스 환경에서 file 명령어를 통해 어떤 파일인지 확인할 수 있다. ELF 파일이라고 나오는데 ELF는 리눅스에서 실행가능한 실행파일이다. 한번 실행시켜 봤더니 실행하자마자 Try harder!! 라는 문구가 나오면서 프로그램이 종료된다. IDA라는 디스어셈블러를 이용해 Easy 파일을 열어 main 함수의 수도코드를 살펴보았다. 가장 먼저 보이는 조건문에서 argc가 1인지 확인을 한다. 여기있는 argc는 argument의 갯수를 의미한다. 아까처럼 ./Easy 라고만 실행하면 argc 는 1이 되어서 Try harder!! 가 출력되고 끝나는 것이다..

CTF/리버싱 2023.01.17

[CTFlearn] Tone dialing - 암호학 / DTMF

CTFlearn의 쉰 일곱번째 문제 알면 쉬운데 모르면 난감한 그런 유형의 문제이다. 근데 사실 문제 제목에서 큰 힌트를 같이 줘서 그렇게 어렵지 않게 풀 수 있다. 우선 주어진 you_know_what_to_do.wav 파일을 받아서 들어보면 뭔가 전화기 숫자 버튼을 누르는 듯한 소리가 들린다. 마침 문제 제목도 Tone dialing 이라고 되어있으니 전화기가 맞는듯 하다. 여기까지 생각했다면 문제의 의도가 명확해진다. 소리를 듣고 어떤 버튼을 눌렀는지 맞춰야 하는 것이다. 근데 사실 절대음감도 아니고, 마땅한 비교 대상이 있는것도 아니라 이 부분이 어렵다. Tone dialing 관련해서 구글에 검색하다보면 DTMF(Dual-tone multi-frequency signaling) 관련된 내용들을 ..

워게임/CTFlearn 2023.01.16

[JISCTF] Upside Down!! - 암호학 / Python

암호학 카테고리의 간단한 문제 간단한 코딩으로 풀 수 있는 문제이다. 별다른 설명 없이 암호화된 플래그가 주어진다. fkhrwv_wldm_vmtorhs_xszizxgvih_xibkgltizksb 위 내용을 Decrypt 하는것이 문제의 목표인데 문제 제목에서 힌트를 얻었다. Upside Down 이니 뭔가 알파벳으로 장난을 쳤을거라고 생각했다. 맨 앞에 있는 f 를 예로 들어보면 f는 알파벳 순서로 봤을때 6번째에 있으니 (a b c d e f) 알파벳을 z부터 a까지 거꾸로 나열했을 때 6번째에 있는 u 로 (z y x w v u) 바꾸면 되지 않을까 하는 생각이 들었다. 생각한 내용을 코드로 옮길때는 ASCII 코드표를 참고했다. 위의 표를 보면 소문자 a는 10진수로 97, 소문자 z는 10진수로 ..

CTF/암호학 2023.01.15

[마녀배달부키키 코리코카페] 방문 후기

오픈하던날 대기만 5시간이던 마녀배달부키키 공식 카페 코리코카페에 방문했다. 코리코카페의 오픈시간은 오전 11시이다. 평일 오픈런으로 후다닥 뛰어갔는데 오픈한지 꽤 됐는데도 내가 도착하니 앞에 두팀이 대기중이었다. 평일에 날씨도 안좋았는데 오픈런을 해도 대기가 있을 줄 몰랐다. 입간판 부터 귀엽다. 무엇보다 공식에서 인증해서 운영하는 카페라는게 제일 마음이 편한 점이다. 여기저기 지브리 컨셉 또는 해리포터 컨셉 카페들이 많이 생기고 있지만 공식에서 인증해서 운영하는 경우가 거의 없다보니 꽤 신경쓰이는 점이다. 그래도 뭔가 쌀쌀한 날씨가 코리코카페의 분위기에 잘 어울린다. 입구에서 대기하면 이렇게 코리코카페의 바깥을 구경할수 있다. 생각보다 정원이 꾸며져 있거나 하진 않지만 저기 유리창 너머로 보이는 빵집..

일상 2023.01.14

[CTFlearn] PIN - 리버싱 / IDA

CTFlearn의 쉰 여섯번째 문제 이번엔 처음으로 나온 리버싱 문제이다. 문제 난이도가 Medium으로 분류되어 있는데 풀어보면 Easy 수준으로 느껴질만큼 쉽다. 문제에서 주어지는것은 rev1 파일이다. 리눅스 환경에서 file 명령어를 통해 어떤 파일인지 확인할 수 있다. ELF 파일이라고 나오는데 ELF는 리눅스에서 실행가능한 실행파일이다. 한번 실행시켜 봤더니 실행하자마자 Masukan PIN = 이라는 문구가 나오며 사용자 입력을 받는데 123 이라고 입력해봤더니 PIN salah! 라는 문구가 출력되었다. 검색해보니 salah 는 잘못되었다는 뜻이라고 한다. IDA 라는 디스어셈블러를 이용해 rev1 파일을 열어보았다. main 함수의 수도코드를 가장 먼저 살펴보니 scanf 로 사용자의 입..

워게임/CTFlearn 2023.01.13

[JISCTF] Unknow Ransomware - MISC / Base64

어렵지 않은 Unknow Ransomware 문제 뭔가 카데고리 분류하기 애매해서 MISC 로 넣었다. MISC는 miscellaneous의 약자로 여러가지 잡다한 이라는 의미를 가지고 있다. 문제 설명을 읽어보면 unknown ransomware에 감염되어서 파일이 암호화 되었다고 한다. 암호화된 파일이 주어지는 flag.enc 파일인데 이걸 decrypt 하는것이 문제의 목표이다. Notepad++ 을 이용해 flag.enc 파일을 열어봤더니 위와 같은 내용으로 채워져 있었다. 파일의 맨 끝을 보니 == 로 끝나고 있었다. = 은 Base64에서 사용하는 패딩으로 저렇게 알수없는 알파벳+숫자들이 있는 데이터의 맨 끝이 = 또는 == 이라면 Base64 로 인코딩 되었다고 생각하면 거의 맞다. Cybe..

CTF/MISC 2023.01.12

[CTFlearn] The Credit Card Fraudster - 프로그래밍 / Python

CTFlearn 의 쉰다섯번째 문제 이번엔 Easy난이도의 프로그래밍 문제이다. 이전문제들과 달리 뭔가 설명이 길어서 조금 긴장했다. 내용을 대강 읽어보면 INTERPOL에서 추적하고 있는 신용카드 사기꾼을 붙잡았는데 사기꾼이 가지고 있던 영수증에 찍힌 신용카드 번호의 일부분을 보고 신용카드 전체 번호가 어떻게 되는지 알아내는것이 목표이다. 힌트는 두가지가 주어진다. 1. 신용카드 번호는 123457의 배수이다. 2. 신용카드 번호 는 Luhn 알고리즘으로 검증할 수 있다. 한번 파이썬으로 구현해본다. cardnum_f = '543210' cardnum_b = '1234' for i in range(999999): cardnum_m = ('00000' + str(i))[-6:] cardnum = int(..

워게임/CTFlearn 2023.01.11

[JISCTF] Malicious2 - 포렌식 / John the Ripper

간단한 포렌식 문제 Malicious 1 이 있었는지 기억이 안나는데 일단 캡쳐해둔건 Malicious 2 밖에 없다. 별다른 문제 설명 없이 mycv.docx 파일만 덩그러니 주어진다. mycv.docx 파일을 열려고 보니 비밀번호가 걸려있었다. docx같은 오피스 파일 비밀번호를 crack 하기위해 John the Ripper 라는 도구를 자주 사용한다. 여러가지 비밀번호를 crack 해주는 기능을 가지고 있다. 칼리 리눅스에서 offic2john > hash 명령어로 hash 파일을 생성해준 다음 john 명령어로 John the Ripper 를 사용해 hash 파일의 원래 값을 찾아준다. 조금 더 확실하게 찾기 위해 강력한 wordlist 파일은 rockyou.txt 파일을 --wordlist 옵..

CTF/포렌식 2023.01.10

[CTFlearn] Simple bof - 포너블 / 버퍼오버플로우

CTFlearn의 쉰네번째 문제 드디어 처음나온 포너블 문제이다. 포너블이라서 살짝 쫄았는데 이건 내가 봤던 포너블 문제중에서 가장 쉽고 친절한 문제였다. 문제 제목에 나온것처럼 문제의 목표는 버퍼오버플로우를 하는것이다. 먼저 문제에서 주어지는 bof.c 코드를 살펴본다. 크기가 16인 padding, 크기가 32인 buff 배열이 있고, nonsecret에는 0xffffff00, secret에는 0xdeadbeef 라는 값이 각각 들어있다. 프로그램을 실행시키면 Input some text: 를 출력하면서 사용자의 입력을 받는데, 입력을 받을 때 입력값에 대한 길이를 검증하지 않기 때문에 버퍼오버플로우 취약점이 발생한다. 버퍼오버플로우로 secret 변수의 값을 0x67616c66 으로 덮어쓴다면 pr..

워게임/CTFlearn 2023.01.09
반응형