< 알아야 할 것 >

location.href 는 JavaScript에서 새로운 페이지로 이동되는 명령어로 location.href='abc.php' 이런 식으로 사용된다.

form 의 이름을 통해 form 내부의 함수를 호출할 수 있다.

event.keyCode 는 무슨 키를 눌렀는지 알려주고 event.ctrlKey 는 Ctrl 키를 눌렀는지 알려준다.

document.onkeydown 은 키보드를 눌렀을 때, document.onkeyup 은 키보드를 뗐을 때를 나타낸다.


< 풀이 >

이 문제를 접하고 사이트를 들어갔을 때 갑자기 얼굴이 튀어나와서 놀랐다.

Text field 에 Do U Like girls? 라는 말이 적혀있고 아래로 내리면 YES 라는 버튼이 있다.

버튼을 누르니 실패.. 당신은 너무 느려! 라고 Alert 창에게 혼났다.



이후 스크립트를 봤는데 F5, TAB, Ctrl + N, Ctrl + R 을 막아놨다.



힌트를 보니 빠르게 하라고 한다.

YES 라는 버튼을 보니 type 이 submit 으로 넘어가게 되어있었다. 속해있는 form의 이름이 frm 이라



콘솔창에 frm.submit();을 통해 바로 기능을 수행하려고 했는데 어찌된 일인지 정의되어 있지 않다고 나온다.



URL을 보니 7번 문제에 대한 URL 이 아닌 suninatas.com 이여서 새로고침을 해도 main 홈페이지로 가게 된다.

그래서 다른 문제에 들어가 문제에 해당하는 URL 을 찾고 번호를 바꿔 location.href 를 통해 



새로고침을 가능하게 하고 frm.submit()을 정의할 수 있도록 하였다.



그러고 새로고침을 통해 빠르게 몇번 시도해보니 아니 이게 왠일인가! Auth Key 가 나왔다! 헤헤헿



( 윤아 사진은 왜 있는지 모르겠다. 눈호강용인가..? )



< 알아야 할 것 >

크롬 개발자 도구 콘솔창 활용법

아이유

윤아















'Hacking > Web Hacking' 카테고리의 다른 글

Webhacking.kr 1번 문제  (0) 2018.09.18
Suninatas 8번 문제  (0) 2018.09.09
Suninatas 6번 문제  (0) 2018.09.07
Suninatas 5번 문제  (0) 2018.09.05
Suninatas 4번 문제  (0) 2018.09.05

< 알아야 할 것 >

SQL 에서 --는 주석의 기능을 한다.

MD5 는 128 비트 암호화 Hash 함수이다.

Cookie 는 하이퍼 텍스트의 기록서(HTTP)의 일종으로서 인터넷 사용자가 어떠한 웹사이트를 

방문할 경우 그 사이트가 사용하고 있는 서버를통해 인터넷 사용자의 컴퓨터에 설치되는 작은 기록 정보 파일을 일컫는다.

보통 권한이 없다고 하는 문제는 Cookie 나 Session ID 를 통해 접근할 수 있다.


< 풀이 >

문제에 들어가니 다음과 같은 게시판이 나왔다.

하나 하나 읽어봤는데 3번 게시글을 읽으려면 아래 이미지와 같이 암호가 필요했다. 

Text 입력란 아래에 있는 코드를 보니 SQL인 것 같아서 'SQL Injection을 하라는건가?'라고 생각했다.

코드를 보니 "&pwd&"에 Text field 에 입력한 내용이 들어가는 것 같아서, 항상 참이 되는 조건과 이후의 

문장을 주석처리하여 SQL Injection을 시도했다. 그러나 '='은 왜 인지 되지 않아서 ' or 2>1 -- 로 성공시켰다.

성공하니 위와 같이 auth_key가 suninatastopofworld! 라는 alert창이 나왔다.

그래서 auth key 입력란에 입력했더니 틀렸다고 나온다. 


오타를 입력했나싶어 다시 alert창을 띄어봤는데 글을 읽을 수 있다면서 다음과 같이 접근권한이 없다고 나온다.



그래서 접근 권한에 대해서 찾아보니 쿠키를 만져보고 된다고 한다. 그래서 쿠키값을 봤더니 암호화 되어 있었다.

게시글 중에 2번째 게시글에 https://md5hashing.net/ 라고 적혀있길래 혹시나 싶어 들어가 auth_key를 MD5로 decode 해봤다.

다음으로 Edit this cookie 라는 구글 툴을 통해 쿠키값을 변조해서 시도해봤는데 성공하지 못했다. 그래서 뭐가 문제지하며 30분동안

고민하다가 다시 decode 해봤는데 아니 auth_key를 잘못 입력해서 Hash 값이 이상하게 나온 거였다. 그래서 다시 시도해보자

이번에는 성공했다. 이후 다음과 같은 글이 나왔는데 키를 찾아보라고 한다. 

Elements 에서 Key라는 단어를 찾아보자 다음과 같은 힌트가 적혀있었다.



구글에 검색하니 다음과 같이 나와 Auth Key 에 입력했더니 성공했다!

머리가 벗겨지는 줄 알았다!


< 알아가야 할 것 >

Hash 와 Cookie, Session, SQL











'Hacking > Web Hacking' 카테고리의 다른 글

Suninatas 8번 문제  (0) 2018.09.09
Suninatas 7번 문제  (0) 2018.09.07
Suninatas 5번 문제  (0) 2018.09.05
Suninatas 4번 문제  (0) 2018.09.05
Suninatas 3번 문제  (0) 2018.09.05


< 알아야 할 것 >

eval() 이란 JavaScript의 함수로 수식으로 표현된 '문자열'을 계산해서 결과를 도출해내는 함수이다.

구글 개발자 도구 Console 창에서 Console.log를 통해 그대로 출력할 수 있다.


< 풀이 >



처음에는 위의 스크립트를 못 보고 init이 중요한 줄 알고 찾아봤는데 

이건 단순히 시작할 때 입력창을 비우고 포커스를 맞추는 것 뿐이였다.



그러다 위의 암호화 되어있는 스크립트를 발견하고 eval 함수를 찾아보니 문자열을 계산해서 출력하는 함수이길래 Console.log를 통해 그대로 출력해보았다. 그랬더니 아래와 같이 나오길래 봤더니 본문에는 사용되지 않은 function PASS(n) 가 있었다.



이것도 JS function 이여서 console 창에 입력해보았는데 Parameter 부분에 숫자를 넣는 것 같았다.

이때 아까 본문을 보며 얻은 힌트에 있던 수를 인자로 넣었더니 값이 나왔고 입력하니 AuthKey 가 나왔다.


< 알아가야 할 것 >

웹에 관련된 언어들에 대해 알아봐야겠다.

'Hacking > Web Hacking' 카테고리의 다른 글

Suninatas 7번 문제  (0) 2018.09.07
Suninatas 6번 문제  (0) 2018.09.07
Suninatas 4번 문제  (0) 2018.09.05
Suninatas 3번 문제  (0) 2018.09.05
Suninatas 2번 문제  (0) 2018.09.05