Information Security

[Wargame.kr] flee button 본문

Web Hacking/Wargame.kr 풀이

[Wargame.kr] flee button

leeeeye321 2018. 1. 3. 01:13

버튼을 클릭하세요!

나는 잡을 수 없네요.

 

당신이 키를 얻기 원한다면 버튼을 클릭해야 한다.

하지만 해보면 알겠지만 계속 버튼이 마우스를 피해서 달아난다.

 

소스를 보려했는데 우클릭이 차단되어 있는 것 같다.

저번에 natas를 풀면서 배운대로 view-source를 URL에 입력하여 소스를 확인했다.

 

eval() 함수는 자바스크립트 코드를 실행한다.

unscape_blue14() 함수의 인자 값은 난독화되어 알아볼 수가 없다.

 

 <script src="./p8.js"></script>

p8.js를 확인해보면 unescape_blue14() 함수가 어떻게 정의되어 있는지 알 수 있다.

난독화된 자바스크립트 코드를 해독하는 함수이다.

 

eval() 함수를 실행하기 전 unescape_blue14() 함수의 반환 값을 알아내서 해독된 자바스크립트 코드를 얻을 것이다.

 

Console을 이용해서 unescape_blue14() 함수를 호출했다.

반환 값이 나왔다. 그런데 또 난독화되어 있어서 함수를 한 번 더 호출해야 한다.

 

한 번 더 해독하여 아래와 같은 자바스크립트 코드를 얻을 수 있었다.

 

<div id="esc" style="position:absolute;">

<input type="button" onfocus="nokp();" onclick="window.location='?key=4782';" value="click me!">

</div><input type="text" readonly style="width:350;" id="hint" value="do you want to join? catch button, if you can!">

[click me!] 라는 버튼을 클릭했어야 했는데, 여기에는 onclick 이벤트가 걸려있는 것을 알 수 있다.

window.location에 의해서 GET 방식으로 key 값을 4782로 정의하면 버튼이 클릭되는 것과 같은 동작이 된다.

 

'Web Hacking > Wargame.kr 풀이' 카테고리의 다른 글

[Wargame.kr] fly me to the moon  (0) 2018.01.03
[Wargame.kr] QR Code Puzzle  (0) 2018.01.02
[Wargame.kr] already got  (0) 2018.01.02