실습 설명
실습 페이지 접근 시 4개의 실습이 존재한다.
실습 1번
실습 1번 페이지에 접근하면 URL을 입력하는 입력창이 존재한다.
URL 입력 창에 네이버 주소를 입력하여 Submit 버튼을 클릭한다.
네이버 주소를 입력 후 요청을 확인한 결과 redirect_url 파라미터에 입력 값이 들어가며, 응답 패킷에서 Location 헤더에 네이버 주소가 들어가여 네이버 주소로 이동하게 된다.
실습 2번
실습 2번 페이지 접근 시 here 부분에 링크가 적용되어 있다. 해당 링크를 클릭한다.
here 링크를 클릭하면 redirect_url 파라미터에 index.php를 포함하여 요청을 진행한다. 응답 결과에서 Location 헤더에 index.php가 존재하며, index.php 경로로 이동하게 된다.
redirect_url 파라미터는 사용자가 직접 수정이 가능하기 때문에 네이버 사이트로 설정 후 요청하면, 응답 패킷에서 Location 헤더에 네이버 주소가 설정되어 네이버 페이지로 이동하게 된다.
실습 3번
실습 3번 페이지에 접근하면 이동할 웹 사이트를 설정한 후 Submit 버튼을 누르면 해당 페이지로 이동한다.
버그바운티 클럽 페이지로 설정 후 Submit 요청 전송 시 redirect_url 파라미터에 버그바운티 클럽 주소가 포함되어 요청이 전송된다. 응답 패킷에서 meta 태그를 통해 버그바운티 클럽 페이지로 리다이렉트가 진행된다.
redirect_url 파라미터를 네이버 주소로 변조 후 요청시 응답 패킷에서 meta 태그에 네이버 주소가 삽입되어 네이버 페이지로 이동하게 된다.
실습 4번
실습 4번 페이지에 접근하면 이동할 웹 사이트를 설정한 후 Submit 버튼을 누르면 해당 페이지로 이동한다.
버그바운티 클럽 페이지로 설정 후 Submit 요청 전송 시 redirect_url 파라미터에 버그바운티 클럽 주소가 포함되어 요청이 전송된다. 응답 패킷에서 location 함수 내용으로 버그바운티 클럽 주소가 삽입되어 해당 페이지로 리다이렉트 된다.
redirect_url 파라미터를 네이버 주소로 변경 시 script 태그내 location 값으로 설정되어 네이버 주소로 리다이렉트 된다.
redirect_url 파라미터 javascript 스킴을 사용하여 XSS 공격도 가능하다.
해당 경로 직접 접근시 삽입된 자바스크립트 코드가 실행된다.