Wargame/Webhacking.kr

[Webhacking.kr] Old 16

핏디 2021. 7. 27. 23:57
SMALL

[문제]


[풀이]

<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>

문제의 스크립트를 확인해보니 if(cd==??) 문 중에서

if(cd==124) location.href=String.fromCharCode(cd)+".php"; // do it! 부분만 다른 부분과 달랐다.

주석으로 do it이 있는 것으로 보아 해당 부분이 문제 풀이의 힌트가 될 것 같다.

 

String.fromCharCode() 함수에 대해서 찾아보았는데,

와 같이 hex 값을 유니코드로 바꿔준다고 한다.

 

해당 값을 Console 창에서 실행해보면, |.php 파일을 나타내면서 flag를 출력한다.

 

url 주소창을 보면 https://webhacking.kr/challenge/js-3/%7C.php 로 변경되어 있음을 확인할 수 있고, 7C가 | 로 변경되었다는 것을 알 수 있었다.

LIST

'Wargame > Webhacking.kr' 카테고리의 다른 글

[Webhacking.kr] Old 18  (0) 2021.07.28
[Webhacking.kr] Old 17  (0) 2021.07.28
[Webhacking.kr] old-15  (0) 2021.07.22
[Webhacking.kr] old-14  (0) 2021.07.22
[webhacking.kr] old-06  (0) 2021.07.21