반응형
Webhacking.kr Challenge 54 풀이.
54번을 들어가면 위의 화면이 뜬다
몇 초 뒤에 무슨 글자가 뜨고 마지막에 ?가 나타나면 멈춘다.
무슨 뜻이 있는 거 같으데 잘 모르겠으니 정석대로 간다.
일단 소스를 보도록 하겠다.
핵심은 answer와 setTimeout이다.
setTimeout은 10초 후에 answer 함수에 0을 넣어서 실행하는 것이다.
좀 더 자세히 본다.
일단 첫번째 줄은 get 방식으로 m이라는 파라미터에 i를 더해가면서 페이지를 연다는 뜻.
x.open('GET','?m='+i,false); x.send(null); aview.innerHTML=x.responseText; i++; if(x.responseText) setTimeout("answer("+i+")",100); if(x.responseText=="") aview.innerHTML="?";
두번째 줄은 위에서 했던 것을 보내는 함수.
세번째 줄은 html 페이지에 run 함수로 실행한 임의의 값을 노출.
네번째 줄은 변수 i에 1씩 더한다.
다섯번째 줄은 임의의 값이 생겼으면 answer 함수에 변수 i를 저장하고 0.1초 기다린다.
여섯번째 줄은 임의의 값이 null이면 페이지에 ?을 노출하고 이 말은 마지막 값이라는 것을 알 수 있다.
일단 개발자 도구를 열어 Network 탭을 본다.
일단 m 파라미터 값이 바뀌면서 페이지가 새로고침이 된다.
아래로 보다 보면 물음표가 나오는 m 파리미터 값은 32라는 것을 확인할 수 있고,
이 말은 즉슨 답에 해당하는 문자열은 0부터 31까지.
이런 식으로 ?m=0 부터 ?m=31 까지 Recording값을 적으면 된다.
그럼 Auth(=인증)을 해본다.
Cf) 당황하지 않고, 생각을 먼저 해보고 문제를 접근해야겠다.
반응형
'# Related site issues > WEBHACKING.KR' 카테고리의 다른 글
Webhacking.kr Challenge 19. (0) | 2018.05.01 |
---|---|
Webhacking.kr Challenge 4. (0) | 2018.05.01 |
Webhacking.kr Challenge 39. (0) | 2018.05.01 |
Webhacking.kr Challenge 38. (0) | 2018.05.01 |
Webhacking.kr Challenge 26. (0) | 2018.05.01 |