이 도구를 이용하여 허용받지 않은 서비스 대상으로 해킹을 시도하는 행위는 범죄 행위입니다. 해킹을 시도할 때에 발생하는 법적인 책임은 그것을 행한 사용자에게 있다는 것을 명심하시기 바랍니다.
A3 - XSS - Reflected (Referer)
Referer Header는 요청된 페이지가 이전 웹 페이지의 주소를 포함하는 HTTP 헤더 필드입니다.
상세 설명
[hxxp://localhost/bWAPP/portal.php] 웹페이지에서 Cross-Site Scripting - Reflected (Referer) 클릭하여 [hxxp://localhost/bWAPP/xss_referer.php] 페이지로 이동했을 때 Referer는 [hxxp://localhost/bWAPP/portal.php] 가됩니다.
난이도 하
xss_referer.php 페이지를 확인해 보면 참조자는 portal.php 페이지라는 메시지를 확인할 수 있습니다. Referer 헤더를 확인하기 위해 프록시 툴을 사용해 보도록 하겠습니다.
프록시 툴을 이용하여 portal.php 페이지에서 xss_referer.php 페이지로 넘어갈 때 패킷을 잡아 줍니다.
프록시 툴을 이용하여 Referer 헤더를 확인하였고, Referer 헤더에 스크립트 문을 넣어 보도록 하겠습니다.
<script>alert(document.cookie)</script>
Referer 헤더에 스크립트 문을 넣어 주고 Forward 버튼을 눌러 확인해 보도록 하겠습니다.
난이도 중/상
난이도 중에서는 xss_check_4 함수를 사용하는 것을 알 수 있으며 xss_check_4 함수는 functions_external.php에 정의되어 있고 addslashes() 함수를 이용하여 입력 데이터를 우회합니다. addslashes() 함수는 데이터베이스 쿼리에서 필드 값으로 저장하기 전에 사용되는 함수입니다. 만일 문자열에 작은따옴표('), 큰따옴표("), 백 슬래시(\), NULL 문자(%00)가 포함되어 있다면, 이 문자들 앞에 백 슬래시(\)를 붙여 특수 문자가 순수한 하나의 문자로 인식되도록 해줍니다.
난이도 하 - 모든 스크립트 코드 실행
난이도 중 - ', ", \, NULL 문자를 포함하지 않는 스크립트 코드 실행
난이도 상에서는 xss_check_3 함수를 사용하는 것을 알 수 있으며 xss_check_3 함수는 functions_external.php에 정의되어 있고 htmlspecialchars() 함수를 호출하여 문자열에서 특수문자를 HTML 코드 형식으로 변환합니다. htmlspecialchars 함수를 살펴보면 두 번째 인자에 ENT_QUOTES를 추가하여 XSS에 사용되는 문자들을 HTML 엔티티 코드로 변환하기 때문에 스크립트 코드를 입력하여도 웹 브라우저에서는 문자로 인식하게 됩니다.
'Code::Security > 비박스(BWAPP)' 카테고리의 다른 글
비박스(bWAPP) A3 XSS - Stored (Blog) (0) | 2022.08.12 |
---|---|
비박스(bWAPP) A3 XSS - Reflected (User-Agent) (0) | 2022.08.12 |
비박스(bWAPP) A3 XSS - Reflected (PHP_SELF) (0) | 2022.08.09 |
비박스(bWAPP) A3 phpMyAdmin BBCode Tag XSS (0) | 2022.08.03 |
비박스(bWAPP) A3 XSS - Reflected (Login Form) (0) | 2022.08.02 |