Level 16
키보드 를 누르면 '*' 문자가 생기고 마우스를 갖다 대면 지워진다...
뭥미...? 😕
<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.posLeft-50,star.style.posTop-50); if(cd==100) star.style.posLeft=star.style.posLeft+50; if(cd==97) star.style.posLeft=star.style.posLeft-50; if(cd==119) star.style.posTop=star.style.posTop-50; if(cd==115) star.style.posTop=star.style.posTop+50; if(cd==124) location.href=String.fromCharCode(cd); } 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>
mv 함수를 자세히 보니 cd의 값을 비교하며 작업을 수행하는데 마지막 부분에 cd가 124이면 특정 사이트로 이동 되는것 같다.
cd값을 어떻게 변경해야 할까?
python으로 확인해보니 ascii값 124는 '|'(파이프) 였다.
크롬 개발자모드의 콘솔에서 mv함수를 강제로 불러와 인자값으로 124를 넘겨줘도 풀릴것 같다.