SWLUG/web hacking

[WebGoat] Cross Site Scripting

keemnh 2024. 11. 13. 16:52

 

 

 

문제7

개발자가 의도하지 않은 alert나 console.log 함수를 실행하여 문제 해결

 

 

 

purchase를 누르면 입력된 카드번호가 그대로 출력됨

xss는 공격구문을 포함하여 보낸 요청 서버에서 그대로 응답 본문에 추가할 때 발생하는 취약점을 뜻함

 

 

 

<script>alert(1)</script>를 작성하여 script 태그를 이용해 alert(1)함수를 실행하는 공격 구문을 추가 후 purchase 클릭하여 xss 공격에 성공
>> 개발자가 의도하지 않은 alert(1) 실행됨

 

 

 

 

 

문제10

숨어있는 test route를 찾아서 인증

 

base route는 start.mvc#lesson/
파라미터는 CrossSiteScripting.lesson/9
-> 문제에서 주어진 정보를 활용하여 문제 해결

 

개발자 도구를 통해 
ctrl + shift + f 눌러 검색 

base route의 일부인 lesson/을 검색해서 GoatRouter.js 파일 내부에 관련 정보 있는 걸 확인

 

test/:param 형태의 테스트용 route찾음
base route는 start.mvc#lesson/이었는데 코드를 통해 lesson이 route임을 확인
이를 통해 # 뒷부분이 route임을 확인
-> 정답이 start.mvc#test/임을 유추

 

 

 

 

문제 11

테스트용 route를 통해 webgoat.customjs.phoneHome()함수를 실행하여 생성되는 랜덤 번호를 인증

 

testRoute 함수는 테스트용 route인 test/:param에서 param인자로 lessonController의 testHandler 함수를 다시 호출함


testHandler를 검색하면 LessonController.js 파일에서 특정 코드 발견

testHandler 함수는 전달받은 param을 다시 LessonContentView의 showTestParam 함수로 전달하고 있음

 



showTeseParam 함수는 전달받은 param을 lesson-content 클래스에 해당하는 요소의 하위에 inner html 형태로 test 단어와 함께 추가하고 있음



직접 테스트용 route를 이용하여 실습. start.mvc#test/:param

 

 

 

 :param 부분에 <script>alert(1)<%2fscript>

http://localhost:8080/WebGoat/start.mvc#test/<script>alert(1)<%2fscript>

 

 

 

:param에 <script>webgoat.customjs.phoneHome()<fscript>를 입력하여 문제 해결

http://localhost:8080/WebGoat/start.mvc#test/%3Cscript%3Ewebgoat.customjs.phoneHome();%3C%2Fscript%3E

 

 

 

 

 

 

'SWLUG > web hacking' 카테고리의 다른 글

[CTF/ Dreamhack] login-1  (0) 2024.11.17
[RootMe] XSS - Stored 2  (0) 2024.11.13
[Dreamhack] DOM XSS  (0) 2024.11.13
[RootMe] Directory traversal  (1) 2024.11.04
[Dreamhack] file-download-1  (3) 2024.11.04