728x90
📎 https://webhacking.kr/chall.php
문제를 클릭하면 이런 창이 뜬다.
코드의 스크립트를 확인해보았다.
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>";
}
mv() 함수 안에 kk() 함수와 if() 함수가 여러개 있다.
kk() 함수
- Math.random() : 0 이상 1 미만의 난수 생성
- Math.floor() : 주어진 숫자와 같거나 작은 정수 중에서 가장 큰 수를 반환
mv() 함수에서 마지막 if문인 if(cd==124)를 보면, cd가 124인 경우 String.fromCharCode() 함수에 의해 아스키 값이 124에 해당하는 | 를 누르면 문제를 해결할 수 있을 것 같다.
728x90
'공부 > 웹해킹 (Web hacking)' 카테고리의 다른 글
[Webhacking.kr | 웹해킹] old-18 (0) | 2024.03.28 |
---|---|
[Webhacking.kr | 웹해킹] old-17 (0) | 2024.03.20 |
[Webhacking.kr | 웹해킹] old-14 (0) | 2024.03.15 |
[드림핵 | 웹해킹] LEVEL 1: error based sql injection (0) | 2024.03.08 |
[드림핵 | 웹해킹] LEVEL 1: [wargame.kr] strcmp (0) | 2023.11.08 |