User-Agent 는 HTTP 요청 헤더에서 Client OS 정보, 웹 브라우저 정보를 보여준다. 이 부분에서 XSS 공격을 수행해보자!
bee-box 환경에서 실습해보자.
Level - low, medium
현재 페이지의 패킷을 burf suite 를 통해 잡아보면 위와 같이 User-Agent 를 확인할 수 있다. 이 부분을 스크립트 문으로 변경해보자.
User-Agent 부분을 위와 같이 스크립트 문으로 변경한 뒤 요청을 보내보았다.
그 결과, 스크립트 문을 실행할 수 있었다.
Level - high
User-Agent 값을 변경해도 스크립트 문이 실행되지 않았다. burf suite 의 Repeater 기능을 이용하여 넘어간 값을 확인해보았다.
<> 가 < 와 > 로 변경되어 있었다. 필터링이 되어 있다.
소스코드 분석
medium level 의 xss_check_4() 에서는 addslashes() 함수를 이용하여 필터링하고 있다. 해당 필터링 문자를 이용한 XSS 공격은 이 함수에 의해 제한될 것이다.
high level 의 xss_check_3() 에서는 htmlspecialchars() 함수를 이용하여 필터링하고 있다. 태그를 열고 닫는 <> 가 제한되기 때문에 일반적인 XSS 공격은 불가능하다.
대응 방안
htmlspecialchars() 함수 사용
'웹 취약점(bee-box)' 카테고리의 다른 글
XSS - Stored(Change Secret) (0) | 2020.04.13 |
---|---|
XSS - Stored(Blog) (0) | 2020.04.13 |
XSS - Reflected(Referer) (0) | 2020.04.10 |
XSS - Reflected(Login Form) (0) | 2020.04.10 |
XSS - Reflected(AJAX/XML) (0) | 2020.04.06 |