반응형

워게임 270

[247CTF] THE FLAG LOTTERY - MISC / Python

247CTF 에서 제공하는 EASY 난이도의 MISC 문제 MISC는 miscellaneous의 약자로 여러가지 잡다한 이라는 의미를 가지고 있다. 문제 설명을 읽어보면 특정 숫자를 맞춰야만 플래그를 얻을 수 있는것 같다. import SocketServer, threading, random, time class ThreadedLotteryServer(SocketServer.ThreadingMixIn, SocketServer.TCPServer): pass class LotteryHandler(SocketServer.BaseRequestHandler): def handle(self): secret = random.Random() secret.seed(int(time.time())) winning_choic..

워게임/247CTF 2023.10.12

[247CTF] THE ENCRYPTED PASSWORD - 리버싱 / IDA

247CTF 에서 제공하는 EASY 난이도의 리버싱 문제 문제에서 제공되는 파일은 encrypted_password 이다. 해당 파일을 리눅스 환경에서 실행시키면 Enter the secret password : 라는 문구가 출력되고 뭔가 입력을 했을때, 조건과 다르면 바로 종료가 된다. IDA 도구를 이용해 해당 바이너리를 연 뒤 main 함수에서 F5를 눌러 수도코드를 보면 위와 같은 내용이 들어있다. s 라는 변수에 875e9409f9811ba8560beee6fb0c77d2 라는 값이 저장되고, s2 에는 0x5A53010106040309, 0x5C585354500A5B00, 0x555157570108520D, 0x5707530453040752 값이 들어있는것이 보인다. for 문에서 s2와 s를 ..

워게임/247CTF 2023.10.10

[247CTF] THE MORE THE MERRIER - 리버싱 / HxD

247CTF에서 제공하는 EASY 난이도의 리버싱 문제 리버싱이라고 부르기 민망할 정도로 쉬운 문제이다. 문제에서는 the_more_the_merrier 라는 바이너리 파일이 하나 주어진다. ELF 파일이길래 KALI 로 옮겨서 실행해 봤더니 Nothing to see here... 라는 문구만 나오고 아무일도 벌어지지 않는다. 실행해서 플래그를 찾는게 아니라 바이너리 내부 어딘가 숨겨져 있는 느낌이었다. HxD로 열어서 Nothing to see here 부분 근처를 찾아봤더니 한글자씩 띄엄띄엄 적혀있는 플래그를 찾을 수 있었다. 중간에 있는 00 00 00 공백을 모두 지우고 하나로 합쳐 제출하면 문제를 해결할 수 있다.

워게임/247CTF 2023.10.08

[247CTF] SENSITIVE SERVER MEMORY - MISC / Metasploit

247CTF 에서 제공하는 EASY 난이도의 MISC 문제 MISC는 miscellaneous의 약자로 여러가지 잡다한 이라는 의미를 가지고 있다. 문제 설명을 보면 웹 서버의 메모리에 관련된 문제라고 하면서 2014년 이후 패치가 됐을까 하는 의문을 던지고 있다. 웹서버, 메모리, 2014을 키워드로 찾아보면 Heartbleed 취약점에 관련된 것이라는 것을 쉽게 알아낼 수 있다. 맨땅에서 페이로드부터 다 작성해서 풀면 굉장히 어렵겠지만 다행히 옛날 취약점이라 적당한 툴을 이용해면 금방 해결할 수 있다. 특히 칼리리눅스에 내장된 Metasploit 을 이용하면 쉽다. 터미널에서 msfconsole 을 입력해 메타스플로잇 콘솔에 접속해준다. 프롬포터가 나오면 search heartbleed 라고 입력해준..

워게임/247CTF 2023.10.06

[247CTF] HIDDEN FLAG FUNCTION - 포너블 / 버퍼오버플로우 / IDA / Pwndbg / Pwntool

247CTF 에서 제공하는 간단한 버퍼오버플로우 문제 문제에서는 hidden_flag_function 바이너리 파일과 원격 접속 주소가 제공된다. IDA 를 이용해 해당 바이너리를 열어봤을 때 flag, chall, main 세 함수가 정의되어 있었다. main 함수에서는 chall 함수를 호출하고 있고 chall 에서는 scanf로 사용자의 입력을 받는다. v1 의 크기가 68인데 입력값 범위를 체크하지 않아 버퍼오버플로우가 가능해 보인다. 마지막 flag 함수는 서버 내부의 flag.txt 파일을 불러와 내용을 출력해주는데 어디서도 호출하고 있지 않아 실행되지 않는 함수이다. 버퍼오버플로우를 통해 리턴 주소를 변경시켜 flag 함수가 실행되도록 만들어야 한다. pwndbg를 이용해 바이너리를 분석한다..

워게임/247CTF 2023.10.04

[247CTF] MY MAGIC BYTES - 암호학 / XOR

