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