도카이트

[DVWA] JavaScript (Medium) 본문

Web/DVWA

[DVWA] JavaScript (Medium)

dodoh4t 2022. 5. 27. 22:04
728x90
반응형

페이지 화면

[DVWA - JavaScript]

- 소스코드를 확인해보자 !

 

 

소스코드

[JavaScript 페이지 - 소스코드]

- medium.php의 경우 medium.js를 참조하고 있는 코드므로 medium.js 를 살펴보자.

- 사실 딱 보고.. 이게 뭐지 ? 하고 당황스러웠다.

- 일단 이렇게 보는게 가독성이 너무 안좋아서.. 침착하게 IDE에 복붙해서 다시 살펴봤다.

 

 

medium.js 소스코드

[medium.js]

- setTimeout 함수에 눈길이 많이 간다.. 

- do_elsesomething 함수를 300초 후에 실행하도록 설정되어 있다.

- token 값을 do_something 함수를 통해 phrase 문자열에 대응하여 설정하는 듯 하다.

- 즉, XX[phrase 값에 따라 변화]XX 형태로 token 값이 새로 설정되며..

- 이는 300초 후에 do_elsesomething 함수가 실행되며 token 값이 재설정된다.

 

 

그럼 정리를 해보자면.. 우리가 시도해야 하는 과정은…

  1. phrase 값으로 success 를 입력한 후..
  2. 300초 (5분) 을 기다린 후에..
  3. do_elsesomething 함수가 실행되어 token 값이 바뀌면 ..
  4. submit을 하여 문제를 해결하면 되는 듯 하다 !

그러나, 우리는 300초를 기다릴 여유가 없다. 그러므로 setTimeout에 작성한 300 값은

개발자 도구를 통해서 값을 변조하여 즉시 토큰값이 바뀔 수 있도록 하자 !

 

 

1. success 문자열 입력 후 토큰 값 확인

[success 문자열 입력 후 토큰 값 확인]

- token 값이 입력되어 있는 코드행은 Phrase 입력 폼을 우클릭하여 검사 버튼을 클릭하면 확인할 수 있다 !

- token 값으로 XXeMegnahCXX 이 설정되어 있는 것을 확인할 수 있다.

 

 

2. Console 탭에서 medium.js 코드 변조 후 실행

[setTimeout 함수 값 변조]

- setTimeout 함수의 값을 300에서 1로 변조하여 스크립트를 실행한다.

 

 

3. Token 값 변경 확인 후 Submit

[success to win :)]

- Console 탭에서 변조한 스크립트를 실행 후 Token 값을 확인해본다.

- Token 값이 XXsseccusXX 로 변경되어 있는 것을 확인할 수 있다!

- 이후 Submit을 클릭하면 Well done! 이 출력되며 문제를 해결할 수 있다 !!

 

 

 

 

이로써 DVWA의 Medium 난이도까지 전부 해결했다 !! Low에서 시작해서 어느덧 Medium까지 포스팅을다 작성하다니.. 소소하게 뿌듯하면서도, 웹 해킹에 대한 기초를 어느 정도 쌓은 것 같아서 보람차다! 공격에 대한 기본 개념만 알고 있다면 성공시킬 수 있는 Low와는 다르게 Medium 난이도에서는 나름 간단한 수준의 우회 방법을 터득할 수 있었고, 이를 우회하는 과정들을 통해서 좀 더 생각의 폭을 넓히고 창의성을 높힐 수 있었던 것 같다. 하면 할 수록 재밌으면서도 점점 어려워지는게 느껴진다! 앞으로도 열심히 달려야겠다 :)

728x90

'Web > DVWA' 카테고리의 다른 글

[DVWA] CSP Bypass (Medium)  (0) 2022.05.27
[DVWA] Stored XSS (Medium)  (0) 2022.05.27
[DVWA] Reflected XSS (Medium)  (0) 2022.05.27
[DVWA] DOM-Based XSS (Medium)  (0) 2022.05.26
[DVWA] Weak Session IDs (Medium)  (0) 2022.05.26
Comments