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