R136A1
[wargame.kr] flee key :: css 본문
문제에 들어가면 키가 막 날라다닌다 (얄밉게 마우스 따라다님 잡힐듯 하면서 잡히지 않음)
저걸 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 |