728x90
webhacing.kr 16(old)
webhacing.kr 16번 문제는 JS와 관련된 문제로 보여집니다.
webhacking.kr16번 문제에 접속하면 *이 큰거한개 작은거 두개가 여러가지 색으로 나타나 있다.
소스코드를 한번 살펴보자.
<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>";
}
kk(1,1)이라는 함수로 별(*)의 처음위치를 정해주고 document.body.innerHTML을 이용하여 별을 추가하여 입력해주는것으로 보여진다.
onkeypress를 통하여 키가 눌려졌을때 눌려진 키를 event.keycode를 이용하여 아스키코드값으로 바꿔 매개변수로 함수mv()가 실행되는 것으로 보인다.
즉 눌려진 키를 아스키값으로 하여 함수mv가 실행되는 것이다.
100,97,119,115,124의 아스키코드를 살펴보면
100= ‘d’
97=’a’
119=’w’
115’s’
124=’|’(파이프)
w,a,s,d,를 누르면 각각 누른키에 따라 별의 위치가 변화한다,
fps게임 등에서 이동할때 주로 쓰는 값처럼 전후좌우로 큰별이 이동한다.
하지만 124를 입력하면 //do it 주석처리가 되는것으로 보아 해결에 도움이 될거같다.
새로고침을 하여 초기상태로 되돌아간뒤
|를 눌러보니
webhacing.kr 16(old)성공~!
728x90
'웹해킹 > Webhacking.kr' 카테고리의 다른 글
Webhacking.kr 20번(old) 풀이 (0) | 2020.03.28 |
---|---|
Webhacking.kr 17번(old) 풀이 (0) | 2020.03.18 |
Webhacking.kr 15번(old) 풀이 (0) | 2020.03.18 |
Webhacking.kr 14번(old) 풀이 (0) | 2020.03.18 |
Webhacking.kr 10번(old) 풀이 (0) | 2020.01.05 |