[하루한줄] CVE-2021-33766: AN AUTHENTICATION BYPASS IN MICROSOFT EXCHANGE SERVER
URL
PROXYTOKEN: AN AUTHENTICATION BYPASS IN MICROSOFT EXCHANGE SERVER
Target
Microsoft Exchange Server
Explain
Microsoft Exchange Server에서 인증 우회 취약점이 발견되었습니다. 이 취약점을 통해 해커는 인증 절차 없이 임의 사용자의 이메일 수신함 설정을 조작해 이메일을 탈취할 수 있습니다.
Microsoft Exchange는 front-end와 back-end 웹사이트를 생성합니다. front-end는 주로 back-end의 proxy 기능을 수행합니다. front-end는 모든 post-authentication 요청을 재구성해 back-end로 전달하고 back-end로부터 응답을 수집해 다시 client로 전달합니다.
Microsoft Exchange는 “Delegated Authentication” 기능을 지원합니다. SecurityToken
이라는 cookie가 존재한다면 요청에 대한 적절한 인증 절차를 front-end가 아닌 back-end가 수행하게 됩니다. 요청이 들어오면 front-end는 인증 과정을 거치지 않고 그대로 back-end에 전달합니다.
modules>
...
<add name="DelegatedAuthModule" type="Microsoft.Exchange.Configuration.DelegatedAuthentication.DelegatedAuthenticationModule, Microsoft.Exchange.Configuration.DelegatedAuth" preCondition="managedHandler" />
...
<!-- Remove all DataCenter only modules by default. They will be enabled by enable-LiveIDForWebApplication.ps1 -->
<remove name="DelegatedAuthModule" />
<remove name="OrgIdAuthenticationModule" />
<remove name="LiveIdBasicAuthModule" />
<remove name="OAuthAuthModule" />
</modules>
위는 back-end의 /ecp/web.config
내용 일부입니다. back-end는 “Delegated Authentication” 기능을 수행해야 할 DelegatedAuthModule
를 로드하지 않습니다. 즉, front-end는 back-end가 요청의 인증을 처리할 것이라 믿고 인증 절차 없이 요청을 전달하지만 back-end에는 인증에 사용될 모듈이 없어 인증을 수행할 수 없습니다. front-end와 back-end에서 모두 인증되지 않는 요청을 보낼 수 있습니다.
본 글은 CC BY-SA 4.0 라이선스로 배포됩니다. 공유 또는 변경 시 반드시 출처를 남겨주시기 바랍니다.