문제분석 & 풀이HTML 파일을 열면, 호박을 클릭하라는 메시지가 나온다. 클릭하고 페이지 아래를 보면 10000 → 9999로 숫자가 줄어든 것을 확인할 수 있다. 느낌 상 9999번 더 클릭해야지 flag를 획득하는 구조인 것 같다. 따라서 10000번을 클릭하는 간단한 javascript 코드를 만들어서 실행하자. [개발자도구]로 [그림]과 같이 호박 id를 알아냈다. [console] 탭으로 이동해서 [그림]와 같이 10000번 클릭하는 코드를 작성하고 실행했다.
문제분석 & 풀이제목인 type confusion이 중요하다고 한다. type confusion 취약점을 이용하는 문제라고 추측 할 수 있다. key == $key) { $ret = ["code" => true, "flag" => $FLAG]; } else { $ret = ["code" => false]; } die(json_encode($ret)); } function gen_key(){ $key = uniqid("welcome to wargame.kr!_", true); $key = sha1($key); return $key; }?>○ 코드 분석1) post 방식으로 json이라는 데이터를 받고 $json에 저장한다.2) sha1 해시값을..
문제풀이 & 분석힌트를 확인하면 admin 계정으로 로그인하는 것이 목표라는 것을 알려주고 있고 tmitter_user 테이블 정보를 알려준다. 페이지에 접속하면 sign in, sign up 2가지로 나눠져있다. 먼저, 계정을 만들기 위해 sign up으로 접속하여 아무 계정이나 만들었다. 그 후 로그인해서 접속하면 위와 같이 트위터 페이지가 뜨는 것을 확인할 수 있다. 이 페이지에서 여러가지 시도를 해보았지만 딱히 진전은 없어서 힌트로 돌아왔다. tmitter_user 테이블에 있는 id,ps 가 32자리로 구성되어있다는 사실을 알 수 있다. 만약, id의 길이가 32자리가 넘어도 계정이 생성될 수 있나?라는 의구심이 들었고 만들어봤다. 먼저, sign up 페이지에 가서 id의 길이제한을 32자리에..
문제분석 & 풀이자바스크립트 게임이고 해킹해서 게임을 클리어 할 수 있는지 묻고 있다. 비행기 게임이 나온다. 우선 게임을 플레이해보자. 죽으면 31337점을 달성하라는 문구가 나온다. 아마도 31337점을 달성해야 클리어 되는 것 같다. 나는 게임 실력이 형편없기 때문에 실력으로 31337점을 달성하기는 힘들 것 같아서 개발자도구(F12)로 코드를 확인했다. 태그를 확인하면, 자바스크립트 코드가 난독화 되어있다. 자바스크립트 난독화 해제 사이트를 이용해서 코드 난독화를 해제하고 확인했지만, 변수명들이 복잡하게 구성됐다. 코드를 최상단에 _0x32bb 배열 안에 여러 변수들이 hex로 저장된 것을 확인할 수 있는데, 아래 코드들을 쭉 보면 사용하는 변수들이 모두 _0x32bb 배열 안의 변수들로 구성됐..
문제분석 & 풀이먼저 힌트를 확인해보니 버튼을 클릭하라고 한다. 문제에 접속하니 버튼을 얻고 싶으면 흰색 버튼을 클릭하라고 한다. 그러나 클릭해도 아무반응이 없다. 페이지의 소스를 확인하기 위해 개발자도구(F12)를 이용해 소스를 확인해봤다. 소스 중 특정 input 태그에 "click me!"라는 value 값이 들어간 것을 확인 할 수 있었고이것을 클릭하면 문제가 해결될 것 같다. input 태그 소스를 자세히 보면 onclick 속성에 클릭시에 어디로 이동할지가 나와있어서 클릭을 하지 않고 그냥 바로 그 주소(?key=e3db)로 접속해봤다. 접속하니 바로 flag값이 나온다! 클리어!!
문제분석 & 풀이 페이지에 접속하면 flag를 원하는지 묻는 구글 폼이 나온다. 두 가지의 선택지가 있는데 특이하게도 "yes" or "no" 가 아니라 "yes" or "sure"다. 미심쩍긴 했지만 flag를 원하기 때문에 아무거나 눌렀다. 눌러보니 0개의 옵션을 선택해야한다고 한다. 그래서 이번에는 아무것도 선택을 안하고 제출하니 필수 질문이라고 뜬다. 우선 코드를 확인하기위해 개발자도구(F12)로 봤다. 페이지에서 가장 눈에 띄는 "Do you want flag?" 라는 질문이 어떤 코드에서 사용되는지 확인했다. 검색결과 하단부 내부에 있었고 덤으로 flag까지 같이 얻었다! 클리어!!