의미 URL 공격
Semantic URL attack이 글은 검증을 위해 인용구가 추가로 필요하다.– · · 책· · (2009년 12월)(이 템플릿 |
의미 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] 그러나 세션 변수는 세션 가로채기와 사이트 간 스크립팅과 같은 다른 유형의 공격에 취약할 수 있다.
참조
참고 항목