보안/WebGoat

Cross-Site-Scripting(XSS)

jingu 2023. 8. 24. 10:02
Cross-Site-Scripting(XSS)

XSS(크로스 사이트 스크립팅)는 웹 보안 공격 중 하나로, 악의적인 사용자가 웹 페이지에 악성 스크립트를 삽입하여 다른 사용자들의 브라우저에서 실행되게 함으로써 공격자의 의도대로 동작하도록 하는 기술이다. XSS는 주로 웹 애플리케이션에서 발생하며, 웹 사이트나 웹 앱의 취약점을 이용하여 공격자가 악의적인 스크립트를 삽입할 수 있는 상황에서 발생한다.

 

 

첫번째 문제

다른 탭에서 webgoat 내 어디든 접속해서 cookie를 찾아내고 동일한지 확인하라고 한다.

시작 화면

 

 

F12를 누르고 console에서 빨간박스처럼 입력하면 XSS 가능

 

 

쿠키 확인

 

 

다른 탭에서 동일한 쿠키 획득

 

 

yes를 입력하고 제출하면 성공!

 

 

두번째 문제

주어진 탭에 살구색으로 블록된 스크립트문을 입력해서 XSS 공격을 해보라고 한다.

문제 화면

 

 

입력하고 Purchasc 클릭하면 바로 성공!

 

 

세번째 문제

Source를 살펴보고 취약한 패러미터를 찾아서 XSS 공격을 해보라고 한다. 

시작 화면

 

 

F12를 누르고 view에서 'test' parameter가 testRoute임을 확인할 수 있다

 

 

url에 'test' 매개변수 이후 XSS 공격했더니 성공!

 

 

XSS에 노출된 경로를 입력하면 성공!

 

 

네번째 문제

앞의 문제에 이어서 주어진 함수를 실행해보라고 한다.

시작 화면

 

 

앞에서 알아낸 경로 뒤에 XSS 공격을 url로 인코딩해서 공격 시도!

 

 

F12를 누르고 console을 확인해보니 번호가 떴다

 

 

입력하면 성공!

 

 

다섯번째 문제

댓글을 달아 주어진 함수를 실행하는 XSS 공격을 하라고 한다.

문제 화면1

 

 

앞의 함수를 실행해서 나온 결과를 제출하라는 단락이 밑에 이어진다.

문제 화면2

 

 

XSS 공격을 시도했더니 댓글이 달리지 않았다.

녹색 박스 부분의 내용을 댓글로 달았더니 빨간 박스처럼 댓글이 달리지 않음

 

 

F12를 누르고 console에서 번호를 출력함을 확인

 

 

제출하면 성공!