안녕하세요. 오늘은 webhacking 17번을 풀어보겠습니다. http://webhacking.kr - 로그인 - challenge - 17번으로 들어가 주세요.

빈칸과 체크버튼이 있습니다. 흠 무슨 뜻일까요. 일단 문제를 알아내기 위해 오른쪽 마우스 - 소스보기를 눌러줍시다.

script부분에 무슨 복잡한 계산식이 있네요. 그리고 그 밑에는 if(login.pw.value==unlock){ alert("Password is "+unlock/10); }else { alert("Wrong"); } 라고 되어있네요. 해석해보면 unlock에 저 계산식의 값을 저장하라. 그리고 만약 login.pw.value의 값이 unlcok의 값과 같으면 Password is +(unlock/10)을 출력하고 아닌경우엔 Wrong를 출력하라. 라고 되어있습니다. 일단 딱봐도 unlock을 계산해야 문제가 풀릴 것 같습니다. 그런데 또 저걸 일일이 계산하는 분은 없을거라고 봅니다. 그럼 계산기를 이용하느냐? 그것도 귀찮지 않습니까? 그래서 정말 간단하게 풀어봅시다. 아래그림처럼 자바스크립트 콘솔로 들어갑니다.

창이 열리면 unlock=부터 9999999999; 까지 복사하여 붙어주세요. 그리고 엔터를 눌러시면 아래그림과 같이 답이 나옵니다.

음 unlock의 값은 구했습니다. 그런데 아까 소스에서는 unlock의 값이 login.pw.value와 같을경우 패스워드를 출력한다 했으니 즉 login.pw.value의 값이 9997809307이 되어야 합니다.그럼 대체 login.pw.value은 뭘까요? 알아내기위해 오른쪽 상단메뉴 - 도구 더보기 - 개발자도구를 눌러주세요. 

login.pw.value 란 해석하면 form name이 login이고 이름이 pw인 것의 값이라는 소리입니다. 조건에 맞는 소스를 찾아 눌러보니 왼쪽화면에 블록이 딱 잡히는군요. 즉 저 블록잡힌 것이 login.pw라는 뜻입니다. 값이라는 것은 저기에 입력한 값을 말하겠지요. 자 그러면 이제 패스워드를 알아내기 위해 login.pw에 unlock값을 넣어봅시다.

소스에 나온대로 패스워드가 나오는군요. 자 이제 패스워드를 입력해봅시다.

??? 패스워드를 그대로 입력했더니 틀렸다라는 문구가 나왔습니다. 다시한번 소스를 봅시다. 보시면 아시겠지만 login.pw의 값이 unlock값이랑 같을때에는 패스워드를 출력하지만 틀렸을 경우에는 wrong을 출력합니다. 즉 login.pw의 값에는 9997809307의 값 외에는 무조건 Wrong을 출력한다는 소리입니다. 다른 말로 패스워드를 알았지만 login.pw에 넣어선 안된다. 라는 뜻이 되겠네요. 그리고 무엇보다 소스에 solve()가 없습니다. 해결하라라는 함수자체가 존재하지 않기 때문에 이 페이지내에선 문제를 해결할 수 없다는 것입니다. 일단 문제를 해결하기 위해 뒤로가기를 눌러 메인메뉴로 나와봅시다. 답을 어디다 적어야 될까요? 적을만한 곳을 찾기 위해 메뉴를 전부 뒤져봅시다.

forum은 토론회, msg은 message(메세지)의 약자, challenges는 도전과제, auth는 authentication(인증의 약자), rank는 순위 , service는 말그대로 서비스, friendly는 관련사이트 인것 같습니다. 메뉴를 살펴보니까 도전과제 옆에 적혀있는 인증이 맘에 걸리는군요. Auth를 눌러봅시다.

Flag라는 칸이 나오는군요. Flag는 원래 깃발이란 뜻이지만 컴퓨터계에서의 Flag는 프로그램 실행중에 특정 상태가 성립했는지의 여부를 식별하기 위하여 조사되는 데이터의 항목입니다.즉 여기가 인증하는 곳 인것 같으니 여기에 아까 패스워드라고 나왔던 999780930.7을 입력해봅시다. 다 입력한 후 submit(제출)를 눌러주세요

짝짝 참 힘들게 풀었습니다.

감사합니다.



'Webhacking' 카테고리의 다른 글

Webhacking - 27번문제  (2) 2015.07.10
Webhacking - 문제24번  (0) 2015.07.10
Webhacking - 문제 11번  (0) 2015.07.08
webhacking시작 - 문제17번  (6) 2015.07.05
webhacking시작 - 문제1번  (0) 2015.07.04
webhacking시작 - 회원가입  (0) 2015.07.04
Posted by englishmath

안녕하세요. 오늘은 webhacking의 문제1번을 풀어보겠습니다. www.webhacking.kr에 들어가서 로그인을 합시다. 

로그인을 하셨으면 위와 같은 화면이 나옵니다. 그리고 상단의 Challenges 를누르고 문제 1번을 누릅니다.

