- 문제경로
- 문제풀이
[문제경로]
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 |