본문 바로가기

Hacking/- Wargame.kr

[Wargame.kr] 6. DB is really GOOD 500점에 해당하는 웹 문제이다. 이 문제의 경우에는 힌트에서도 나와 있듯이 user name과 database 사이의 관계를 알아내어야 한다. 그리고 문제에서 What kind of this Database라고 했으므로 보통의 페이지에서 쉽게 알아볼 수 있는 Mysql의 데이터베이스가 아니라는 것을 추측할 수 있다. 문제 링크 문제 사이트에 접속하면 아래와 같은 내용을 볼 수 있다. 일단 User name을 입력할 수 있는 Inputbox가 존재한다. 혹시 해당하는 사이트의 소스코드가 존재하는지 알아보기 위해서 index.phps로 접속해 보았지만 안 되는 것으로 보아 추측을 통해서 문제를 해결해야 한다는 결론을 얻었다. 일단 가장 먼저 user name으로 의심스러운 것이 admin이었으므로 admi..
[Wargame.kr] 5. WTF_CODE 450점에 해당하는 문제이다.이 문제의 경우에는 약간 특별한 언어로 작성된 것으로 이 언어가 무엇인지 알아내는 부분과 이 언어를 컴파일해서 실행 결과를 얻어내는 부분으로 나눌 수 있다. 문제 링크 문제 사이트에 접속하면 아래와 같은 내용을 볼 수 있다. 일단 source_code.ws라는 다운로드 링크가 있으므로 이것을 이용해서 소스코드를 다운로드 받는다. 그래서 다운로드 받는 파일을 Sublime Text로 열어보니 아무 글자도 써저 있지 않고 그냥 스페이스바, 탭, 엔터로만 이루어진 파일이라는 것을 확인할 수 있었다. 그래서 이와 같은 언어는 특별하게 접한 적이 없어서 "Program language exists only whitespace"라는 검색어로 구글에 검색하니 이 언어가 Whitespace..
[Wargame.kr] 4. login filtering 450점에 해당하는 Web 문제이다. 이 문제의 경우에는 Mysql과 PHP 사이의 차이에 대해서 알고 있는지 여부를 묻는 문제와 같다. 문제 링크 문제 사이트에 접속하면 아래와 같은 로그인 창을 볼 수 있다. 즉 알맞은 ID와 PW를 입력해야지 로그인이 될 수 있다는 것을 알 수 있다. 로그인 버튼 아래에 get source 링크가 있으므로 그 링크로 들어가면 이 페이지를 만드는데 사용한 소스코드를 볼 수 있다. 소스코드를 보면 아래 사진과 같다. 소스 코드의 맨 마지막에서 볼 수 있듯이 blueh4g / blueh4g1234ps가 이 데이터베이스에 들어있는 데이터라는 것을 알 수 있다. 그러나 PHP부분 중 if($id=='guest' || $id=='blueh4g') 에서 이 계정을 필터링한다는 것..
[Wargame.kr] 3. flee button 450점에 해당하는 Web 문제이다. 난이도의 경우에도 이전의 두 문제와 거의 비슷한 난이도이다. 여기서는 Javascript와 HTML에 대한 기초적인 지식만 있으면 풀 수 있는 문제이다. 문제 링크 문제 사이트에 접속하면 아래와 같이 메시지 박스와 버튼이 뜨는 것을 볼 수 있다. 메시지 박스의 내용을 대충 해석하면, 버튼을 누르면 인증키를 얻을 수 있다는 의미이다. 그래서 버튼을 클릭하기 위해서 마우스를 버튼쪽으로 가져가니 버튼이 마우스로부터 계속 멀어지는 것을 확인할 수 있었다. 즉 이것을 통해 Javascript를 이용해서 버튼과 마우스 사이의 거리를 측정한 다음 어느 거리 이하가 되었을 때 마우스로부터 멀어지도록 하는 함수가 구현되어 있다고 추측이 가능하다. 문제에서 버튼을 누리기만 하면 된다고..
[Wargame.kr] 2. QR CODE PUZZLE 300점에 해당하는 Web 문제이다.이 문제의 경우에도 1번과 마찬가지로 매우 쉬운 문제라고 볼 수 있다. 문제 링크 문제 사이트에 접속하면 아래와 같은 6X6 퍼즐을 볼 수 있다. 그리고 퍼즐의 조각을 누르게 되면, 퍼즐이 움직이는 것을 확인할 수 있다. QR code의 경우에는 중간에 누락된 부분이 없이 정사각형으로 모든 데이터가 존재해야만 인식이 가능하다. 그렇기 때문에 이 퍼즐을 다 맞춘다고 하더라도 인식이 불가능하다는 것을 의미한다. 그렇기 때문에 퍼즐을 다 맞추고 나면, 원본 이미지를 가져오는 부분이 존재를 해야한다. 그래서 이 원본 QR code 이미지를 가져오는 부분이 있는지 확인하기 위해서 Chrome의 개발자도구에서 Network탭으로 가서 확인을 해보았다. 마지막 부분을 보면 qr.p..
[Wargame.kr] 1. already got 200점에 해당하는 Web 문제이다.이 사이트에서 가장 낮은 배점을 가지고 있는 만큼 상당히 쉬운 난이도를 가지고 있는 문제이다. 문제 링크 문제 사이트에 접속하면 'you've already got key! :p'라는 메시지를 볼 수 있다. 이미 키에 해당하는 값을 가지고 있다고 하는데, 사이트에서는 표시가 되지 않는다. 혹시 주석으로 key를 써놓았는지 여부를 확인하기 위해서 사이트의 소스보기를 하더라도 주석이 하나도 없는 것을 확인할 수 있다. 여기에도 주석이 없기 때문에 그다음으로 생각할 수 있는 것이 헤더부분에서 key값을 전송해주는 것이 아닌가라는 생각을 할 수 있다. 그래서 크롬의 개발자도구에서 Network 항목을 보았더니 다음 아래와 같은 사진의 형태로 볼 수 있었다. 여기서 Reques..
[Wargame.kr] 0. 로그인 스크립트 Wargame.kr에 있는 Web문제를 풀 때, Python을 이용해서 해결하는 편이다. 따라서 문제를 풀어서 인증키를 얻어내야하는데, 이 인증키는 접속 ip와 접속자 id에 따라서 바뀐다는 말이 써져 있기 때문에, 문제를 해결할 때 쿠키값을 입력받아서 같이 전송을 해줄 필요가 있다. 쿠키값을 얻는 가장 간단한 방법은 브라우저에서 직접 얻어오는 방법도 있지만, 이 사이트가 CodeIgniter 2로 개발이 되어서 쿠키 값이 매우 더럽다.(쿠키를 사용자와 관련된 데이터 전부를 json형태로 저장한다.) 그래서 이것을 한 두번 정도는 직접 복사 붙여넣기를 할 수 있는데, 이 행동을 매 번 문제를 풀 때마다 해야하기 때문에, 단순히 아이디와 패스워드만 입력하는 방법으로 하면, 매번 쿠키값이 달라지는 것에 대해..
[Wargame.kr] web chatting 보호되어 있는 글입니다.