level : 1이라고 적혀있는 사이트가 나오고 밑에 index.phps가 있습니다. 흠 뭘 어떻게 해야 풀 수 있을까요? 문제도 안나와있습니다. 일단 이 사이트 정체를 파악하기 위해 오른쪽 마우스 - 소스보기를 클릭합니다.

여기서 주목할 부분은 12번줄에 있는 명령어입니다. 해석하면 a onclick = 누르면 , location.href 'index.phps' = index.phps란 페이지로 이동한다. 라는 뜻인데 그럼 무얼 클릭해야 이동할까요? 뒤쪽에 보시면 글자가 있죠. index.phps 즉 화면에 나와있는 글자입니다. 즉 index.phps를 누르면 index.phps 페이지로 이동한다. 라는 뜻이 됩니다. 그러면 한번 눌러 봅시다.

아까보다 알아보기 힘든 소스가 나옵니다. 마치 영어문제 푸는 것 같습니다. 다른건 머리아프니까 보지말고 solve() 함수쪽을 봅시다. solve()함수는 해결한다. 라는 뜻으로 앞으로도 이런문제를 풀때에는 solve()를 유심히 봐야합니다. solve() 함수 앞에 if문이 있네요. 다들 아시다시피 if문은 조건식으로 if 가로 안의 조건이 맞다면 그 다음걸 실행하라 라는 뜻입니다.

즉 이문제는 COOKIE[user_lv)이 5보다 크면 해결된다 라고 적혀있습니다. 그런데 바로 위의 조건을 보시면 COOKIE[user_lv)이 6보다 크거나 같으면 1을 반환하라고 되어있습니다. 쉽게 말해 COOKIE[user_lv)값에 6이상의 숫자를 넣으면 강제로 COOKIE[user_lv)값이 1로 저장된다는 것입니다. 그런데 1은 5보다 작은 숫자이기 때문에 문제가 해결되지 않습니다. 그렇다면 COOKIE[user_lv)값에 6이상의 숫자를 넣으면 안된다라는 결론이 나옵니다. 

정리를 하면 COOKIE[user_lv)값에 6이상의 숫자를 넣으면 안된다. 그런데 해결할려면 5보다 큰 수를 넣어야 한다. 즉 5보단 크고 6보단 작은 수를 넣어줘야 합니다. 문제자체는 풀었습니다. 그런데 이제 이 정답을 어디다가 넣어야 할까요? 아까 페이지에선 정답을 넣는 칸이 없었습니다. 소스를 보니 숨겨진 것도 아닙니다. 이럴때에는 변수즉 COOKIE[user_lv)를 잘 봐야합니다. 쿠키란 뭐 일반적으론 먹는 과자 이름이지만 컴퓨터내에서 쿠키란 웹사이트에 접속할 때 자동적으로 만들어지는 아이디, 비밀번호, IP주소 등의 정보를 담고 있는 일종의 정보파일입니다. 우리는 그 쿠키에 값을 넣어줘야 하므로 쿠키를 관리할 필요가 있습니다. 그래서 쿠키를 관리할 수 있게 도와주는 일종의 프로그램을 설치해 봅시다. 마침 크롬 웹 스토어에 좋은 프로그램이 있으므로 그 프로그램을 사용해 봅시다.

https://chrome.google.com/webstore/에 들어가 쿠키 라고 치고 검색을 하여 아래그림처럼 EditThisCookie를 찾아 'CHROME에 추가'버튼을 눌러주시면 됩니다.

추가가 완료되었으면 오른쪽 상단위에 쿠키모양의 버튼이 생깁니다. 자 이제 아까 들어왔던 문제 1번 화면으로 갑시다. index.phps에서 그냥 뒤로가기버튼을 누르시면 됩니다. 화면으로 돌아왔으면 오른쪽 상단의 쿠키버튼을 눌러봅시다.

보니까 user_lv라는 변수명이 보이네요. COOKIE[user_lv)의 그 user_lv입니다. 자 이제 값만 바꿔주면 됩니다. 값에 1이라고 적혀있으니 지우고 5와 6사이의 값을 적어주세요. 저는 그냥 5.5적겠습니다. 다 적었으면 밑의 V버튼을 눌러주세요. 수정이 완료되었으면 쿠키를 닫고 F5버튼을 눌러주세요.

흠 축하한다네요. 


네 이렇게 첫번째 문제를 풀었습니다. 200점 주네요. 이 점수가 어따 쓰이는지는 모르겠지만 점수가 높은 문제일수록 더 어려워진다는 것만 아시면 됩니다.

감사합니다.




'Webhacking' 카테고리의 다른 글

Webhacking - 27번문제  (2) 2015.07.10
Webhacking - 문제24번  (0) 2015.07.10
Webhacking - 문제 11번  (0) 2015.07.08
webhacking시작 - 문제17번  (6) 2015.07.05
webhacking시작 - 문제1번  (0) 2015.07.04
webhacking시작 - 회원가입  (0) 2015.07.04
Posted by englishmath

안녕하세요. 오늘은 웹해킹에 관한 포스트를 써보겠습니다.

일단 www.webhacking.kr 로 들어갑니다.

들어가시면 이런 화면이 뜹니다. 눈치빠른 분은 아시겠지만 이 로그인 화면에는

