반응형

워게임/CTFlearn 103

[CTFlearn] HailCaesar! - 포렌식 / ASCII Cipher

CTFlearn 의 여든 네번째 문제 Medium 난이도의 포렌식 문제인데 이전에 비슷한 유형의 문제보다 살짝 어렵다. 문제설명을 읽어보면, Python 을 사용하면 편하다는데 안써도 충분히 풀 수 있다. 문제에서 제공하는 HailCaesar.jpg 파일은 이렇게 생겼다. HxD 를 이용해 해당 파일을 열어보면 시작부터 뭔가 눈에띄는 데이터들이 보인다. 좀더 깔끔하게 보기 위해 Sublime에 붙혀넣어서 확인해봤다. CTFlearn 으로 시작하는 플래그 같이 생긴애들이 보이고 밑에는 Base64로 인코딩 된듯한 데이터가 보인다. 당연하게도 이 세 가지는 진짜 플래그가 아니다. 힌트일거라고 생각해서 고민해보니 두번째 줄은 맨 앞글자만 모아서 보면 ASCII, 세번째 줄은 32 ~ 126 이라는 숫자에 주목..

워게임/CTFlearn 2023.04.02

[CTFlearn] Weird Android Calculator - 프로그래밍 / JADX / Python

CTFlearn의 여든두번째 문제 이번엔 프로그래밍과 관련한 문제이다. 문제 설명을 읽어보면 이상한 안드로이드 계산기라고 하는데 이상한점을 찾아내라고 한다. 문제를 풀때 안드로이드 기기는 필요없다고 한다. 문제에서 주어지는 것은 WeirdCalculator.apk 파일이다. apk 파일이 주어지는 jadx 라는 도구를 사용하면 유용하다. (https://github.com/skylot/jadx) 자바 디컴파일러로 apk 파일을 넣으면 디컴파일해서 java 소스코드를 볼 수 있게 해준다. jadx 를 실행시킨 후 문제 파일을 열면 이런 화면이 나온다. 왼쪽 메뉴에서 가장먼저 MainActivity 부분을 확인해봤다. 특별한게 없는거 같아서 아래쪽에 Parser 를 눌러보니 AnonymousClass1Int..

워게임/CTFlearn 2023.03.30

[CTFlearn] CoppeRSA Lattice - 암호학 / RsaCtfTool

CTFlearn 의 여든한번째 문제 이번엔 Hard 난이도의 암호학 문제이다. 문제 제목에 나온것 처럼 RSA 암호 알고리즘과 관련되어있다. RSA는 지금까지도 아주 많이 사용하는 공개키 알고리즘의 이름이다. 개발자인 Rivest, Shamir, Adleman 세명의 이름 앞글자를 따서 RSA 라고 이름을 붙혔다. 엄청나게 큰 숫자일수록 소인수분해가 어렵다는것에 착안해서 설계되었다. RSA의 원리는 아래와 같다. 1. 두 소수 p, q를 준비한다. 2. p-1, q-1과 각각 서로소(1외에는 공약수가 없는 수)인 정수 e를 준비한다. 3. ed를 (p-1)(q-1)으로 나눈 나머지가 1의 되도록 하는 d를 구한다.(d는 개인키로 공개하지 않는다) 4. n=pq를 계산한 후 n과 e를 공개한다.(이 둘이 ..

워게임/CTFlearn 2023.03.28

[CTFlearn] Adoni Assembler Chall - 프로그래밍

CTFlearn의 여든번째 문제 사실 이 문제 전에 AudioEdit 라는 엄청 어려운 웹해킹 문제가 있는데 내가 못푸는건지 문제 서버가 이상한건지 계속 에러가 나서.. 일단 스킵했다. 이번 문제는 프로그래밍 카테고리에 있지만 사실 문제푸는데 프로그래밍은 필요없다. 난이도와 점수가 그걸 증명한다. 문제 설명을 읽어보면 대충 주어지는 adoni.asm 파일에서 플래그를 찾으라고 한다. 문제에서는 adoni.asm 과 readme 파일이 주어진다. readme 파일은 문제에 대한 친절한 설명과 함께 어셈블리 프로그래밍에 대해 공부할 수 있는 유튜브 링크까지 주어진다. 사실 이번문제는 복잡하게 생각안해도 풀 수 있다. adoni.asm 파일을 열어보면 이렇게 생겼다. 어셈블리 코드를 몰라도 된다. 가장 처음에..

워게임/CTFlearn 2023.03.26

[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

[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

[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

[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

[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

[CTFlearn] MountainMan - 포렌식 / HxD / XOR

CTFlearn 의 일흔 네번째 문제 이번엔 Medium 난이도의 포렌식 문제이다. 문제 설명이 없었다면 어려울뻔 했는데 문제 설명때문에 아주 쉽게 풀 수 있다. 문제 설명을 보면 0xffd9 마커가 두개 있는것에 속지 말고, XOR 이 친구가 되줄거라고 알려준다. 이건 거의 뭐 풀이법을 다 알려준거나 마찬가지다. 우선 문제에서 주어지는 MountainMan.jpg 파일은 이렇게 생겼다. 해당 파일을 먼저 HxD 로 열어보았다. 맨앞이 FF D8 FF E0 로 시작하는걸 볼 수 있는데 FF D8 FF E0 로 시작하는것은 JPG 파일의 특징이다. 마찬가지로 JPG 파일은 FF D9 로 끝이 난다. 저 뒤에 더이상 데이터가 있으면 안되지만 문제 설명에서 언급했던 대로 FF D9 뒤에 약간의 데이터가 더 있..

워게임/CTFlearn 2023.02.27
반응형