Web hacking/bee-box
[Bee-box] XSS - Reflected(GET)
Dokker
2023. 12. 19. 17:53
난이도 하
화면을 들어오면 first name, last name 입력란이 있다.
입력한 내용은 아래 welcome 뒤에 출력 된다.
xss 취약점이 있는지 알아본다.
GET 방식이니 파라미터에 값을 바꿔본다.
<script>alert("hi");</script>
first name, last name 둘다 스크립트를 삽입 하였을 떄 동작한다.
즉 xss에 취약하는 것
Welcome 에는 스크립트문은 출력하지 않는다.
이 페이지에 있는 파라미터 firstname, lastname 모두 xss에 취약하다.
대응방안
난이도 상에서는 first name이나 last name에 스크립트 코드를 입력하여도 문자로 인식한다.
페이지 소스를 확인해보면 xss_check_3 함수를 사용하여 입력 데이터를 우회한다.
함수 내부에는 htmlspecialchars() 함수를 호출하여 입력 데이터를 UTF-8로 인코딩 한다.
xss는 웹페이지의 어느 곳이든 취약점이 발생하므로 허용한 소스코드 외에는 HTML 엔티티 코드로 변환하여, 웹 브라우저가 악의적인 소스 코드를 해석하지 못하게 막아야 한다.
이 방어방법은 SQL 인젝션의 대응방안으로도 활용된다.