문제분석 & 풀이admin으로 로그인하는 것이 목적이다. Login 페이지는 존재하지만, sign up 페이지가 존재하지 않아서 계정을 만들 수 없다. users = { 'guest': 'guest', 'user': 'user1234', 'admin': FLAG}코드를 확인해보면, guest 계정이 존재한다. guest로 로그인하면 admin이 아니라는 문구가 뜬다. 세션을 쿠키를 이용해서 관리했으므로 쿠키를 확인했다. [개발자 도구]로 쿠키를 확인하면 sessionid 라는 쿠키가 있다. @app.route('/login', methods=['GET', 'POST'])def login(): if request.method == 'GET': return render_te..
문제분석 & 풀이HTML 파일을 열면, 호박을 클릭하라는 메시지가 나온다. 클릭하고 페이지 아래를 보면 10000 → 9999로 숫자가 줄어든 것을 확인할 수 있다. 느낌 상 9999번 더 클릭해야지 flag를 획득하는 구조인 것 같다. 따라서 10000번을 클릭하는 간단한 javascript 코드를 만들어서 실행하자. [개발자도구]로 [그림]과 같이 호박 id를 알아냈다. [console] 탭으로 이동해서 [그림]와 같이 10000번 클릭하는 코드를 작성하고 실행했다.
문제분석 & 풀이힌트를 보면 "개발자도구의 source 탭을 이용하라"라고 한다. 주어진 파일이 html 파일인 것을 통해서 html 파일에 정의된 html, js 코드를 분석하는 문제라고 추측할 수 있다. index.html을 열면 패션 브랜드 느낌의 페이지가 등장한다. 힌트에서 요구한 대로 [개발자도구 (F12)] → [Sources] 탭으로 접속했다. [그림]을 보면 html, js, css 파일을 확인할 수 있다. [개발자도구] 하단에 위치한 [Search] 창을 이용해서 "DH{"를 입력했다.
문제분석 & 풀이제목인 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 배열 안의 변수들로 구성됐..