Referer 은 현재 요청된 페이지의 링크 이전의 웹 페이지 주소를 나타내는 헤더이다. 웹 프록시를 통해 이 값을 변경하여 XSS 공격을 수행해보자.
bee-box 환경에서 실습해보자!
Level - low, medium
위와 같이 웹 프록시로 Referer 헤더에 이전 페이지가 들어가 있는 것을 볼 수 있다. 이 내용을 스크립트 문으로 변경하여 요청해보자.
그 결과, 아래와 같이 스크립트 문이 실행되는 것을 볼 수 있다.
Level - high
high level 에서는 스크립트 문이 실행되지 않는다.
burf suite 의 Repeater 를 통해 전달된 값을 보니, <> 가 < 와 > 로 변환되고 있었다. htmlspecialchars() 함수가 사용되고 있는 것 같다.
소스코드 분석
각 level 의 입력값을 체크하고 있는 함수들을 살펴보자.
medium level 의 xss_check_4 는 addslashes() 함수가 동작하고 있다. ', ", \ 를 사용하지 않는다면 XSS 공격에 영향을 주지 않는다.
medium level 의 xss_check_4 는 addslashes() 함수가 동작하고 있다. <> 를 필터링하기 때문에 스크립트 문이 실행될 수 없다.
대응 방안
htmlspecialchars() 함수 사용
'웹 취약점(bee-box)' 카테고리의 다른 글
XSS - Stored(Blog) (0) | 2020.04.13 |
---|---|
XSS - Reflected(User-Agent) (0) | 2020.04.13 |
XSS - Reflected(Login Form) (0) | 2020.04.10 |
XSS - Reflected(AJAX/XML) (0) | 2020.04.06 |
XSS - Reflected(AJAX/JSON) (0) | 2020.04.06 |