# 2FA/MFA/OTP 우회 {{#include ../banners/hacktricks-training.md}} ## **강화된 이중 인증 우회 기술** ### **직접 엔드포인트 접근** 2FA를 우회하기 위해 다음 엔드포인트에 직접 접근하며, 경로를 아는 것이 중요합니다. 실패할 경우, **Referrer header**를 변경하여 2FA 인증 페이지에서의 탐색을 모방합니다. ### **토큰 재사용** 계정 내에서 이전에 사용된 토큰을 재사용하는 것이 효과적일 수 있습니다. ### **사용되지 않은 토큰 활용** 자신의 계정에서 토큰을 추출하여 다른 계정의 2FA를 우회할 수 있습니다. ### **토큰 노출** 웹 애플리케이션의 응답에서 토큰이 노출되었는지 조사합니다. ### **검증 링크 악용** **계정 생성 시 전송된 이메일 검증 링크**를 사용하면 2FA 없이 프로필에 접근할 수 있습니다. 이는 자세한 [게시물](https://srahulceh.medium.com/behind-the-scenes-of-a-security-bug-the-perils-of-2fa-cookie-generation-496d9519771b)에서 강조되었습니다. ### **세션 조작** 사용자와 피해자의 계정에 대한 세션을 시작하고, 사용자의 계정에 대해 2FA를 완료한 후 진행하지 않으면 피해자의 계정 흐름에서 다음 단계에 접근을 시도할 수 있습니다. 이는 백엔드 세션 관리의 한계를 악용하는 것입니다. ### **비밀번호 재설정 메커니즘** 비밀번호 재설정 기능을 조사하여, 동일한 링크를 사용하여 여러 번 재설정할 수 있는 가능성을 확인하는 것이 중요합니다. 새로 재설정된 자격 증명으로 로그인하면 2FA를 우회할 수 있습니다. ### **OAuth 플랫폼 손상** 신뢰할 수 있는 **OAuth** 플랫폼(예: Google, Facebook)에서 사용자의 계정을 손상시키면 2FA를 우회할 수 있는 경로를 제공할 수 있습니다. ### **무차별 대입 공격** #### **비율 제한 부재** 코드 시도 횟수에 대한 제한이 없으면 무차별 대입 공격이 가능하지만, 잠재적인 조용한 비율 제한을 고려해야 합니다. 비율 제한이 설정되어 있더라도 유효한 OTP가 전송될 때 응답이 다른지 확인해야 합니다. [**이 게시물**](https://mokhansec.medium.com/the-2-200-ato-most-bug-hunters-overlooked-by-closing-intruder-too-soon-505f21d56732)에서 버그 헌터는 20번의 실패한 시도 후 비율 제한이 발생하더라도 유효한 OTP가 전송되면 200 응답을 받았음을 발견했습니다. #### **느린 무차별 대입** 흐름 속도 제한이 존재하지만 전반적인 비율 제한이 없는 경우 느린 무차별 대입 공격이 가능합니다. #### **코드 재전송 제한 초기화** 코드를 재전송하면 비율 제한이 초기화되어 계속해서 무차별 대입 시도를 할 수 있습니다. #### **클라이언트 측 비율 제한 우회** 클라이언트 측 비율 제한을 우회하는 기술에 대한 문서가 있습니다. #### **내부 작업의 비율 제한 부재** 비율 제한은 로그인 시도를 보호할 수 있지만 내부 계정 작업에는 적용되지 않을 수 있습니다. #### **SMS 코드 재전송 비용** SMS를 통해 코드를 과도하게 재전송하면 회사에 비용이 발생하지만, 2FA를 우회하지는 않습니다. #### **무한 OTP 재생성** 간단한 코드로 무한 OTP 생성을 통해 소규모 코드 집합을 재시도하여 무차별 대입이 가능합니다. ### **경쟁 조건 악용** 2FA 우회를 위한 경쟁 조건 악용은 특정 문서에서 찾을 수 있습니다. ### **CSRF/클릭재킹 취약점** CSRF 또는 클릭재킹 취약점을 탐색하여 2FA를 비활성화하는 것은 유효한 전략입니다. ### **"기억하기" 기능 악용** #### **예측 가능한 쿠키 값** "기억하기" 쿠키 값을 추측하면 제한을 우회할 수 있습니다. #### **IP 주소 가장하기** **X-Forwarded-For** 헤더를 통해 피해자의 IP 주소를 가장하면 제한을 우회할 수 있습니다. ### **구버전 활용** #### **서브도메인** 서브도메인을 테스트하면 2FA 지원이 없는 구버전을 사용하거나 취약한 2FA 구현이 포함될 수 있습니다. #### **API 엔드포인트** /v\*/ 디렉토리 경로로 표시된 구버전 API는 2FA 우회 방법에 취약할 수 있습니다. ### **이전 세션 처리** 2FA 활성화 시 기존 세션을 종료하면 손상된 세션으로부터의 무단 접근으로부터 계정을 보호합니다. ### **백업 코드와의 접근 제어 결함** 2FA 활성화 시 즉시 생성되고 무단으로 검색될 수 있는 백업 코드는 CORS 잘못 구성/XSS 취약점과 함께 위험을 초래합니다. ### **2FA 페이지의 정보 노출** 2FA 인증 페이지에서 민감한 정보(예: 전화번호)가 노출되는 것은 우려 사항입니다. ### **비밀번호 재설정으로 2FA 비활성화** 계정 생성, 2FA 활성화, 비밀번호 재설정 및 이후 2FA 요구 없이 로그인하는 과정을 통해 잠재적인 우회 방법을 보여줍니다. ### **미끼 요청** 무차별 대입 시도를 숨기거나 비율 제한 메커니즘을 오도하기 위해 미끼 요청을 활용하는 것은 우회 전략에 또 다른 레이어를 추가합니다. 이러한 요청을 작성하려면 애플리케이션의 보안 조치 및 비율 제한 동작에 대한 미세한 이해가 필요합니다. ### OTP 구성 오류 사용자가 이미 가지고 있는 데이터 또는 OTP 생성을 위해 이전에 전송된 데이터를 기반으로 OTP가 생성되는 경우, 사용자가 이를 생성하고 우회할 수 있는 가능성이 있습니다. ## 참고 문헌 - [https://medium.com/@iSecMax/two-factor-authentication-security-testing-and-possible-bypasses-f65650412b35](https://github.com/carlospolop/hacktricks/blob/master/pentesting-web/%22https:/medium.com/@iSecMax/two-factor-authentication-security-testing-and-possible-bypasses-f65650412b35%22/README.md) - [https://azwi.medium.com/2-factor-authentication-bypass-3b2bbd907718](https://azwi.medium.com/2-factor-authentication-bypass-3b2bbd907718) - [https://getpocket.com/read/aM7dap2bTo21bg6fRDAV2c5thng5T48b3f0Pd1geW2u186eafibdXj7aA78Ip116_1d0f6ce59992222b0812b7cab19a4bce](https://getpocket.com/read/aM7dap2bTo21bg6fRDAV2c5thng5T48b3f0Pd1geW2u186eafibdXj7aA78Ip116_1d0f6ce59992222b0812b7cab19a4bce) P {{#include ../banners/hacktricks-training.md}}