본문 바로가기
웹 해킹/webhacking.kr

webhacking.kr 16번

by sonysame 2017. 5. 9.


HTTP/1.1 200 OK

Server: nginx

Date: Mon, 08 May 2017 19:31:07 GMT

Content-Type: text/html

Connection: close

Vary: Accept-Encoding

P3P: CP='NOI CURa ADMa DEVa TAIa OUR DELa BUS IND PHY ONL UNI COM NAV INT DEM PRE'

Expires: Thu, 19 Nov 1981 08:52:00 GMT

Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0

Pragma: no-cache

Content-Length: 880


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


이상한 별이 보이는데, 밑에 있는 세번째 별은 색깔이 계속 변하고, 마우스를 대면 사라진다. 이 부분은 

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>"; 여기서 구현이 된다.


코드 중 특이한 부분은 if(cd==124) location.href=String.fromCharCode(cd); 이다. 

cd에 들어가는 것은 mv(event.keyCode)인데 event.keyCode가 124가 되는 것은 |이고, |을 입력하니 패스워드를 확인할 수 있었다!

'웹 해킹 > webhacking.kr' 카테고리의 다른 글

webhacking.kr 4번  (0) 2018.02.07
webhacking.kr 17번  (0) 2017.05.09
webhacking.kr 14번  (0) 2017.05.09
webhacking.kr 6번  (0) 2017.05.09
webhacking.kr 15번  (0) 2017.05.09