본문 바로가기

WarGame/webhacking.kr

[webhacking.kr] Challenge 12 :: Javascript


▼ Challenge 12는 Javascript 문제로 소스코드는 다음과 같습니다.



Ascii 코드 값을 문자로 변경시킨 값을 eval() 함수를 통해 실행하고 있습니다.


eval() : 문자열로 넘어온 Javascript 구문을 실행



즉, WorkTimeFun 변수에 Javascript 구문이 숨어 있다는 것입니다.


▼ WorkTimeFun 변수를 [개발자 도구]의 [Console]창에서 실행시킨 장면입니다.




▼ 이 구문을 풀어서 보면 다음과 같습니다.



for문과 function enco_(x)문은 함정인 것 같습니다. 


eval() 함수를 실행시켰을 때 의미없는 값을 출력시키기 위함입니다.



if문에서 ck변수가 해당 값이면 Password 알림창을 띄우도록 설계되어 있습니다.


ck는 URL에서 "=" 문자 다음의 문자열을 짤라서 가져옵니다.


▼ URL에 ?=test라고 입력하면 document.URL.substr(document.URL.indexOf('=')) 값은 다음과 같습니다.




본론으로 들어가서,


▼ if문의 문장을 풀어 보면 다음과 같습니다.



이 문장을 URL에 추가하면 Success!


( ?를 붙이고 문장을 추가해주어야 쿼리가 전송되겠죠? )