문제 페이지이다. 별이 3개 있다.
알 수 있는게 없어 Elements를 보자
<html><head>
<title>Challenge 16</title>
</head><body bgcolor="black" onload="kk(1,1)" onkeypress="mv(event.keyCode)">
<font color="silver" id="c"></font>
<font color="yellow" size="100" style="position:relative" id="star">*</font>
<script>
document.body.innerHTML+="<font color=yellow id=aa style=position:relative;left:0;top:0>*</font>";
function mv(cd){
kk(star.style.left-50,star.style.top-50);
if(cd==100) star.style.left=parseInt(star.style.left+0,10)+50+"px";
if(cd==97) star.style.left=parseInt(star.style.left+0,10)-50+"px";
if(cd==119) star.style.top=parseInt(star.style.top+0,10)-50+"px";
if(cd==115) star.style.top=parseInt(star.style.top+0,10)+50+"px";
if(cd==124) location.href=String.fromCharCode(cd)+".php"; // do it!
}
function kk(x,y){
rndc=Math.floor(Math.random()*9000000);
document.body.innerHTML+="<font color=#"+rndc+" id=aa style=position:relative;left:"+x+";top:"+y+" onmouseover=this.innerHTML=''>*</font>";
}
</script><font color="yellow" id="aa" style="position:relative;left:0;top:0">*</font>
<font color="#974857" id="aa" style="position:relative;left:1;top:1" onmouseover="this.innerHTML=''">*</font></body></html>
들여쓰기가 안돼있어서 복잡하긴 한데
3번째 줄에 있는 onkeypress로 눌린 키보드 값을 가지고 mv함수를 호출한다.
* onkeypress(ASCII) <- 누른 키보드 값을 ASCII로 전달한다.
mv(cd) 함수를 보면 cd 값이 100이면, left에서 50만큼 이동한다. (왼쪽 끝에서 50만큼 떨어져있다는 말임)
cd값이 124면, fromCharCode(cd).php로 이동한다.
fromCharCode는 아스키를 문자로 바꿔준다.
124는 | 이므로 '|' 를 누르게 된다면 |.php로 이동하게 된다.
혹은 console에서 mv(124)를 입력해도 된다.
'Webhacking.kr' 카테고리의 다른 글
[Webhacking.kr] old-02 풀이 (0) | 2024.07.14 |
---|---|
[Webhacking.kr] old-54 풀이 (0) | 2024.07.12 |
[Webhacking.kr] old-38 풀이 (0) | 2024.07.12 |
[Webhacking.kr] old-15 풀이 (0) | 2024.07.11 |
[Webhacking.kr] old-17 풀이 (0) | 2024.07.11 |