반응형

CTF 604

[CTFlearn] XOR Is Friend Not Food - 암호학

CTFlearn의 일흔 아홉번째 문제 암호학 카테고리의 Hard 난이도 문제인데 풀어보니 Hard는 아닌것 같다. 문제의 목표는 주어진 암호문인 \t\x1b\x11\x00\x16\x0b\x1d\x19\x17\x0b\x05\x1d(\x05\x005\x1b\x1f\t,\r\x00\x18\x1c\x0e 를 해독하는 것이다. 문제 제목에서 XOR 을 언급했으니 당연히 XOR 을 사용해야 할 듯 하다. 플래그가 ctflearn{ 으로 시작한다는 아주 중요한 힌트도 주어진다. CyberChef(https://gchq.github.io/CyberChe) 에서 우선 주어진 암호문을 From Hex 로 바꿔보았다. Output 을 보면 뭔가 결과가 제대로 나오지 않는 느낌인데 이건 중간중간에 인코딩된 문자열이 포함되어있..

워게임/CTFlearn 2023.03.10

[Tenable CTF] H4ck3R_m4n exposed! 2 - 포렌식 / Wireshark

쉬운 난이도의 네트워크 패킷 포렌식 문제 파일 하나로 세 개의 문제를 푸는 방식이다. 문제에서 주어지는것은 hack3rm4n_exp0sed.pcapng 파일이다. pcapng 파일은 Wireshark 도구를 이용해 열어볼 수 있다. 열어보면 위와 같은 화면이 나온다. 조금 내리다 보면 98번 패킷에서 Welcome to Pure-FTPd 라는 문구가 보인다. FTP 프로토콜을 이용해 어떤 파일같은걸 전송하려는듯 하다. 조금 내려가다보면 144번째 패킷부터 supersecure.7z 파일을 전송하고 있는것이 보인다. 해당 패킷을 우클릭 - Follow - TCP Stream 을 눌러서 확인해보면 이렇게 전송되는 Raw 데이터를 확인할 수 있다. 아래쪽에서 Show data as 를 Raw 로 설정해준 뒤 ..

CTF/포렌식 2023.03.09

[CTFlearn] Dumpster - 포렌식 / Eclipse Memory Analyzer

CTFlearn의 일흔여덟번째 문제 이번엔 포렌식 카테고리의 Medium 난이도 문제이다. 포렌식 문제지만 암호학이 살짝 섞여있는.. 그런 문제다. 문제 설명을 보면 플래그를 암호화 해놨는데, 누군가가 성공적으로 복호화 해갔다고 한다. 그때 당시의 heap dump 를 확보했는데 이걸로 플래그를 복구할 수 있냐고 물어본다. 문제에서 주어지는 것은 Decryptor.java 파일과 heapdump.hprof 파일 두개이다. import java.security.MessageDigest; import java.util.Arrays; import java.util.Base64; import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; public..

워게임/CTFlearn 2023.03.08

[Tenable CTF] H4ck3R_m4n exposed! 1 - 포렌식 / Wireshark

쉬운 난이도의 네트워크 패킷 포렌식 문제 파일 하나로 세 개의 문제를 푸는 방식이다. 문제에서 주어지는것은 hack3rm4n_exp0sed.pcapng 파일이다. pcapng 파일은 Wireshark 도구를 이용해 열어볼 수 있다. 열어보면 위와 같은 화면이 나온다. 조금 내리다 보면 98번 패킷에서 Welcome to Pure-FTPd 라는 문구가 보인다. FTP 프로토콜을 이용해 어떤 파일같은걸 전송하려는듯 하다. 조금 더 내려서 313, 314 번째 패킷을 보면 FTP-DATA 로 butter.jpg 파일을 전송하는 것이 보인다. 해당 패킷을 우클릭 - Follow - TCP Stream 을 눌러서 확인해보면 이렇게 전송되는 Raw 데이터를 확인할 수 있다. 파일 앞쪽에 JFIF 라는 문구가 보이는..

CTF/포렌식 2023.03.07

[CTFlearn] My Friend John - MISC / John the Ripper

CTFlearn의 일흔일곱번째 문제 이번엔 MISC 카테고리의 문제이다. MISC는 miscellaneous의 약자로 여러가지 잡다한 이라는 의미를 가지고 있다. 이번 문제는 Easy 난이도 답게 문제 제목과 문제 설명에서 대놓고 John the Ripper 도구를 사용하라고 알려주고 있다. John the Ripper 여러가지 비밀번호를 crack 해주는 기능을 가지고 있다. 문제에서 주어지는 것은 MyFriendJohn.zip 파일이다. 이 파일은 비밀번호가 걸려있지 않다. 압축을 풀면 use-rockyou.zip 파일이 나오는데 이 파일엔 비밀번호가 걸려있다. 그런데 또 친절하게 rockyou 를 사용하라고 알려주고 있다. rockyou 는 무차별 대입을 하기위한 사전파일이다. zip2john > ..

워게임/CTFlearn 2023.03.06

[DiceCTF] babymix - 리버싱 / IDA / Python

쉬운것 같으면서도 쉽지 않은 리버싱 문제 python z3 를 알고있다면 금방 풀수있다. babymix 라는 이름의 바이너리 파일이 하나 주어진다. 한번 실행시켜봤다. admin 비밀번호를 입력하라고 요구하고, 비밀번호가 틀리면 Incorrect 메세지가 출력되면서 종료된다. 바로 IDA 를 이용해 디컴파일 해보았다. main 함수를 보면 사용자의 입력값을 s에 담아 check815546 함수로 집어넣는다. 그 검증결과가 참일경우 Correct 라는 메세지가 출력된다. check815546 함수를 살펴봤다. 사용자가 입력한 값의 각 자리를 계산해서 특정한 조건을 만족시키는지 검증한다. 그런데 한번 검증하고 끝나는게 아니라 여기서 또 check921708 함수를 호출한다. check921708 함수도 마찬..

CTF/리버싱 2023.03.05

[CTFlearn] RE_verseDIS - 리버싱 / IDA / Python

CTFlearn 의 일흔 여섯번째 문제 이번엔 Medium 난이도의 리버싱 문제이다. 숨겨진 비밀번호를 찾으라고 한다. 문제에서 주어지는 것은 problem 파일이다. 리눅스 환경에서 시험삼아 실행시켜 보았다. 비밀번호를 입력받는데 test 라고 입력했더니 틀린 비밀번호라는 문구가 출력된다. 바로 IDA 라는 디스어셈블러를 이용해 problem 파일을 열고, F5를 눌러 main 함수의 수도코드를 살펴보았다. key 배열에 들어있는 값을 key2 배열로 옮겨서 집어넣고, msg 배열에 str[4 * 1] ^ LOBYTE(key2[i]) 의 결과값을 집어넣는다. 그리고 사용자의 입력값이 msg 배열과 같은지 검증하고 있다. key 배열에는 IdontKnowWhatsGoingOn 라는 값이 들어있고, str..

워게임/CTFlearn 2023.03.03

[DiceCTF] Babier CSP - 웹해킹 / 크로스사이트스립트 / CSP

문제 제목처럼 CSP 를 우회하여 XSS 를 해야하는 문제이다. 문제페이지 주소와 쿠키를 탈취해야할 대상인 Admin Bot의 주소가 주어지고 index.js 소스파일이 주어진다. 일단 문제페이지에 들어가봤다. 아래쪽에 View Fruit 라는 버튼이 있는데 이 버튼을 누르면 URL 의 name 파라미터에 apple, orange, pineapple, pear 네 가지 과일이 랜덤하게 들어가고, 그 값을 보이는것처럼 웹페이지에 적어준다. const express = require('express'); const crypto = require("crypto"); const config = require("./config.js"); const app = express() const port = process..

CTF/웹해킹 2023.03.02

[CTFlearn] Smiling ASCII - 포렌식 / HxD / PIL

CTFlearn의 일흔 다섯번째 문제 이번엔 Medium 난이도의 포렌식 문제이다. 문제에서 주어지는 파일은 smiling.png 파일이다. 뭔가 묘하게 기분나쁘게 생겼다. 해당 파일을 HxD 도구를 이용해 열어본다. 파일이 89 50 4E 47 으로 시작하는것을 알 수 있다. 89 50 4E 47로 시작하는것은 PNG 파일의 특징이다. 이런걸 파일 시그니처 라고 한다. 이번엔 HxD에서 스크롤을 내려 파일의 끝으로 이동해 봤다. PNG 파일은 끝날때 49 45 4E 44 AE 42 60 82 로 끝난다. IEND®B`‚ 이렇게 생긴 문자열이 나오면 PNG 파일은 끝난것이다. 그런데 이상한게 위의 문자열이 나왔음에도 뒤에 Base64 인코딩된듯한 데이터가 더 있는것이 보였다. CyberChef(https..

워게임/CTFlearn 2023.03.01

[LACTF] CATS! - MISC / OSINT

MISC 카테고리에 있던 OSINT 관련 문제 OSINT는 Open Source Intelligence 의 약자로 공개출처정보를 의미하고 MISC는 miscellaneous의 약자로 여러가지 잡다한 이라는 의미를 가지고 있다. 문제 설명을 읽어보면 고양이 사진을 보고 이 고양이들이 있는 장소가 어디인지 알아내 달라고 한다. 플래그를 제출할 때는 해당 장소의 웹사이트 도메인을 제출하라고 나와있다. 이게 주어진 고양이 사진이다. 정말 말그대로 CAT HEAVEN 이다. 해당 파일의 속성을 확인해봤더니 경위도 정보가 나와있었다. 경위도를 알면 찾는건 아주 쉽다. 구글 지도를 이용하면 된다. 그런데 이상하게 사진에 있던 경위도를 그대로 써서 검색했더니 북대평양 한가운데 점이 찍혔다. 어떤 섬도 아니고 그냥 망망..

CTF/MISC 2023.02.28
반응형