CTF
-
[Clear] X-MAS CTF 2020 flag_checker WriteupCTF/X-MAS CTF 2020 2020. 12. 22. 00:11
Web 카테고리의 세 번째 문제이다. 문제 내용은 아래와 같다. Target 페이지에 접근해보면 php소스가 주어진다. 코드를 간단히 해석해보자. get방식으로 flag라는 파라미터에 사용자 입력값을 받아서 checkFlag 함수로 검증을 한다. 검증 과정은 플래그값(문제에서는 예시로 example_flag 가 주어졌다) 에 대해 대문자가 있다면 소문자로 치환을 하고 사용자 입력값을 한글자씩 플래그 값에 포함되어있는지 검사를 한다. 하지만 몇번째 인덱스이고, 반복 여부 등등을 검증하지는 않기때문에 이를 통해서 플래그를 유추할수는 없고, 사용가능한 문자들이 어떤것인지만 파악 할 수 있다. import requests c= '' arr = [] for i in range(32,126) : c = chr(i)..
-
[Clear] X-MAS CTF 2020 Santa's consolation WriteupCTF/X-MAS CTF 2020 2020. 12. 21. 08:25
두 번째 Web문제였다. 특이한 점은 출제자측에서 곧 런칭할 버그바운티 사이트 안에 문제를 구축해놓았다. 홍보 겸 좋은 방법이라고 생각한다. (나도 이 문제를 계기로 구독하였다 ㅋㅋ) Target에 접속해보면 아래와 같은 사이트가 뜨고, LET's HACK 버튼을 클릭하면 콘솔창에 문제가 로딩된다. 문제를 분석하기 위해 challenge.js 코드를 정리하면 아래와 같다. console.log("%c██████╗░██╗░░░░░██╗░░░██╗██╗░░░██╗██╗░░██╗\n\██╔══██╗██║░░░░░██║░░░██║██║░░░██║██║░██╔╝\n██████╦╝██║░░░░░██║░░░██║██║░░░██║█████═╝░\n██╔══██╗██║░░░░░██║░░░██║██║░░░██║██╔═██..
-
[Clear] X-MAS CTF 2020 PHP Master WriteupCTF/X-MAS CTF 2020 2020. 12. 21. 00:17
Web 카테고리 첫 번째 문제였다. 주어진 사이트에 접속해보면 php 코드가 주어진다. if(strpos($p1, 'e') === false && strpos($p2, 'e') === false && strlen($p1) === strlen($p2) && $p1 !== $p2 && $p1[0] != '0' && $p1 == $p2) { die($flag); } 핵심 코드를 분석해보자. flag를 획득하기 위해서는 아래 조건을 동시에 만족하는 값을 입력해야 한다. 1. param1에는 e가 포함되면 안된다. 2. param2에는 e가 포함되면 안된다. 3. param1과 param2의 길이는 같아야 한다. 4. param1과 param2는 데이터 타입이 다르거나 값이 달라야 한다. (!==) 5. para..
-
[Clear] X-MAS CTF 2020 FORMULA TRANSLATION NOVICE WriteupCTF/X-MAS CTF 2020 2020. 12. 20. 22:41
이번 대회에서 그나마 밥값(?)을 한 문제였을까.. 이 문제의 분류는 리버스 엔지니어링이었다. 문제 내용은, 주어진 문제 파일을 열어보면 아래와 같다. REAL FUNCTION ANALYZER(M, I, B) INTEGER M(*), I INTEGER B, OP OP = I DO 10 I = 1, B B = B + 1 10 CONTINUE I = OP OP = XOR(B, 35) IF (OP .EQ. M(I)) THEN ANALYZER = 1.0 ELSE ANALYZER = 0.0 ENDIF RETURN END SUBROUTINE COMPUTE(A, I, B) INTEGER A, I, B INTEGER OPTIMIZE COMMON /PRAGMA/ OPTIMIZE DO 50 I = 0, B -1 B = B..
-
[Clear] X-MAS CTF 2020 Scrambled Carol WriteupCTF/X-MAS CTF 2020 2020. 12. 20. 17:30
이 문제는 Cryptography 문제였으며, 상세 내용은 아래와 같다. 분류는 암호학으로 되어있었지만 문제 안에 reverse engineering 이란 단어를 보고 도전한 문제.. 주어진 script.py 파일을 보자. import os import random def get_seed(size): return int(os.urandom(size).hex(), 16) input_data = None output_data = "" seed = get_seed(4) random.seed(seed) old_sigma = "0123456789abcdef" ###### new_sigma = list(old_sigma) ###### 비트, 문자 또는 블록을 문자 집합 내부에서 random.shuffle(new_s..
-
[Clear] kksctf 2020 fonction_spéciale WriteupCTF/kksctf 2020 2020. 12. 13. 01:14
주어진 문제는 다음과 같다. f()의 규칙이 주어지고 마지막 x 값이 flag인 문제이다. 해킹 기술력이 필요한 문제는 아니고, 마치 취준할떄 인적성 문제푸는 것 처럼 규칙 파악을 하면 되는듯 했다. f(2229555555768432252223133777492611)=x 기술력이 필요한건 아니니 바로 정답을 예시로 풀어보자. f()의 규칙은 1. 같은 숫자가 반복되는 것을 한 덩어리로 하여 f()에 들어가는 인자값을 구분한다. ex. 2229555555768432252223133777492611 -> 222 9 555555 7 6 8 4 3 22 5 222 3 1 33 777 4 9 2 6 11 2. 한 덩이를 변환하는데, 규칙은 [몇개있나][어떤숫자가] 로 변환된다. ex. 222 -> 32 ( [3개..
-
[Clear] kksctf 2020 Lynx WriteupCTF/kksctf 2020 2020. 12. 13. 00:04
주어진 문제이다. Link를 클릭해보면 lynx가 아니기때문에 접근이 제한된다는 안내만 나온다. Lynx가 뭔지 검색해보니.. 일종의 브라우저라고한다. 리눅스 기반 이기 때문에 Cygwin을 통해서 설치를 하였다. (자세한 설치 방법은 구글링하면 금방 나오니 생략한다.) Cygwin Terminal에 lynx를 설치 후, lynx http://tasks.kksctf.ru:30070/ 를 입력하면, 아까와는 다르게 정상적인 화면이 안내된다. 메인에 robots로 부터 우리의 친구를 지키자(?) 라는 문구가 있어서 /robots.txt 에 접근해보았다. 방법은 G를 누른 후 url을 입력하면 된다. 접근 하면 특정 경로를 disallow 하고 있음을 알 수 있다. robot에 의한 검색은 제한하고 있지만 해..
-