문제를 클릭하면 위처럼 별이 찍혀있고 WASD에 따라 큰 별이 움직이고 큰 별이 움직일때마다 작은 별들이 찍힙니다. 일단 소스를 봅니다.
<html>
<head>
<title>Challenge 16</title>
<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>
</body>
</html>
onkeypress를 통해 mv함수에 사용자가 입력한 키값을 넘기고 mv에서는 키값을 cd라는 변수에 받고 변수값에 따라 별의 위치를 움직입니다. 이때 100,97,119,115는 WASD의 아스키코드 값입니다. 그런데 딱 보면 알겠지만 아스키코드 값으로 124가 들어오면 별의 위치를 변경하는게 아니라 php파일로 이동합니다. 당연히 저게 solve와 관련된 php겠죠.
이 문제도 두가지 방법이 있습니다. 첫번째는 아스키코드 124에 해당하는 키 값을 입력해주는 방법이고 두번째는 개발자 도구를 이용하는 방법입니다. 둘중에 편한 방법으로 푸시면 됩니다.
첫번째 방법
구글에 아스키 코드 표를 검색하여 124의 값을 찾습니다. 위의 표를 참고하면 알 수 있듯이 | (파이프)입니다. 그래서 해당 문제의 페이지에서 Shift + \를 눌러주면 문제가 풀립니다.
두번째 방법
개발자 도구를 열고 그냥 바로 mv함수를 호출할때 인자값으로 124를 넘기면 됩니다.
끝!
'Web Hacking > Webhacking.kr' 카테고리의 다른 글
[Webhacking.kr] old-24 (0) | 2019.10.22 |
---|---|
[Webhacking.kr] old-17 (0) | 2019.10.22 |
[Webhacking.kr] old-14 (0) | 2019.10.22 |
[Webhacking.kr] old-01 (0) | 2019.10.22 |
[Webhacking.kr] old-06(100) (0) | 2019.09.29 |