해결된 질문
작성
·
1.3K
3
안녕하세요. XSS 강의 잘 수강하고 있습니다.
제목 그대로 DOM XSS와 Reflected XSS의 차이에 대해서 궁금한게 있어서 문의드립니다.
DOM based XSS와 Reflected XSS의 차이가 클라이언트 측에서 동적 페이지를 구성하냐, 서버 측에서 구성하냐라고 하셨는데, Reflected XSS에서 서버 측 어플리케이션 단에서 동적 페이지를 구성한다는게 조금 이해가 안 가서 그러는데 혹시 예시를 들어주실 수 있을까요?
감사합니다.
답변 1
3
안녕하세요.
사용자 입력 값에 따라서 페이지 내용이 달라지는 것을 동적 페이지라 하는데,
예를 들어, page.php?value=test 라고 요청 시 응답 값에 test라는 내용이 있으며, page.php?value=crehacktive라고 요청 시 응답 값에는 crehacktive라는 내용이 존재합니다.
이처럼 입력 값에 따라 페이지의 내용이 다른 것을 동적 페이지라고 합니다.
이렇게 동적 페이지를 구성하는 것은 크게 클라이언트 혹은 서버 측에서 할 수 있습니다. Reflected XSS의 경우는 서버 측에서 동적 페이지를 구성하는 환경에서 발생되는 XSS를 말합니다. 즉, page.php?value=[악성스크립트] 요청 시 서버 측에서 사용자 입력 값을 응답 메시지 내 실어서 페이지 내 [악성스크립트]가 담겨서 오는 것을 말합니다. 반면 DOM XSS 경우는 JS의 DOM을 통해 클라이언트 측에서 사용자 입력 값을 통해 동적 페이지를 구성하는 것을 말하죠.
이렇게 클라이언트 측인지 서버 측인지 구별하는 방법은, page.php?value=test 요청 후 웹 프록시 도구를 통해 응답 메시지 내 test 라는 단어가 포함되어 있는지 찾아보는 방법이 있습니다. 만약 test 단어가 존재하면 Reflected XSS 테스트를 해보면 되겟죠.
감사합니다.