R136A1

[wargame.kr] flee key :: css 본문

WEB SECURITY/html | javascript | php

[wargame.kr] flee key :: css

r136a1x27 2021. 7. 14. 00:25

문제에 들어가면 키가 막 날라다닌다 (얄밉게 마우스 따라다님 잡힐듯 하면서 잡히지 않음)

저걸 click하면 flag를 얻을 수 있다고 함

소스코드 전문. 첫번째 <script></script>의 unescape_blue14()를 console에 치면 알아서 해석해주는데

밑의 <div id= ~ </script> 까지를 출력해주는 document.write에 지나지 않았다

 

마우스를 움직이면 <div id="esc" style="position: absolute; left: 1557px; top: 19px;">

esc 의 좌표가 계속 변하는데, style을 아예 삭제해버려도 되고

position: 을 static으로 변경해도 된다.

 

개념 확인

html에서 style 속성은 CSS의 영역이다.

div는 영역을 나누는 html 태그이고, 하위에 다른 엘리먼트 태그를 씀으로써 해당 영역에 배치할 수 있다.

즉, div 에 style = position 속성을 일반적인 top, bottom, left, right,가 아닌

absolute (독립된 배치 문맥)으로 설정함으로써

마치 포토샵에서 "새 레이어"를 추가한 것처럼 타 엘리먼트에 구애받지 않고 자유롭게 배치될 수 있다.

 

여기에 js를 이용하여 사용자의 마우스 위치와 동적으로 상호작용하며 position을 변경하는 것이라 추측한다

<head>에 있는 js파일을 열어보면...대략 그런 내용이 있을 것이다

function get_br_blue(){
 var br="def";
 if(navigator.appName.indexOf("Netscape")>-1){
  if(navigator.appVersion.indexOf("Macintosh")>-1) br="FFM";
  if(navigator.appVersion.indexOf("Windows")>-1) br="FFW";
 }else if(navigator.appName.indexOf("Microsoft")>-1){
  if(navigator.appVersion.indexOf("MEIE 6.0")>-1) {
   br="ie6";
  }else{
    br="ie";
  }
 }
 return br;
}

function unescape_blue14(str){
 var result="";
 for(i=1;i<str.length;i+=3){
  result+=""+String.fromCharCode(parseInt((str.substr(i,2)).toString(2),14));
 }
 return result;
}

function nokp(){
 document.getElementById("hint").focus();
 return false;
}

function escdiv(e){
 if(get_br_blue()=="FFM" || get_br_blue()=="FFW")
 	{mx=e.clientX;
    my=e.clientY;}
 else
 	{mx=event.x;
    my=event.y;}
    
 obj.style.left=mx+ax;
 obj.style.top=my+ay;
 if(sw==1){ax--;ay--;if(i==r){sw=2;i=0;}}
 if(sw==2){ax++;ay--;if(i==r){sw=3;i=0;}}
 if(sw==3){ax++;ay++;if(i==r){sw=4;i=0;}}
 if(sw==4){ax--;ay++;if(i==r){sw=1;i=0;}}
 i++;
}

 

 

 

+ 문제의 의도인 소스 수정과는 다르게 리딩만으로 더 쉽게 풀어버릴 수 있다.

<div id="esc 아래에

    <input type="button" ~ onclick="window.location='?key=513f'; ... click me!

 

 

 

'WEB SECURITY > html | javascript | php' 카테고리의 다른 글

[php] $_변수  (0) 2021.08.08
[wargame.kr] already got :: HTTP  (0) 2021.07.14
[xcz.kr] PROB.18 ::js  (0) 2021.04.17
[xcz.kr] PROB.32 ::php  (0) 2021.01.13
[root-me] Javascript - Native code :: Web-Client  (0) 2021.01.13
Comments