이 도구를 이용하여 허용받지 않은 서비스 대상으로 해킹을 시도하는 행위는 범죄 행위입니다. 해킹을 시도할 때에 발생하는 법적인 책임은 그것을 행한 사용자에게 있다는 것을 명심하시기 바랍니다.
A3 - XSS - Reflected (Back Button)
난이도 하
xss_back_button.php 페이지를 확인해 보시면 'Go back' 버튼과 함께 단추를 눌러 이전 페이지로 돌아갑니다 라는 문구를 확인할 수 있습니다. 'Go back' 버튼을 눌렀을 경우 어느 페이지로 연결이 되는지 확인하기 위해 소스코드를 확인해 보도록 하겠습니다.
크롬의 개발자 도구를 통하여 확인해 보면 onclick 이벤트에 현재페이지가 location.href로 연결이 되어 있는 것을 알 수 있습니다.
location.href
- href 는 location 객체에 속해있는 프로퍼티로 현재 접속 중인 페이지 정보를 갖고 있습니다.
- 값을 변경할 수 있는 프로퍼티이기 때문에 다른 페이지로 이동하는데도 사용되고 있습니다.
상세 확인을 위하여 버프스위트를 통해서 알아보도록 하겠습니다.
먼저 비박스 메인페이지에서 Cross-Site Scripting - Reflected (Back Button) 선택하여 패킷을 확인합니다. 여기서 확인해야 할 부분은 Referer Header 부분입니다.
Referer Header
- 요청된 페이지가 이전 웹 페이지의 주소를 포함하는 HTTP 헤더 필드입니다.
상세 설명
- [hxxp://localhost/bWAPP/portal.php] 웹페이지에서 Cross-Site Scripting - Reflected (Back Button) 클릭하여 [hxxp://localhost/bWAPP/xss_back_button.php] 페이지로 이동했을 때 Referer는 [hxxp://localhost/bWAPP/portal.php] 가됩니다.
해당 페이지는 Go Back버튼을 누르면 portal.php 페이지로 돌아갑니다. xss_back_button.php페이지는 portal.php페이지에 의해 요청되었기 때문에 Go Back 버튼을 눌렀을 때, HTTP Referer 헤더에 의해 portal.php 페이지로 이동하게 됩니다. 따라서 페이로드가 주입되기 위해서는 이 두 페이지의 HTTP 요청을 가로채야 합니다. 그러면 페이로드가 HTTP Referer 헤더에 주입될 수 있습니다.
먼저 간단히 테스트를 하기 위하여 Referer 값에 문자열을 사용해 보았습니다. 'XSS TEST'라고 입력한 뒤 버프 스위트에서 Forward 버튼을 눌러 결과값을 확인해 보시기 바랍니다.
이제 XSS 취약점 확인을 하기 위하여 값을 입력해야 하지만, onClick 메소드 안에서는 <script> 태그를 쓸 수 없기 때문에 다른 방법으로 확인해 보도록 하겠습니다.
버프 스위트로 패킷을 잡아 Referer 헤더에 ';alert('XSS TEST')'; 값을 입력해 주었습니다.
난이도 중 - ', ", \, NULL 문자를 포함하지 않는 스크립트 코드 실행
난이도 상에서는 xss_check_3 함수를 사용하는 것을 알 수 있으며 xss_check_3 함수는 functions_external.php에 정의되어 있고 htmlspecialchars() 함수를 호출하여 문자열에서 특수문자를 HTML 코드 형식으로 변환합니다. htmlspecialchars 함수를 살펴보면 두 번째 인자에 ENT_QUOTES를 추가하여 XSS에 사용되는 문자들을 HTML 엔티티 코드로 변환하기 때문에 스크립트 코드를 입력하여도 웹 브라우저에서는 문자로 인식하게 됩니다.
'Code::Security > 비박스(BWAPP)' 카테고리의 다른 글
비박스(bWAPP) A3 XSS - Reflected (Eval) (0) | 2022.07.28 |
---|---|
비박스(bWAPP) A3 XSS - Reflected (Custom Header) (0) | 2022.07.28 |
비박스(bWAPP) A3 XSS - Reflected (AJAX/XML) (0) | 2022.07.25 |
비박스(bWAPP) A3 XSS - Reflected (AJAX/JSON) (0) | 2022.07.22 |
비박스(bWAPP) A3 XSS - Reflected (JSON) (0) | 2022.07.22 |