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

124 lines
8.3 KiB
Markdown

# 비밀번호 재설정/잊어버린 비밀번호 우회
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong>를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요<strong>!</strong></summary>
HackTricks를 지원하는 다른 방법:
* **회사를 HackTricks에서 광고하거나 HackTricks를 PDF로 다운로드**하려면 [**SUBSCRIPTION PLANS**](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) 컬렉션입니다.
* **💬 [**Discord 그룹**](https://discord.gg/hRep4RUj7f)** 또는 [**텔레그램 그룹**](https://t.me/peass)**에 가입하거나** 트위터에서 **@carlospolopm**을 팔로우**하여** Twitter**에서** 최신 정보**를 받아보세요**.**
* **HackTricks**와 **HackTricks Cloud** github 저장소에 PR을 제출하여 자신의 해킹 기법을 공유하세요.
</details>
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
경험있는 해커와 버그 바운티 헌터와 소통하기 위해 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 서버에 참여하세요!
**해킹 통찰력**\
해킹의 스릴과 도전을 다루는 콘텐츠와 상호 작용하세요.
**실시간 해킹 뉴스**\
실시간 뉴스와 통찰력을 통해 빠르게 변화하는 해킹 세계를 따라가세요.
**최신 공지사항**\
새로운 버그 바운티 출시 및 중요한 플랫폼 업데이트에 대한 정보를 받아보세요.
**[Discord](https://discord.com/invite/N3FrSbmwdy)**에 참여하여 최고의 해커들과 협업을 시작하세요!
## **리퍼러를 통한 비밀번호 재설정 토큰 누출**
* HTTP 리퍼러 헤더는 비밀번호 재설정 토큰을 URL에 포함시킬 수 있습니다. 이는 사용자가 비밀번호 재설정을 요청한 후 제3자 웹사이트 링크를 클릭할 때 발생할 수 있습니다.
* **영향**: CSRF(크로스 사이트 요청 위조) 공격을 통한 계정 탈취 가능.
* **참고**:
- [HackerOne 보고서 342693](https://hackerone.com/reports/342693)
- [HackerOne 보고서 272379](https://hackerone.com/reports/272379)
- [비밀번호 재설정 토큰 누출 기사](https://medium.com/@rubiojhayz1234/toyotas-password-reset-token-and-email-address-leak-via-referer-header-b0ede6507c6a)
## **비밀번호 재설정 조작**
* 공격자는 비밀번호 재설정 요청 중에 Host 헤더를 조작하여 재설정 링크를 악성 사이트로 변경할 수 있습니다.
* **패치**: `$_SERVER['HTTP_HOST']` 대신 `$_SERVER['SERVER_NAME']`을 사용하여 비밀번호 재설정 URL을 구성하세요.
* **영향**: 재설정 토큰을 공격자에게 누출하여 계정 탈취 가능.
* **완화 방법**:
- 허용된 도메인의 화이트리스트에 Host 헤더를 유효성 검사하세요.
- 절대 URL을 생성하기 위해 안전하고 서버 측의 방법을 사용하세요.
* **참고**:
- [비밀번호 재설정 조작에 대한 Acunetix 기사](https://www.acunetix.com/blog/articles/password-reset-poisoning/)
## **이메일 매개변수 조작을 통한 비밀번호 재설정**
* 공격자는 추가적인 이메일 매개변수를 추가하여 비밀번호 재설정 요청을 조작할 수 있습니다.
* **완화 방법**:
- 서버 측에서 이메일 매개변수를 올바르게 구문 분석하고 유효성을 검사하세요.
- 인젝션 공격을 방지하기 위해 준비된 문장 또는 매개변수화된 쿼리를 사용하세요.
* **참고**:
- [Readme.com 계정 탈취](https://medium.com/@0xankush/readme-com-account-takeover-bugbounty-fulldisclosure-a36ddbe915be)
## **API 매개변수 조작을 통한 모든 사용자의 이메일 및 비밀번호 변경**
* 공격자는 API 요청에서 이메일 및 비밀번호 매개변수를 수정하여 계정 자격 증명을 변경할 수 있습니다.
* **완화 방법**:
- 엄격한 매개변수 유효성 검사 및 인증 확인을 보장하세요.
- 수상한 활동을 감지하고 대응하기 위해 견고한 로깅 및 모니터링을 구현하세요.
* **참고**:
- [API 매개변수 조작을 통한 전체 계정 탈취](https://medium.com/@adeshkolte/full-account-takeover-changing-email-and-password-of-any-user-through-api-parameters-3d527ab27240)
## **레이트 리밋 없음: 이메일 폭탄**
* 비밀번호 재설정 요청에 대한 레이트 리밋이 없으면 이메일 폭탄이 발생하여 사용자가 재설정 이메일로 과부하를 받을 수 있습니다.
* **완화 방법**:
- IP 주소 또는 사용자 계정을 기반으로 한 레이트 리밋을 구현하세요.
- 자동 남용을 방지하기 위해 CAPTCHA 도전을 사용하세요.
* **참고**:
- [HackerOne 보고서 280534](https://hackerone.com/reports/280534)
## **비밀번호 재설정 토큰 생성 방법 확인**
* 토큰 생성의 패턴이나 방법을 이해하면 토큰을 예측하거나 브루트 포스할 수 있습니다.
* **완화 방법**:
- 토큰 생성에 강력한 암호화 방법을 사용하세요.
- 예측 가능성을 방지하기 위해 충분한 무작위성과 길이를 보장하세요.
* **도구**: 토큰의 무작위성을 분석하기 위해 Burp Sequencer를 사용하세요.
## **추측 가능한 GUID**
* GUID(예: 버전 1)가 추측 가능하거나 예측 가능한 경우, 공격자는 유효한 재설정 토큰을 생성하기 위해 브루트 포스할 수 있습니다.
* **완화 방법**:
- 무작위성을 위해 GUID 버전 4를 사용하거나 다른 버전에 대해 추가적인 보안 조치를 구현하세요.
* **도구**: GUID를 분석하고 생성하기 위해 [guidtool](https://github.com/intruder-io/guidtool)을 사용하세요.
## **응답 조작: 나쁜 응답을 좋은 응답으로 대체**
* HTTP 응답을 조작하여 오류 메시지나 제한을 우회합니다.
* **완화 방법**:
- 응답 무결성을 보장하기 위해 서버 측에서 확인을 구현하세요.
- 중간자 공격을 방지하기 위해 HTTPS와 같은 안전한 통신 채널을 사용하세요.
* **참고**:
- [실시간 버그 바운티 이벤트에서의 중대한 버그](https://medium.com/@innocenthacker/how-i-found-the-most-critical-bug-in-live-bug-b
## 참고 자료
* [https://anugrahsr.github.io/posts/10-Password-reset-flaws/#10-try-using-your-token](https://anugrahsr.github.io/posts/10-Password-reset-flaws/#10-try-using-your-token)
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
[**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 서버에 가입하여 경험 많은 해커와 버그 바운티 헌터와 소통하세요!
**해킹 통찰력**\
해킹의 스릴과 도전에 대해 깊이 파고드는 콘텐츠와 상호 작용하세요.
**실시간 해킹 뉴스**\
실시간 뉴스와 통찰력을 통해 빠르게 변화하는 해킹 세계를 따라가세요.
**최신 공지사항**\
새로운 버그 바운티 출시 및 중요한 플랫폼 업데이트에 대해 최신 정보를 받아보세요.
**[Discord](https://discord.com/invite/N3FrSbmwdy)**에 가입하여 최고의 해커들과 협업을 시작하세요!
<details>
<summary><strong>**htARTE (HackTricks AWS Red Team Expert)**로 AWS 해킹을 처음부터 전문가까지 배워보세요!</strong></summary>
HackTricks를 지원하는 다른 방법:
* **회사를 HackTricks에서 광고하거나 HackTricks를 PDF로 다운로드**하려면 [**SUBSCRIPTION PLANS**](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) 컬렉션입니다.
* 💬 [**Discord 그룹**](https://discord.gg/hRep4RUj7f) 또는 [**텔레그램 그룹**](https://t.me/peass)에 **참여**하거나 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)을 **팔로우**하세요.
* **HackTricks**와 **HackTricks Cloud** github 저장소에 PR을 제출하여 여러분의 해킹 기법을 공유하세요.
</details>