로그인 버튼은 있는데 회원가입 버튼은 없습니다. 회원가입버튼이 없는데 어떻게

회원가입을 할 수 있을까요? 그래서 일단 비밀을 파헤치기 위해 소스를 확인해 봅시다.

그대로 오른쪽 마우스 - 소스보기를 클릭해주세요.

 

 

소스들을 하나씩 살펴보면 그중 한부분이 혼자 초록색인 부분이 보입니다. 이러한 초록색 소스는 주석처리라고 하여 이 소스에 대한 부가설명을 덧붙여 사용자가 이 소스를 최대한 이해할 수 있도록 하는 설명문 같은 것입니다. 근데 이 소스는 아무리 읽어봐도 설명문으로 보이진 않습니다. 오히려 '<input type = button' 부분을 봐서 명령문이라고 봐야합니다. 해석을 해보면 input = 입력해라 , type button = 형태가 버튼이고 , value Register = 값이 Register인 , 즉 Register버튼을 입력해라 라고 되있습니다. 근데 홈페이지에 아무리 찾아봐도  Register버튼은 없고 Login버튼만 있습니다. 왜냐하면 이부분이 주석처리가 되어 설명문이 되어버려 소스에서 효력이 없어졌기 때문입니다.

그렇다면 이제 할일은 이 주석처리되어있는 문구를 효력이 있는 그냥 문구로 바꿔줘야 합니다. 소스를 수정하기 위해 일반 익스플로러가 아닌 크롬으로 들어갑시다. 크롬으로 들어가셨으면 아래 그림처럼 개발자 도구를 눌러주세요

 

아까 봤던 소스가 나옵니다. 다만 분류가 되서 나오네요. 해당소스를 클릭하니 홈페이지에 해당블록이 잡힙니다. 또한 삼각형버튼은 하위항목이 있다라는 뜻이므로 누르면 아래 하위항목이 나타납니다. 자 이제 아까보았던 주석 소스를 찾아봅시다.

초록색 소스를 찾았습니다. 또한 동시에 홈페이지에 블록이 잡혔습니다. 분명 잡혔는데 아무것도 보이지 않는 것으로 보아 잘 찾아온것 같습니다. 이제 소스를 수정해봅시다. 주석처리된 문구에서 오른쪽 마우스 - Edit as HTML 로 들어갑니다.

소스에서 <!-- -->는 소스를 주석처리하라는 의미입니다. 우리는 주석을 없애야 하므로 다 지워줍시다. 그외에 불필요한것도 지워줍시다. 아래그림처럼 수정해 주시면 됩니다.

 

다 작성한 상태로 관리자 도구를 닫아주시면 다음과 같이 수정이 됩니다.

우와 드디어 Register라는 버튼이 새로 생겼습니다. 눌러서 들어가 봅시다.

딱봐도 회원가입이네요 ID, PW, EMAIL를 입력해줍시다. 그런데 마지막 문구가 신경쓰입니다. 알수없는 언어가 적혀있고 제목은 decode me입니다. decode는 해석하라 라는 의미이므로 아마 암호문인것 같습니다. 근데 딱봐도 어떻게 해석해야 할지 감도 안옵니다. 그렇기 때문에 우리는 프로그램을 이용하여 해석을 해보겠습니다.

해독기로는 base64. MD5, sha1 등이 있습니다. 과연 무엇으로 해야 올바르게 디코딩 할 수 있을까요?  일단 암호문을 보면 맨 끝에 == 가 붙어있습니다. 이 ==는  base64로 인코딩(암호화)을 하여 생기는 문구입니다. 즉 이문구는 base64로 인코딩 된 문구이므로 base64로 디코딩을 해야 올바른 답이 나옵니다. 해석을 위해 https://www.base64decode.org/ 로 들어갑시다.

해독할려는 암호문을 위와 같이 적고 DECODE 버튼을 눌러줍시다.

해독이 완료되었습니다만 제가 바보라서 해독된 문구조차 뭔 소린지 모르겠습니다. 1번 해독된 문구를 아까처럼 위에 올리고 DECODE버튼을 눌러 알아볼 수 있는 문구가 나올때까지 디코딩 해봅시다. 

음 아직도 모르겠군요 한번 더 돌립시다.

우오오오 뭔가가 나왔습니다. IP주소같이 생겼네요. 이 번역된 문구를 아까 decode me 문구에 올리고 밑에 submit버튼을 눌러주시면 회원가입이 완료됩니다. 그리고 입력한 아이디와 패스워드로 로그인을 하시고 들어가시면 됩니다.

이상으로 webhacking 회원가입을 마치겠습니다.

감사합니다.

 

 

 

'Webhacking' 카테고리의 다른 글

Webhacking - 27번문제  (2) 2015.07.10
Webhacking - 문제24번  (0) 2015.07.10
Webhacking - 문제 11번  (0) 2015.07.08
webhacking시작 - 문제17번  (6) 2015.07.05
webhacking시작 - 문제1번  (0) 2015.07.04
webhacking시작 - 회원가입  (0) 2015.07.04
Posted by englishmath