Oh! JUN

[WebGoat] Cross Site Scripting - 4 (Break Point 활용) 본문

웹 해킹/Cross-Site Scripting(XSS)

[WebGoat] Cross Site Scripting - 4 (Break Point 활용)

Kwon Oh! JUN 2023. 12. 21. 23:28


Try it! DOM 기반 XSS

일부 공격은 "블라인드"입니다. 다행히 여기에서 서버가 실행 중이므로 성공 여부를 알 수 있습니다. 방금 찾은 경로를 사용하고 WebGoat에서 내부 기능을 실행하기 위해 인코딩 없이 경로의 매개변수를 반영한다는 사실을 사용할 수 있는지 확인하세요. 실행하려는 기능은 ...​

webgoat.customjs.phoneHome()

물론 콘솔/디버그를 사용하여 트리거할 수 있지만 새 탭에서 URL을 통해 트리거해야 합니다.

일단 트리거하면 후속 응답이 임의의 숫자와 함께 브라우저 콘솔에 표시됩니다. 아래에 임의의 숫자를 입력하세요.


1. 콘솔

이전 문제 참고해서

http://127.0.0.1:5555/WebGoat/start.mvc#test/%3Cscript%3Ewebgoat.customjs.phoneHome()%3C%2fscript%3E

실행하고 Console 확인하면 phoneHome Response is '-1532800907' 확인이 가능합니다.

 

[WebGoat] Cross Site Scripting - 3

DOM 기반 XSS의 잠재력 식별 DOM 기반 XSS는 일반적으로 클라이언트 측 코드에서 경로 구성을 검색하여 찾을 수 있습니다. 페이지에 "반영"되는 입력을 받는 경로를 찾으세요. 이 예에서는 경로 핸들

securitystudy.tistory.com


2. 디버그

webgoat.customjs.phoneHome() 함수를 호출하면 AJAX 비동기 통신으로 method, url, ...설정에 맞추어 서버에 요청을 보내게 되고 요청을 성공하면 success() 함수를 실행하여 console.log()를 실행한다.

 

77번 라인에 BP(Break Point)을 걸면 해당 라인에서 실행을 멈추게 되면서 console.log('phone home said ...')값을 확인할 수 있다.(왼쪽에 숫자를 클릭하면 BP가 걸린다.)