Transcript lunatic

PADOCON 2007
CTF Online
-Lunatic-
Stage 1. Bingo
문제 1 : Web(Cookie가 보여졌다가 사라지는 문제)
그림이 뜨고 alert 창을 확인하면 실패하였습니다. 다시 확인하세요 라는
문구가 뜬다.
문제 2 : For fun (Steganography)
휴대폰 음을 통해 패스워드를 유추하는 문제
문제 3 : Web(Admin2007)
Admin으로 로그인 할 때 패스워드를 묻는 문제
문제 4 : Reverse(핸드 리버싱)
어셈코드를 보고 패스워드를 유추해내는 문제
문제 5 : Web(Steganography + unescape)
여자 그림이 하나 뜨고, 밑에 인증 코드를 넣는 곳이 하나 있음.
1
Stage 1. Bingo
문제 6 : Web(Ajax)
제시한 URL로 들어가면 익스플로러가 죽어버린다.
문제 7 : Reverse(항구 문제)
웹페이지에서 항구 그림이 제시되어있고 여기서 주어진 힌트를 따라 문
제를 해결.
문제 8 : For fun(암호대화)
대화가 암호화 되어있다. 패스워드가 숨어있으니 대화를 확인
문제 9 : For fun(GNU)
웹페이지에 GNU 마크 그림이 하나 제시 되며, 암호화 된 키를 풀이해야
한다.
문제 10 : Web(스파이더맨)
스파이더맨이 술을 마시는 패러디 그림이 제시되어있다.
2
Stage 1. Bingo
문제 11 : Web(아이엠샘)
아이엠샘 포스터가 제시되어 있고 밑에는 암호화 된 숫자및 문자가 나열
되어 있다.
문제 12 : Reverse(가장 어려웠던 문제)
MFC 파일이며, 꽃 모양의 아이콘으로 되어있는 프로그램을 리버싱해서
답을 유추하는 문제.
문제 13 : Web(코드 제시)
C형태의 코드가 몇줄 제시 되어있는 문제
문제 14 : For fun(암호화)
파일이 하나 다운받아서(CTF14.exe) 암호로 된 문장을 만드는 문장을
찾아야 함.
문제 15 : Web(Cookie 변조)
웹페이지에 사각형이 8개 색깔별로 제시되어 있다.
문제 16 : Bonus(추가 셔플 횟수)
3
Level1
문제 1 : Web(Cookie가 보여졌다가 사라지는 문제)
그림이 뜨고 alert 창을 확인하면 실패하였습니다. 다시 확
하세요 라는 문구가 뜬다.
페이지에 접속하면은 key는 제빨리 사라집니다라는 글
과 함께 alert창이 뜸.
Achilles란 프로그램을 이용하여 확인해보니 alert창을
누르면 keysniff.php로 넘어감.
padowave=key라는 쿠키를 생성한뒤 gone.php로 넘어
감
4
Level1
Gone.php에서 Set-Cookie: padowave=deleted;
expires=Sat, 25 Feb 2006 14:58:17 GMT; 이라고
padowave를 지우는것을 확인하고 padowave=key라고
쿠키를 다시 세팅하고 페이지는 result.php로 넘어감.
“<img src='pado.jpg'><br><br>Bravo! 패스워드는
'padowaveshocking' 입니다.” 라는 메시지와 함께 정답
이 출력됩니다.
5
Level1
6
Level2
문제 2 : For fun (Steganography)
휴대폰 음을 통해 패스워드를 유추하는 문제
페이지에 접속하면 전화기 그림과 Dials.wav 라는 파일존
재함.
Dials.wav 재생시 다이얼음이 녹음되어있다.
DTMF Decoder 라는 프로그램을 이용하여 번호 추출
프로그램을 통해 알아낸 번호와 전화기 그림을 이용하여
패스워드 확인
7
Level2
(DTMF Decoder 라는 프로그램을 이용 하여
어떤 숫자가 눌렸는지 알아내고있다.)
8
Level3
문제 3 : Web(Admin2007)
Admin으로 로그인 할 때 패스워드를 묻는 문제
쿠키의 ENCID값을 Admin2007을 암호화한 것으로 셋
회원정보에서 비밀번호를 얻을 수 있다.
암호화된 규칙을 파악하여 비밀번호를 알아 낼 수 있다.
DAE00B20706150609000A11B20A1BBB055E5..
= EoRkfwhgdmsQksWn29724791
= 떄깔좋은빤쭈29724791
9
Level4
문제 4 : Reverse(핸드 리버싱)
어셈코드를 보고 패스워드를 유추해내는 문제
페이지에 접속하면 디스어셈된 코드가 나와있다.
calculation 이라는 함수를 자세히 살펴보면
패스워드를 알아낼수있다.
0x4d,0x69,0x6c,0x6d,0x79,0x77,0x61,0x79
를 아스키로 변환하면 Milkyway 라는 문자열이 나온다.
10
Level4
(calculation의 디스어셈코드)
11
Level5
문제 5 : Web(Steganography + unescape)
여자 그림이 하나 뜨고, 밑에 인증 코드를 넣는 곳이 하나
있음.
Escape 된 Javascript 소스를 unescape 하면
인증코드를 알아내고 들어가면 여러가지 문자들과함께
Findme.bmp라는 그림파일이 뜬다.
Unescape된 자바스크립트를 살펴보면
#P%A!D@O$R$I!D%A 라는 문자열을 만들고있다.
S-tool이라는 툴을 이용하면 Findme.bmp 안에서
Password.txt 파일을 찾을수있다.
12
Level5
(S-tool 을 이용하여 Password.txt 파일 추출)
13
Level6
문제 6 : Web(Ajax)
제시한 URL로 들어가면 익스플로러가 죽어버린다.
Ajax를 이용해서 wanted.php를 받아온다.
하지만 무한루프로 함수가 실행되기때문에
익스플로러가 버벅인다.(실제로 다운되진 않았다.)
wanted.php의 안에는 패스워드가 담겨있다
14
Level7
문제 7 : Reverse(항구 문제)
웹페이지에서 항구 그림이 제시되어있고 여기서 주어진 힌트를 따라
문제를 해결.
웹페이지에 접속하면 항구그림과 뒤에 소스코드의 일부가 캡쳐된 그
림이 겹쳐있다.
제시된 아이피와 포트로 접속하면 몇 개의 주소가 출력되며, printf함
수의 인자를 조작해서 패스워드부분의
주소로 변조해야 한다.
하지만 입력받는 버퍼보다 패스워드가 저장되있는변수의 주소값이
낮은곳에있다.
힌트로 제시된 소스코드를 보면 ‘!’ 를 이용하여 낮은주소에 접근이가
능하다.
15
Level8
문제 8 : For fun(암호대화)
대화가 암호화 되어있다. 패스워드가 숨어있으니 대화를
확인
대화의 흐름을 보고 나올 말들을 생각하며
문자 하나하나 일대일로 대칭시켜보며 대칭표작성함.
해독된 대화를보면 딸의 이름이 패스워드이며
딸이 이름이 eliane라고 말하는걸 볼수있다.
16
Level9
문제 9 : For fun(GNU)
웹페이지에 GNU 마크 그림이 하나 제시 되며, 암호화 된
키를 풀이해야 한다.
웹페이지에서 PadoriEncoder.exe를 다운받는다.
몇번의 테스트 결과 평문의길이=키의길이=암호화된 키의
길이 라는걸 알수있다.
힌트를 보고 평문은 gnuisnotunix 이라고 추측.
간단한 프로그램을 작성하여 패스워드 획득.
17
Level9
=
18
Level10
문제 10 : Web(스파이더맨)
스파이더맨이 술을 마시는 패러디 그림이 제시되어있다.
e35eb447217f4919ce040be5251517f6
2a85c0743d286e20ed4f05feeb25a083
bfa0e2b6f1134e36360a1261eee7eb9c
페이지에 접속하면 위와같은 해쉬스트링 3개가 있다.
각각 s3xy pad0 c5n 이라는 값이 나온다.
19
Level11
문제 11 : Web(아이엠샘)
아이엠샘 포스터가 제시되어 있고 밑에는 암호화 된 숫자
및 문자가 나열되어 있다.
padocon:1006:3A2031B32E4880E0AAD3B435B51404E
E:C75B184F1A53D557945F640A370AE3F8:::
아이엠샘이라는 문제제목과 위의 문자열을 보고
SAM파일 크랙 문제라고 추측
l0phtcrack이라는 SAM용 Crack 프로그램을 사용하면,
padocon:"OKAY":"okay":3A2031B32E4880E0AAD3B43
5B51404EE:C75B184F1A53D557945F640A370AE3F8
라는 결과를 얻을 수 있다.
20
Level12
문제 12 : Reverse(가장 어려웠던 문제)
MFC 파일이며, 꽃 모양의 아이콘으로 되어있는 프로그램
을 리버싱해서 답을 유추하는 문제.
하드디스크의 볼륨이름을 “PADORIFIGHT”로 해야함.
.data에 NAME is 18char을 보고, 시리얼 부분과 NAME
부분을 다음 부분으로 추정
Serial: foB-r$; Name : !!SeC
iRst!!
Serial에 맞는 Name값을 찾으면 된다.
21
Level13
문제 13 : Web(코드 제시)
C형태의 코드가 몇줄 제시 되어있는 문제.
간단히 비트 연산을 하는 코드가 존재했는데, 실제 그 값
을계산기를 이용하여 16 진수로 변경하여 보니,
0x6C 0x6F 0x76 0x65 였다. 문자열로 표시해보면 love
라는 패스워드 획득.
22
Level14
문제 14 : For fun(암호화)
값을 삽입해보면서 각 자리의 수치변화를 알아본다.
변화량에 맞추어 적절한 알파벳을 삽입하여 정답을
찾아낸다.
23
Level15
문제 15 : Web(Cookie 변조)
웹페이지에 사각형이 8개 색깔별로 제시되어 있다.
페이지에 접속하면 아래와 같은 그림이 존재한다.
4개의 사각형은 정지해있고 나머지 4개의 사각형은
랜덤하게 움직인다.
쿠키중 SESSIONID의 값에 따라 나머지
4개의 사각형의 위치가 바뀌었다.
24
Level15
SESSIONID에 들어가는값은 각각 사각형의 좌표였고
순서는 분홍색 노란색 파란색 초록색 이다
순서대로 x,y좌표를 16진수로 표현한뒤에 base64로 인코
딩 해야 한다
사각형들의 좌표는 각각
(25,3e) (79,22) (19,8a) (9c,81)
253e7922198a9c81를 인코딩한
MjUzZTc5MjIxOThhOWM4MQ==
라는값을 SESSIONID에 넣은뒤 페이지를 요청하면
패스워드를 획득할수 있다.
25
Level16
문제 16 : Bonus(추가 셔플 횟수)
OverTheRainbow라는 답이 나와있다.
26
Stage 2. Step by Step
문제 1 : Reverse(CTF.exe)
MFC 프로그램을 실행하면 CTF2007 이라는 문구가 검정색 바탕의 흰
글씨로 나타나며 밑에 submit 이 보임
문제 2 : Web(Ajax)
웹페이지에 소설같은 글이 제시 되어 있다.
문제 3 : Return to the Bingo
빙고 문제중 3문제에 숨겨져있는 코드를 확인
문제 4 : Web
홈페이지에서 다운받을 수 있는 파일을 참조 하면서 깨진 화면의 웹페이
지가 주어진다.
문제 5 : Reverse(Windows)
파일을 다운받아서 윈도우 XP 상에서 리버싱
27
Level1
문제 1 : Reverse(CTF.exe)
MFC 프로그램을 실행하면 CTF2007 이라는 문구가 검정색
바탕의 흰 글씨로 나타나며 밑에 submit 이 보임
0x4017c0부터 사용자가 입력한 키가 올바른지 비교
위 루틴의 리턴값은 0x4354여야 올바른 결과로 판별
됨으로 0x4354를 만족 시키도록 값을 조정하여 대입
하여 주면 된다.
위 조건을 만족 시키는 키로 진행을 하면 서버로 부터
패스워드가 있는 파일주소를 복화화 하여 읽어온다.
28
Level2
문제 2 : Web(Ajax)
웹페이지에 소설같은 글이 제시 되어 있다.
소스를 보면 js파일과 소설같은글 그리고 주석처리된부분
이 있다.
Javascript 파일을 분석해보면 Ajax라는걸 이용하여
Background를 통해 1초에 한번씩ace.php파일의 내용을
출력해준다.
ace.php파일이 출력되는곳의 주석처리를 제거하면
시간이 표시된다.
약 1분주기로 시간밑에 문자가 출력되었고 그 문자들을
모아보면
패스워드를 획득할수있다.
29
Level3
문제 3 : Return to the Bingo
빙고 문제중 3문제에 숨겨져있는 코드를 확인
Stage.1인 빙고판에서 풀었던 문제를 다시 클릭하면
그중 3개의 문제에서
padocon / 2007 / coming soon
이라는 문자열들을 찾을수있으며
그 문자열들을 조합하면 패스워드가 된다.
30
Level4
문제 4 : Web
홈페이지에서 다운받을 수 있는 파일을 참조 하면서 깨진
화면의 웹페이지가 주어진다.
깨진 문자열의 맨 처음을보면 ELF 를 확인할수있다.
파일을 다운받은뒤 리눅스상에서 실행해보면
7899번 포트가 열리며 가상 웹서버가 실행된다.
파일을 분석해보면 target 함수에서 passwd라는
파일을 읽어온다.
깨진문자열이 뜨는 파일과 같은경로의 passwd파일을 요
청하면
패스워드가 담긴 페이지를 찾을수있다.
31
Level5
문제 5 : Reverse(Windows)
파일을 다운받아서 윈도우 XP 상에서 리버싱
SOFTWARE\Microsoft\Windows\Current
Version\policies\system에
legalnoticecaption의 값으로는 “I love binish ”
를, leganoticetext의 값으로는 “I want binish ”
를 셋하여 준 후, 프로그램을 진행시키면 올바른 키를
얻을 수 있다.
32