본문 바로가기

해킹

[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') 에서 이 계정을 필터링한다는 것..
2016. 02. 03. 어제 보냈던 메일에 대해 답장이 왔다. 답장 내용은 그 내용에 대해서 확인을 했으며, 홈페이지 관리 업체를 통해서 확인작업을 하고 있다는 내용이었다. 생각보다는 빨리 답장이 왔다는 점에 대해서는 약간 놀랐는데, 대강 사이트를 봤을 때 광고글이 많이 올라와서 이미 관리를 포기했나라는 생각이 들었었기 때문이다. 일단 내가 메일을 보낸 내용에 대해서는 알려준 파일들을 삭제하는 것으로 해결을 한 것으로 보였다. 그런데 그 사이트의 경우에는 그 문제 말고도 다른 문제점들이 있었다...... 일단 가장 큰 문제점으로는 누군가가 웹쉘을 업로드 했다는 점이었다. 이 웹쉘의 경우에는 파일의 목록 보기, 업로드, 다운로드, 삭제, 권한 변경 등과 같은 기능들과 Mysql 계정 탈취 및 SQL을 통한 db 데이터 다운로드가..
2016. 02. 02. 갑작스럽게 작년 10월 부터 동아리 웹 사이트를 관리하게 되었다. 그래서 예전 사이트 관리자에게 관리자 id와 password를 받고 관리를 맡게 되었다. 아무래도 좀 오래된 사이트이다보니까 php 버전을 올리니 바로 작동이 500 에러를 내뱉어서 그것을 정상 작동을 시키려고 소스코드를 다 띁어서 봐야 했던 점이 약간 짜증도 났었다.(소스 코드가 frame과 table로 떡칠이 되어 있어서 html5에 맞는 레이아웃을 짜기에는 너무 버거웠다..ㅂㄷㅂㄷ... 차라리 새로 사이트를 구축하는게 빠를 정도로....) 원래 내가 사용하던 계정도 있어서 보통은 그 계정으로 사이트를 관리를 하는데, 최고 권한이 필요한 일이 있어서 관리자 id로 로그인을 했다. 그랬더니 자꾸 메시지가 왔다고 하길래 메시지 리스트를 보..
[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..