반응형

워게임/247CTF 18

[247CTF] AN EXCLUSIVE KEY - 암호학 / XOR

247CTF 에서 제공하는 MODERATE 난이도의 암호학 카테고리 문제 제목에서 알 수 있는것처럼 XOR 관련된 문제이다. 문제에서 주어지는 것은 exclusive_key 파일이다. 해당 파일을 HxD로 열어봤는데 아무 의미없어 보이는 데이터들만 들어있었다. CyberChef(https://gchq.github.io/CyberChef) 에 해당 파일을 업로드 한 후 XOR 을 해보았다. KEY 값이 뭔가 플래그일 것 같아서 플래그 포맷의 맨 앞부분인 247CTF{ 를 넣어봤는데 Output의 맨 앞부분이 뭔가 HTML 을 XOR 한 데이터인듯 했다. 맨 앞부분이 이 되도록 XOR 키를 하나씩 늘려가며 붙혀줬다. 중간중간에 /title> 같은 html 태그들이 보이기 시작하는걸 보니 어떤 웹페이지를 가져..

워게임/247CTF 2023.12.23

[247CTF] THE SECRET LOCK - 리버싱 / Python

247CTF 에서 제공하는 MODERATE 난이도의 리버싱 문제 문제에서 주어지는 것은 The Secret Lock.html 파일이다. 문제에서 주어진 HTML 파일을 실행시켜 보면 이런 화면이 나온다.. 번호 40개짜리 자물쇠인데 각 번호는 0부터 500까지 구성되어 있다. 자전거 자물쇠처럼 돌려서 맞춰야 하는건데 일단 확률부터 말도 안되고, 실제로 돌려볼려해도 너무 느려서 이번생 안에는 도저히 못한다. F12를 눌러 개발자도구를 열어 Javascript 코드를 보니 플래그를 검증하는 듯한 부분이 보였다. 해당 부분을 깔끔하게 보이게 정리해보니 이런 형태였다... 무려 120줄이다. 이 어마어마한 연립방정식을 풀어야 플래그를 찾을 수 있는데 마치 수능을 다시보는 기분이었다. from z3 import ..

워게임/247CTF 2023.11.21

[247CTF] THE WEB SHELL - 포렌식 / Wireshark / Tshark

247CTF 에서 제공하는 MODERATE 난이도의 네트워크 포렌식 문제 문제에서는 web_shell.pcap 파일이 주어진다. 해당 파일을 Wireshark 로 열어보면 특정 웹 서버에 대해서 brute force 하는 듯한 흔적을 찾을 수 있다. uri 를 계속 바꿔가면서 GET 요청을 보내는데, 돌아오는 응답은 모두 404 인것이 보인다. 쭉 내려보다가 /uploader.php 경로에서 200 OK 가 떨어진걸 확인할 수 있었다. 200 OK를 확인한 후 POST 패킷을 이용해 어떤 데이터를 보내고 있다. 해당 패킷을 우클릭 - Follow - HTTP Stream 을 해보니 뭔가 난독화된 PHP 코드를 전송하고 있는데 자세히 보면 그렇게 어렵지 않다. 보기 쉽게 쓰면 위와 같은데 먼저 str_re..

워게임/247CTF 2023.10.28

[247CTF] HIDDEN PAINTING - MISC / Pygame

247CTF 에서 제공하는 EASY 난이도의 MISC 문제 MISC는 miscellaneous의 약자로 여러가지 잡다한 이라는 의미를 가지고 있다. 문제 설명을 보면 플래그가 그림으로 그렸는데, 점들을 이어서 찾을 수 있냐고 물어본다. 어릴때 많이 했던 점선잇기 같은 느낌이다. 문제에서 주어지는 것은 secret_map.txt 파일이다. 16진수가 두개씩 적혀있는데 map 이라는걸 보니 이어야 할 점들의 좌표인듯 하다. python을 이용해 그림을 그려본다. import pygame def main(): pygame.init() background = pygame.display.set_mode((2700, 200)) while True: ev = pygame.event.poll() if ev.type =..

워게임/247CTF 2023.10.24

[247CTF] TRY AND CATCH - MISC / Python

247CTF 에서 제공하는 EASY 난이도의 MISC 문제 MISC는 miscellaneous의 약자로 여러가지 잡다한 이라는 의미를 가지고 있다. 문제페이지로 접속하면 Python flask 코드가 나온다. 웹으로 간단한 계산기를 구현한듯 한데 /calculator 경로에서 number_1, number_2 파라미터에 각각 숫자를, operation 파라미터에 연산자를 넣으면 결과를 출력해주는것 같다. 이렇게 1+2를 넣으면 3으로 결과를 출력해준다. 제목이 Try and catch 인걸로 보아 뭔가 오류를 내야할 것 같은데 아주 쉽게 오류를 낼 수 있는 방법이 있다. 바로 0으로 나누는 것이다. 예외처리가 되어있지 않아 이렇게 바로 오류가 난다. debug 모드가 활성화되어 있는지 디버그 화면으로 넘..

워게임/247CTF 2023.10.20

[247CTF] FORGOTTEN FILE POINTER - 웹해킹 / PHP / LFI

247CTF 에서 제공하는 MODERATE 난이도의 WEB 문제 문제 페이지에 접속하면 이런 화면이 나온다. PHP 코드가 보여지는데 내용을 보면 /tmp/flag.txt 파일에 플래그가 있다는것을 알 수 있다. GET 메소드로 include 파라미터가 있어야하고, include 인자의 길이가 10 이하여야 include 함수로 서버 내부 파일을 읽어올 수 있는듯 하다. 10글자 길이제한이 없다면 단순히 URL 에 ?include=/tmp/flag.txt 를 추가하면 되겠지만 10글자 제한 때문에 안된다. https://bugs.php.net/bug.php?id=53465 PHP :: Bug #53465 :: Cannot open file descriptor streams bugs.php.net 조금 찾..

워게임/247CTF 2023.10.16

[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
반응형