본문 바로가기
3. 웹 애플리케이션 취약점 진단/비박스를 활용한 웹 애플리케이션 취약점 진단

[비박스를 활용한 웹 취약점 진단] 14. 검증되지 않은 리다이렉트와 포워드 [1]

by Robert8478 2023. 12. 14.

리다이렉션은 웹 애플리케이션에 접속한 사용자를 다른 페이지로 이동시키는 것이다. 여기서 목적지에 대한 검증이 이루어지지 않으면 공격에 사용될 수 있는 취약점이 되며, 악성 사이트나 피싱 사이트로 이동될 수 있다. 또한, 관리자 단말 PC에 악성코드 감염 시 내부 시스템으로 침투할 수도 있다.

[난이도 하]

이번 페이지는 드롭다운 메뉴에서 사이트를 선택하고 버튼을 누르면 해당 사이트로 이동되는 페이지이다. 버프슈트로 캡처해보자.

보면 url 변수에 이동하는 사이트를 입력받는 것을 볼 수 있다. url 변수에 다른 사이트의 주소를 16진수 인코딩한 값을 넣어보자.

16진수 인코딩한 값은 앞에 모두 % 문자를 추가해서 넣어주면 된다. 네이버 사이트 주소를 넣어보았다.

그랬더니 네이버 사이트로 이동한 것을 볼 수 있다.

[난이도 중,상]

난이도 중부터는 url 변수에 숫자값만 입력이 된다. php 코드를 보자.

난이도 중에서는 url에 숫자값만 가능하며 숫자값이 아니면 login 페이지로 리다이렉트 시키고 있었다.
난이도 상에서는 거기에다가 session_destroy 함수를 사용해서 현재 사용중인 세션의 데이터를 삭제한다.
이 함수는 쿠키에 포함된 세션 정보는 삭제하지 않기에 set_cookie 함수로 쿠키에 포함된 세션 정보를 삭제하고 있다.