본문 바로가기

전체 글

(53)
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}
backjoon - 2193 번[ 이친수 ] 링크 : https://www.acmicpc.net/problem/2193 2193번: 이친수 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않는다. 이친수에서는 1이 두 번 연속으로 나타나지 않는다. 즉, 11을 부분 문자열로 갖지 않는다. 예를 들면 1, 10, 100, 101, 1000, 1001 등이 이친수가 된다. 하지만 0010101이나 101101은 각각 1, 2번 규칙에 위배되 www.acmicpc.net 문제는 다음과 같당 이 문제에서 요구하는 조건을 보면 이친수는 0으로 시작하여서는 안되고, 1이 연속으로 두 번 이상 나타나서는 ..
SMCH CTF - BOF_ret 이번 문제는 BOF_ret라는 문제당 바이너리를 다운로드하여 실행시켜 보면, 다음과 같이 "By the way, what is your name?"이라는 문자열과 함께 입력을 주게 된다 입력을 한 줄 주면, 요럿게 "No flag... So sad (T.T)"라는 문자열이 뜨면서 프로그램이 종료된다. IDA로 메인 함수를 분석해보자. 메인 함수의 구조는 무척이나 간단했당 우리가 처음 입력 전에 보았던 문자열 3개를 출력한 뒤 greeting이라는 함수를 호출한다. greeting 함수의 구조를 봐 보면, read함수로 buf에다가 입력받은 문자열을 출력해주고 no_flag라는 함수를 호출한다. 이름에서부터 flag를 안 주게 생긴 함수지만 한번 분석을 해보면, 역시낰,, ㅋㅋㅋ 당연히 flag를 주지 않..
SMCH CTF - Calc 문제는 다음과 같다. 이번에도 바이너리 대신 소스 코드를 다운 받도록 되어 있당 코드를 다운 받아 보면, calc.c라는 이름의 C언어 소스 코드 파일을 받을 수 있다. calc.c 소스코드의 내용은 다음과 같당 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 #include #include #include #in..
SMCH CTF - Rock Paper scissors(EZ) 이번 문제는 바이너리가 아닌 무슨 소스코드를 다운받는거 같다. 한번 코드를 다운 받아 보면, 요런 C언어 소스코드가 다운 받아짐을 확인 할 수 있다. C 소스코드는 다음과 같이 생겼당 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 #include #include #include #include #include #include void get_flag(){ system("cat flag"..
SMCH CTF - BOF4 이번에는 BOF4번 문제당 바로 실행시켜 보자 문자열을 입력받는닷 이번에도 아무거나 입력해보장 입력을 주었더니 내가 입력 넣은 문자열과 "No flag... So sad (T.T)"라는 문자열이 출력된다. 바로 IDA로 분석 ㄱㄱ 해보자 main함수의 구조는 다음과 같다 buf를 0x4C만큼 할당하고 memset함수로 버퍼를 초기화 한 다음 v4 함수 포인터 변수에다가 no_flag 의 함수 주소를 넣고, 처음 실행했을 때 봤던 문자열들을 출력한 다음 read함수로 입력을 받는다. 그 다음 if 문을 거친 다음 내가 입력한 문자열을 출력 후 함수 포인터 v4를 통해 no_flag 함수를 호출하고 있다. 솔직히 v5에다가 argc의 주소 값 넣는 거랑 if 문에서 buf [ len-1 ] == 10 조건이..