계정 탈취
Reading time: 5 minutes
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을 제출하여 해킹 트릭을 공유하세요.
권한 문제
계정의 이메일을 변경하려고 시도해야 하며, 확인 프로세스는 검토되어야 합니다. 만약 약한 것으로 발견되면, 이메일을 의도된 피해자의 이메일로 변경하고 확인해야 합니다.
유니코드 정규화 문제
- 의도된 피해자의 계정
victim@gmail.com
- 유니코드를 사용하여 계정을 생성해야 합니다
예:vićtim@gmail.com
이 강연에서 설명된 바와 같이, 이전 공격은 제3자 신원 제공자를 악용하여 수행될 수 있습니다:
- 피해자와 유사한 이메일을 가진 제3자 신원에서 계정을 생성합니다 (
vićtim@company.com
). - 제3자 제공자가 이메일을 확인하지 않아야 합니다.
- 만약 신원 제공자가 이메일을 확인한다면, 도메인 부분을 공격할 수 있습니다:
victim@ćompany.com
으로 도메인을 등록하고, 신원 제공자가 도메인의 아스키 버전을 생성할 것이라고 기대합니다. - 피해자 플랫폼에서 이 신원 제공자를 통해 로그인하여 유니코드 문자를 정규화하고 피해자 계정에 접근할 수 있습니다.
자세한 내용은 유니코드 정규화 문서를 참조하십시오:
재사용 가능한 리셋 토큰
대상 시스템이 리셋 링크를 재사용할 수 있도록 허용한다면, gau
, wayback
또는 scan.io
와 같은 도구를 사용하여 더 많은 리셋 링크를 찾기 위한 노력을 해야 합니다.
계정 탈취 전 단계
- 피해자의 이메일을 사용하여 플랫폼에 가입하고 비밀번호를 설정해야 합니다 (확인을 시도해야 하지만, 피해자의 이메일에 접근할 수 없으면 불가능할 수 있습니다).
- 피해자가 OAuth를 사용하여 가입하고 계정을 확인할 때까지 기다려야 합니다.
- 일반 가입이 확인되기를 바라며, 피해자의 계정에 접근할 수 있습니다.
CORS 잘못 구성으로 인한 계정 탈취
페이지에 CORS 잘못 구성이 포함되어 있다면, 사용자의 민감한 정보를 훔쳐서 계정을 탈취하거나 같은 목적으로 인증 정보를 변경하도록 할 수 있습니다:
CORS - Misconfigurations & Bypass
CSRF를 통한 계정 탈취
페이지가 CSRF에 취약하다면, 사용자가 비밀번호, 이메일 또는 인증 정보를 수정하도록 할 수 있습니다. 그러면 접근할 수 있습니다:
CSRF (Cross Site Request Forgery)
XSS를 통한 계정 탈취
애플리케이션에서 XSS를 발견하면, 쿠키, 로컬 스토리지 또는 웹 페이지의 정보를 훔쳐 계정을 탈취할 수 있습니다:
동일 출처 + 쿠키
제한된 XSS 또는 서브도메인 탈취를 발견하면, 쿠키를 조작하여 (예: 고정) 피해자 계정을 타겟으로 할 수 있습니다:
비밀번호 리셋 메커니즘 공격
Reset/Forgotten Password Bypass
응답 조작
인증 응답을 단순한 불리언으로 줄일 수 있다면, false를 true로 변경해 보십시오 그리고 접근할 수 있는지 확인하십시오.
OAuth를 통한 계정 탈취
호스트 헤더 주입
- 비밀번호 리셋 요청 시작 후 호스트 헤더가 수정됩니다.
X-Forwarded-For
프록시 헤더가attacker.com
으로 변경됩니다.- 호스트, 리퍼러 및 오리진 헤더가 동시에
attacker.com
으로 변경됩니다. - 비밀번호 리셋을 시작한 후 메일을 다시 보내기로 선택하면, 위의 세 가지 방법이 모두 사용됩니다.
응답 조작
- 코드 조작: 상태 코드가
200 OK
로 변경됩니다. - 코드 및 본문 조작:
- 상태 코드가
200 OK
로 변경됩니다. - 응답 본문이
{"success":true}
또는 빈 객체{}
로 수정됩니다.
이러한 조작 기술은 JSON이 데이터 전송 및 수신에 사용되는 시나리오에서 효과적입니다.
현재 세션의 이메일 변경
이 보고서에서:
- 공격자가 새로운 이메일로 변경 요청을 합니다.
- 공격자는 이메일 변경 확인 링크를 받습니다.
- 공격자는 피해자에게 링크를 보내 클릭하게 합니다.
- 피해자의 이메일이 공격자가 지정한 이메일로 변경됩니다.
- 공격자는 비밀번호를 복구하고 계정을 탈취할 수 있습니다.
이것은 이 보고서에서도 발생했습니다.
계정 탈취를 위한 이메일 확인 우회
- 공격자가 attacker@test.com으로 로그인하고 가입 시 이메일을 확인합니다.
- 공격자가 확인된 이메일을 victim@test.com으로 변경합니다 (이메일 변경에 대한 추가 확인 없음).
- 이제 웹사이트가 victim@test.com으로 로그인할 수 있도록 허용하며, 피해자 사용자의 이메일 확인을 우회했습니다.
오래된 쿠키
이 게시물에서 설명된 바와 같이, 계정에 로그인하고 인증된 사용자로서 쿠키를 저장한 후 로그아웃하고 다시 로그인할 수 있었습니다.
새로운 로그인으로 인해 다른 쿠키가 생성되더라도 이전 쿠키가 다시 작동하게 되었습니다.
참고 문헌
- https://infosecwriteups.com/firing-8-account-takeover-methods-77e892099050
- https://dynnyd20.medium.com/one-click-account-take-over-e500929656ea
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을 제출하여 해킹 트릭을 공유하세요.