247CTF 에서 제공하는 MODERATE 난이도의 암호학 문제 XOR 과 관련된 문제이다. 문제에서 제공되는 것은 my_magic_bytes.jpg.enc 파일이다. 해당 파일의 내용을 보면 전혀 무엇인지 알 수 없는 상태로 암호화가 되어있다. 문제 설명에 나와있듯이 어떤 키값으로 XOR 되어있기 때문이다. .jpg.enc 라는 확장자를 통해 암호화 되기 전에는 jpg 파일이었음을 알 수 있다. 키 값을 찾아내기 위해서는 jpg 파일이 기본적으로 가지는 특징들을 이용해야 한다. jpg XOR key = enc 라면 end XOR jpg = key 이기 때문이다. 가장 쉽게 확인할 수 있는 것은 jpg 파일의 시그니처이다. 파일마다 조금씩 다르긴 하지만 어떤 jpg 파일들은 FF D8 FF E0 00 1..

워게임/247CTF 2023.10.02

[247CTF] AN IMPOSSIBLE NUMBER - MISC / 정수 오버플로우 / C

247CTF 에서 제공하는 EASY 난이도의 MISC 문제 MISC는 miscellaneous의 약자로 여러가지 잡다한 이라는 의미를 가지고 있다. IMPOSSIBLE NUMBER 라고 하는것을 보니 정수 오버플로우와 관련되었음을 직감할 수 있다. 예전에 비슷한 문제를 다뤘었다. (https://hackingstudypad.tistory.com/619) 문제에서 제공되는 C 코드는 이렇다. impossible_number 를 입력받는데 impossible_number 이상이고, impossible_number 가 impossible_number + 1 보다 커야한다는 조건이 걸려있다. 상식적으로 이런 숫자는 없지만 C언어의 int형을 사용하기 때문에 이 문제는 아주 쉽게 해결할 수 있다. int 형의 경..

워게임/247CTF 2023.10.01

[247CTF] THE TEXT EDITOR JAIL - MISC / Vim

247CTF 에서 제공하는 EASY 난이도의 MISC 문제 MISC는 miscellaneous의 약자로 여러가지 잡다한 이라는 의미를 가지고 있다. 문제페이지에 접속하면 VIM 편집기 화면이 나온다. 이 화면을 벗어나서 터미널로 이동해야하는 느낌이다. :wq! 를 입력해서 강제 종료를 시도해보면 No file name 에러나 나면서 종료가 되지 않는다. 뭔가 종료할 수 있는 다른 방법을 찾야아 한다. VIM 편집기에서는 터미널로 나올 수 있는 다른 방법이 있다. :shell 이라고 명령어를 입력하게 되면 이렇게 터미널로 나갈 수 있다. ls -al 명령어를 쳐보면 run_for_flag 파일이 있는것을 확인할 수 있고 해당 바이너리를 실행시키면 플래그를 확인할 수 있다.

워게임/247CTF 2023.09.28

[247CTF] ERROR REPORTING PROTOCOL - 포렌식 / Wireshark / Tshark

247CTF에서 제공하는 네트워크 패킷 분석과 관련된 문제 기존에 블로그에서 다뤘던 문제 유형과 크게 다르지 않은 쉬운 문제이다. (https://hackingstudypad.tistory.com/495) 문제에서 주어지는 것은 error_reporting.pcap 파일이다. 해당 파일을 Wireshark 로 열어볼 수 있는데 열어보면 맨 위에 하나만 ICMP request 패킷이고 나머지는 ICMP reply 패킷인 것을 볼 수 있다. reply 패킷에 전송될 데이터가 숨겨져 있는 느낌이다. 두번째 패킷을 선택해 data.data 영역을 보면 ff d8 ff e0 로 시작하는것을 볼 수 있다. FF D8 FF E0 로 시작하는것은 JPG 파일의 특징이다. 이런걸 파일 시그니처 라고 한다. JPG 파일을..

워게임/247CTF 2023.09.26

[247CTF] COMPARE THE PAIR - 웹해킹 / MD5 Magic Hash

php의 약한 비교(Loose Comparison) 로 인해 발생하는 php magic hash 와 관련된 웹 해킹 문제이다. 문제페이지어 들어가면 이런 코드가 나온다 php 로 작성되었는데 GET 으로 password 파라미터가 설정되어있고, md5(salt. $_GET['password']) 의 값이 password_hash 의 값인 0e902564435691274142490923013038 와 같은지 확인한 후 같으면 flag 를 보여주는 기능이다. salt 까지 들어간 해시값의 원래 문자열을 찾는건 불가능에 가깝지만 비교할때 '===' 가 아닌 '==' 을 이용해 두 값을 비교하기 때문에 취약점이 발생한다. 위 사진처럼 php 에서는 == 을 사용해 비교를 할 경우 두 값이 정확하게 같지 않아도 ..

워게임/247CTF 2023.09.23
반응형