의미 URL 공격

Semantic URL attack

의미 URL 공격에서 클라이언트URL구문을 유지하되 의미적 의미를 변경하여 요청 매개변수를 수동으로 조정한다. 이 공격은 주로 CGI가 주도하는 웹사이트에 사용된다.

웹 브라우저 쿠키와 관련된 유사한 공격을 흔히 쿠키 중독이라고 부른다.

사용자가 보안 질문에 올바르게 대답하여 비밀번호를 재설정할 수 있고, 사용자가 선택한 전자우편 주소로 비밀번호를 보낼 수 있는 웹 기반 전자우편 응용프로그램을 고려해 보십시오. 그들이 보안 질문에 정확하게 대답한 후, 웹 페이지는 사용자가 대체 이메일 주소를 입력할 수 있는 다음 웹 양식에 도착할 것이다.

<form action="form password.php" method="GET"><입력 유형="숨겨진" 이름="사용자 이름"="user001" /><p>대체 이메일 주소를 입력하십시오.</p><입력 유형="텍스트" 이름="altemail" /><br />입력 유형="제출" ="제출" /> </형식> 

수신 페이지인 resetpassword.php에는 비밀번호를 새 이메일로 보내는 데 필요한 모든 정보가 들어 있다. 숨겨진 변수 사용자 이름에는 이메일 계정의 사용자 이름인 user001 값이 포함되어 있다.

이 웹 양식은 GET 데이터 방식을 사용하고 있기 때문에 사용자가 alternative@emailexample.com을 사용자가 비밀번호를 보내기를 원하는 이메일 주소로 제출하면 사용자는 다음 URL에 도착한다.

http://semanticurlattackexample.com/resetpassword.php?username=user001&altemail=alternative%40emailexample.com

이 URL은 브라우저의 위치 표시줄에 나타나기 때문에 사용자는 URL 파라미터를 통해 사용자 이름과 전자우편 주소를 식별할 수 있다. 사용자는 실험으로 다음 URL을 방문하여 다른 사람(user002)의 이메일 주소를 도용하기로 결정할 수 있다.

http://semanticurlattackexample.com/resetpassword.php?username=user002&altemail=alternative%40emailexample.com

resetpassword.php가 이러한 값을 수용하면 의미 URL 공격에 취약하다. user002 이메일 주소의 새로운 비밀번호가 생성되어 alternative@emailexmaple.com으로 전송되어 user002의 이메일 계정이 도용될 것이다.

의미 URL 공격을 피하는 한 가지 방법은 세션 변수를 사용하는 것이다.[1] 그러나 세션 변수는 세션 가로채기사이트스크립팅과 같은 다른 유형의 공격에 취약할 수 있다.

참조

  1. ^ 크리스 시프렛. 필수 PHP 보안: 제2장, 웨이백 머신에 보관된 2011-07-14 양식URL

참고 항목