DongDD's IT

[webhacking.kr] Level 20 본문

Wargame/webhacking.kr

[webhacking.kr] Level 20

DongDD 2017. 9. 8. 17:23

[webhacking.kr] Level 20



문제에 들어가보니 몇개의 입력 창이 있었고 위에 time limit : 2라는 표시와 함께 javascript challenge라는 문구가 써있었다. 일단 아무 값이나 입력해보았다.



제출을 누르자마자 code부분에 있는 값이 바뀌고 Wrong이 나온 후 다시 code값이 바뀌는 것을 볼 수 있었다.

느낌이 time limit : 2 라는 것이 2초안에 제대로 된 값을 입력한 후 제출하면 통과할 수 있을 것 같았다.


크롬에 있는 개발자 도구로 자바스크립트를 중단 시킨 후 실행 해보았지만 통과할 수 없었다.


코드를 보니 다음과 같이 스크립트가 있었다. id와 cmt와 hack에 값을 넣어야하고 code와 일치한 후 제출하는 방법이였다.

이 것을 2초만에 해내야하는 그런 문제였다.

소스 코드를 보다가 시간을 어떻게 측정하는 지 안 나와있어서 쿠키를 보니 페이지에 들어온 시간을 기록하는 값으로 되어있었다.




이 것을 보고 쿠키를 수정하면 통과할 수 있을 거란 생각이 들었다.

쿠키에 있는 시간 값을 어느 정도 증가 시킨 후에 타이밍에 맞춰서 제출을 누르면 통과할 것 같았다.

쿠키에 있는 값이 1초에 얼마나 증가하는지 대략 측정한 후에 10~20정도 증가시키고 몇 초후에 submit을 클릭하니 통과할 수 있었다.


풀고 나서 이 문제가 왜 자바스크립트를 이용하는 문제인지 이해가 안가서 자바스크립트를 쓰는 다른 방법을 생각해 보았다.


자바 스크립트를 활용해서 어떻게 풀까라고 생각해보다가 방법이 생각나서 시도해보니 다른 방법으로도 통과할 수 있었다.

자바 스크립트를 이용해 해당 값들을 넣어준 후 submit해주면 되는 방법으로 시도해보았다.


이 문제를 풀면서 해답은 여러가지 방법이 있다는 것을 알게 되었다. 쿠키 값을 수정하는 방법은 자바스크립트를 쓰는 방법은 아니지만 새로운 방법으로 통과할 수 있었다는 점에서 기분이 좋았다.


해결한 두 가지 방법을 Answer & Flag에 작성했다.




**************     Answer & Flag     **************




쿠키 값의 시간을 조정한 후 풀어서 해답을 얻어냈다. 그 이후에 자바스크립트를 활용해 다른 방법으로 풀어보았다.


lv5frm.id.value ="aa";

lv5frm.cmt.value = "bb";

lv5frm.hack.value = lv5frm.attackme.value;

lv5frm.submit();

를 콘솔에 넣어줘서 한번에 값을 입력하고 submit을 제출하는 방법이었다.

새로고침하고 바로 입력해주니 통과할 수 있었다.



'Wargame > webhacking.kr' 카테고리의 다른 글

[webhacking.kr] Level 32  (0) 2017.09.11
[webhacking.kr] Level 25  (0) 2017.09.11
[webhacking.kr] Level 23  (0) 2017.09.08
[webhacking.kr] Level 6  (0) 2017.09.07
[webhacking.kr] Level 33 (9~10) - END  (0) 2017.09.03
Comments