2FA/MFA/OTP 우회
Tip
AWS 해킹 배우기 및 연습하기:
HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기:HackTricks Training GCP Red Team Expert (GRTE)
Azure 해킹 배우기 및 연습하기:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
향상된 Two-Factor Authentication 우회 기법
직접 Endpoint 접근
2FA를 우회하려면 다음 엔드포인트에 직접 접근해야 하며, 경로를 아는 것이 중요하다. 실패할 경우 Referrer header를 변경하여 2FA 검증 페이지에서 온 것처럼 가장해 보라.
Token 재사용
계정 내에서 이전에 사용된 토큰을 재사용하면 인증 우회에 효과적일 수 있다.
미사용 토큰 활용
자신의 계정에서 토큰을 추출해 다른 계정의 2FA를 우회하려 시도할 수 있다.
Token 노출 확인
웹 애플리케이션의 응답에 토큰이 노출되는지 조사하라.
Verification Link 악용
계정 생성 시 발송되는 email verification link를 사용하면 2FA 없이 프로필에 접근할 수 있다. 자세한 내용은 이 post를 참조하라.
세션 조작
사용자와 피해자 계정 모두에 대해 세션을 시작하고, 사용자 계정의 2FA만 완료한 뒤 진행을 멈춘 다음 피해자 계정 흐름의 다음 단계에 접근을 시도하면 백엔드 세션 관리의 한계를 악용할 수 있다.
비밀번호 재설정 메커니즘
재설정 후 사용자를 애플리케이션에 로그인시키는 비밀번호 재설정 기능을 조사하라. 동일한 링크로 여러 번 재설정이 가능한지 확인하는 것이 중요하다. 새로 재설정한 자격증명으로 로그인하면 2FA를 우회할 수 있다.
OAuth 플랫폼 침해
신뢰되는 OAuth 플랫폼(예: Google, Facebook)에서 사용자의 계정을 탈취하면 2FA 우회의 경로가 될 수 있다.
무차별 대입(Brute Force) 공격
Rate Limit 부재
코드 시도 횟수에 제한이 없으면 brute force가 가능하다. 단, 보이지 않는(silent) rate limiting이 있는지 고려해야 한다.
유효한 OTP를 보냈을 때 응답이 다른지 확인해보라. this post에서 버그 헌터는 20회 실패 후 401을 반환해 rate limit가 트리거되더라도 유효한 코드를 전송하면 200 응답을 받았음을 발견했다.
느린 Brute Force
흐름 별 rate limit은 있으나 전역적인 제한이 없을 경우 느리게 brute force를 수행할 수 있다.
코드 재전송으로 Rate Limit 리셋
코드 재전송이 rate limit을 리셋해 지속적인 brute force 시도를 가능하게 한다.
클라이언트 측 Rate Limit 우회
클라이언트 측 rate limiting을 우회하는 기법을 설명한 문서가 있다.
내부 동작에는 Rate Limit 부재
로그인 시도에는 rate limit이 적용되더라도 내부 계정 동작에는 적용되지 않을 수 있다.
SMS 코드 재전송 비용
SMS로 코드를 과도하게 재전송하면 회사에 비용이 발생하지만 2FA를 우회하지는 못한다.
무한 OTP 생성
단순한 코드로 무한히 OTP를 생성할 수 있으면 소수의 코드 집합을 반복해 brute force가 가능하다.
Race Condition 악용
2FA 우회를 위한 race condition 악용 방법은 특정 문서에서 찾을 수 있다.
CSRF/Clickjacking 취약점
CSRF나 Clickjacking 취약점을 이용해 2FA를 비활성화하는 전략을 검토하라.
“Remember Me” 기능 악용
예측 가능한 쿠키 값
‘remember me’ 쿠키 값을 추측하면 제한을 우회할 수 있다.
IP 주소 가장
X-Forwarded-For 헤더를 통해 피해자의 IP를 가장하면 제한을 우회할 수 있다.
구버전 활용
서브도메인
서브도메인을 테스트하라 — 구버전을 사용해 2FA 지원이 없거나 취약한 2FA 구현을 포함하고 있을 수 있다.
API 엔드포인트
구형 API 버전(예: /v*/ 경로)을 확인하라 — 2FA 우회 기법에 취약할 수 있다.
이전 세션 처리
2FA 활성화 시 기존 세션을 종료하면 탈취된 세션으로 인한 무단 접근을 방지할 수 있다.
백업 코드에 대한 접근 제어 결함
2FA 활성화 시 즉시 백업 코드가 생성되며, CORS 설정 오류나 XSS 취약점이 있으면 백업 코드를 무단으로 획득할 수 있어 위험하다.
2FA 페이지의 정보 노출
2FA 검증 페이지에 전화번호 등 민감한 정보가 노출되는 것은 문제다.
비밀번호 재설정으로 2FA 비활성화
우회 가능성을 보여주는 프로세스 예시는 계정 생성 → 2FA 활성화 → 비밀번호 재설정 → 이후 2FA 요구 없이 로그인이다.
디코이(Decoy) 요청
brute force 시도를 은폐하거나 rate limiting을 속이기 위해 디코이 요청을 사용하면 도움이 된다. 이를 위해서는 애플리케이션의 보안 조치와 rate limiting 동작을 정교하게 이해하고 요청을 설계해야 한다.
OTP 생성 오류
OTP가 사용자가 이미 가진 데이터나 OTP 생성 전에 전송되는 데이터를 기반으로 생성되는 경우, 사용자가 스스로 OTP를 생성해 우회할 수 있다.
참고자료
- https://medium.com/@iSecMax/two-factor-authentication-security-testing-and-possible-bypasses-f65650412b35
- https://azwi.medium.com/2-factor-authentication-bypass-3b2bbd907718
- https://getpocket.com/read/aM7dap2bTo21bg6fRDAV2c5thng5T48b3f0Pd1geW2u186eafibdXj7aA78Ip116_1d0f6ce59992222b0812b7cab19a4bce
P
Tip
AWS 해킹 배우기 및 연습하기:
HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기:HackTricks Training GCP Red Team Expert (GRTE)
Azure 해킹 배우기 및 연습하기:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
HackTricks

