• 문제경로
  • 문제풀이

 

 

 

[문제경로]

https://webhacking.kr/challenge/js-3/

 

Challenge 16

 

webhacking.kr

 

 

 

[문제풀이]

1. 문제에 접속하면 다음과 같은 이미지가 들어있다.

 

 

2. Ctrl+U를 통해 소스 코드를 확인해 봤다.

<html>
<head>
<title>Challenge 16</title>
# 배경색을 검정으로 하고, 이벤트 핸들러 onload가 실행될때 kk함수를 호출하고, 이벤트 핸들러 onkeypress가 실행될때 mv함수를 호출한다.
<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);
# 100에 해당하는 키를 입력했을시 "*"이 오른쪽으로 50px 이동한다.
  if(cd==100) star.style.left=parseInt(star.style.left+0,10)+50+"px"; 
# 97에 해당하는 키를 입력했을시 "*"이 왼쪽으로 50px 이동한다.
  if(cd==97) star.style.left=parseInt(star.style.left+0,10)-50+"px";
# 119에 해당하는 키를 입력했을시 "*"이 위쪽으로 50px 이동한다.  
  if(cd==119) star.style.top=parseInt(star.style.top+0,10)-50+"px";
# 115에 해당하는 키를 입력했을시 아래로 "*"이 50px 이동한다.  
  if(cd==115) star.style.top=parseInt(star.style.top+0,10)+50+"px";
# 124에 해당하는 키를 입력했을시 .php 경로로 이동한다.
  if(cd==124) location.href=String.fromCharCode(cd)+".php"; // do it!
}
# "*" 모양의 특성을 정의하는 것이다. 색상이 무작위로 설정, 생성되는 위치 설정, 이벤트 핸들러 onmouseover이 실행되면서 생성된 "*"의 내용을 비운다.
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>

124에 해당하는 키를 입력하면 .php 경로로 이동하면서 문제가 풀릴 것으로 예측된다.

 

 

3. 먼저 숫자에 해당하는 키가 있어야 하니 아스키 코드를 생각해 봤다. 

100 d
97 a
119 w
115 s
124 |

즉 124에 해당하는 "|" 키를 입력하면 문제가 풀릴 것이다.

 

입력하니 .php 경로로 이동하면서 문제가 해결되었다.

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

[Webhacking.kr] old-26  (0) 2024.04.13
[Webhacking.kr] old-06  (0) 2024.04.10
[Webhacking.kr] old-15  (0) 2023.09.17
[Webhacking.kr] old-17  (0) 2023.09.17
[Webhacking.kr] old-03  (0) 2023.09.15

+ Recent posts