리다이렉트(또는 포워드) 기능이 존재하는 경우,
외부 입력값이 검증, 제한 없이 리다이렉트 또는 포워드 주소로 사용되는 경우 발생
→ 의도하지 않은 주소로 리다이렉트(또는 포워드)가 발생
→ 공격자가 미리 만들어 놓은 사이트로 접속을 유도하여 사용자 정보를 탈취 = 피싱(phishing)
[정상적인 요청]
http://www.다음.net/dispatcher.jsp?url=main.jsp
⇒ 사용자에게 http://www.다음.net/main.jsp 화면이 노출
[비정상적인 요청]
http://www.다음.net/dispatcher.jsp?url=http://www.그다음.net/main.jsp
⇒ 사용자에게 http://www.그다음.net/main.jsp 화면이 노출
[공격문자열을 생성하여 불특정 다수에게 이메일, SMS 등을 이용하여 전달]
<a href="http://www.다음.net/dispatcher.jsp?url=http://www.그다음.net/main.jsp">사용자 클릭을 유도하는 내용</a>
⇒ 전달된 링크를 클릭하면 http://www.그다음.net/main.jsp 화면이 노출
[방어기법]
화이크 리스트 방식의 입력값 제한
- 리다이렉트(포워드) 주소를 미리 정의하고 정의된 범위 내에서 사용될 수 있도록 제한
- 외부 입력값을 리다이렉트(포워드) 주소로 직접 사용하지 않고 프로그램 내주에 정의한 목록을 참조하는 용도로 사용
리다이렉트(redirect)
- 사용자에게는 리다이렉트된 주소가 표시
- 요청에서 사용한 파라미터를 리다이렉트 페이지에서 직접 사용할 수 없음
포워드(forward)
- 사용자에게는 요청한 주소가 표시
- 요청에서 사용한 파라미터를 포워드 페이지에서 직접 사용할 수 있음
'보안 > 개발보안' 카테고리의 다른 글
크로스사이트 요청 위조 (0) | 2019.10.01 |
---|---|
LDAP 삽입 (0) | 2019.10.01 |
위험한 형식 파일 업로드 (0) | 2019.10.01 |
운영체제 명령어 삽입 (0) | 2019.10.01 |
크로스사이트 스크립트 (0) | 2019.10.01 |
댓글