본문 바로가기

CTF

(7)
AUCTF [Pwn] - Thanksgiving Dinner 문제는 다음과 같다. 이게 조금 예전에 열렸던 CTF인데 뒷북이지만 적어서 올려 본당 아, 참고로 저 nc 서버는 닫혀 있으므로 remote 익스는 불가능 하당 ㅜㅜ 먼저 ida로 보면, main 함수에서 vulnerable 함수를 호출한다. 따라가 보면, int 형 변수 5개 만들어 놓고, if 문으로 저 5개 값을 비교해서 전부 참이면, print_flag() 함수를 호출한다. 그냥 간단한 지역 변수 덮는 문제 임을 알 수 있다. fgets로 입력 넣을 때 저 값들을 조건문에 맡게 변조해두면 된다. 아, 참고로 저 print_flag 함수를 보면, flag.txt 파일을 읽어서 출력 하므로 나는 다음과 같이 flag.txt 파일을 만들었당 gdb를 통해 vulnerable 함수에서 검사하는 루틴을 보..
CODE_GATE_2020 [ LOL ] 이번 문제는 LOL 이라는 문제이다. 우선 저 링크에 들어 가 보면 요런 사진을 다운 받을 수 있다. 대충 파일 시그니처 분석해 보면 안에 flag 파일이 있을 거 같은데 HxD 사용할 거 없이 그냥 binwalk 도구를 사용해서 한번에 내부에 어떤 파일들이 들어 있는지 분석해 보면, 이렇게 여러 JPEG 파일 시그니처 파일들을 확인 할 수 있었다. 그런 다음 바로 foremost 도구로 전부 까보면 다양한 jpg 파일들을 확인 할 수 있는데 그중에서 사진 하나 하나 보다 보면 요렇게 flag가 나옴을 확인 할 수 있당 FLAG : CODEGATE2020{J!n*_L00s3_C@^^0^}
CODE_GATE_2020 [ENIGMA] 이번 문제는 ENIGMA라는 문제이다. 문제 이름 부터 왠지 암호학 문제 인거 같다. 우선 저 링크를 들어가 보면, 요런 파일을 다운 받을 수 있다. 요걸 리눅스에서 열어 보면 이렇게 .7z 파일임을 확인 할 수 있고 압축을 풀어 보면, 요런 문자열들이 들어 있는 txt 파일을 확인 할 수 가 있다. 이 문제의 풀이 방식은 밑에 flag is : 문자열 아래에 있는 각 문자들과 위에 해당 문자와 똑같은 문자 위에 대칭 되어 있는 영어 문자로 대칭 시키면 된다. 예를 들어 '9' 면 위에서 '9 를 찾으면 대칭되는 알파벳은 'C' 가 될 것이고, '+' 면 위에서 '+'와 대칭되는 알파벳은 'O' 이다. 이 방식으로 각 문자들을 대칭 시켜 보면, CODEGATE2020{HACKERS ARE NOT !ORN..
CODE_GATE_2020 [Check_Check] 정말로 올만에 블로그에 라업을 적어 본당 ㅋㅋㅋㅋ 먼저 Check_Check 문제이다. 그냥 마이크 체크 문제 인거 같은데 저 jpg 파일이 있는 링크를 확인 해 보면 요런 QR코드가 있다 이걸 찍어보면 flag를 확인 할 수 있당 FLAG : CODEGATE2020{Q_R_C_O_D_E}
HCTF [newbie] - NonPrintable 문제는 다음과 같다. nc주소와 무슨 파일이 주어지는데 먼저 nc부터 접속해보면, 위와 같이 한줄을 입력 받을 수 있당 다음으로 저 첨부된 파일을 열어보면 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 # -*- encoding:utf-8 -*- import os,sys msg = "Can you enter the \xde\xed\xbe\xef(\\xde\\xed\\xbe\\xef)?" print msg sys.stdout.flush() print ">> ", sys.stdout.flush() inp = raw_input() print "your input:", print inp if '\xde\xed\xbe\xef' in inp: with open..
HCTF [newbie] - Sanity Check 그냥 MIC CHECK 문제이당 FLAG : HCTF{flag_looks_like_this}
HCTF [newbie] - NetCat 문제는 다음과 같다. 그냥 문제 제목과 같이 저 주소를 nc로 들어가면 flag를 줄 거 같당 그냥 nc 연결 연습 문제 인거 같당 그런데 저기 첨부 되 있는 파이썬 코드가 궁금해서 까보았는데 1 2 3 4 5 6 7 8 9 10 11 # -*- encoding:utf-8 -*- import os,sys with open("/flag", 'r') as f: flag = f.read() print flag sys.stdout.flush() exit() 머 그냥 nc로 들어가면 서버의 flag를 출력해주는 코드인 거 같당 여튼 플레그는 다음과 같다. FLAG : HCTF{net"Cat" is so cute}