mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
132 lines
6.4 KiB
Markdown
132 lines
6.4 KiB
Markdown
# 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}}
|