12 KiB
비밀번호 재설정/잊어버린 비밀번호 우회
htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 제로부터 전문가까지 배우세요 htARTE (HackTricks AWS Red Team Expert)!
HackTricks를 지원하는 다른 방법:
- 회사가 HackTricks에 광고되길 원하거나 HackTricks를 PDF로 다운로드하길 원한다면 구독 요금제를 확인하세요!
- 공식 PEASS & HackTricks 스왜그를 구매하세요
- The PEASS Family를 발견하세요, 당사의 독점 NFTs 컬렉션
- **💬 디스코드 그룹**에 가입하거나 텔레그램 그룹에 가입하거나 트위터 🐦 @carlospolopm를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 저장소에 PR을 제출하여 해킹 트릭을 공유하세요.
경험 많은 해커 및 버그 바운티 헌터와 소통하려면 HackenProof Discord 서버에 가입하세요!
해킹 통찰력
해킹의 스릴과 도전에 대해 탐구하는 콘텐츠와 상호 작용
실시간 해킹 뉴스
빠르게 변화하는 해킹 세계의 실시간 뉴스와 통찰력을 유지하세요
최신 공지
출시되는 최신 버그 바운티 및 중요한 플랫폼 업데이트에 대해 정보를 얻으세요
우리와 함께 디스코드에 가입하여 오늘 최고의 해커들과 협업을 시작하세요!
Referrer를 통한 비밀번호 재설정 토큰 누출
- HTTP referer 헤더는 URL에 포함된 경우 비밀번호 재설정 토큰을 누출할 수 있습니다. 이는 사용자가 비밀번호 재설정을 요청한 후 제3자 웹사이트 링크를 클릭할 때 발생할 수 있습니다.
- 영향: Cross-Site Request Forgery (CSRF) 공격을 통한 잠재적인 계정 탈취.
- 악용: 비밀번호 재설정 토큰이 referer 헤더에 누출되는지 확인하려면 이메일 주소로 비밀번호 재설정을 요청하고 제공된 재설정 링크를 클릭하세요. 즉시 비밀번호를 변경하지 마세요. 대신 Burp Suite를 사용하여 요청을 가로채는 동안 제3자 웹사이트 (예: Facebook 또는 Twitter)로 이동하세요. 요청을 검사하여 referer 헤더에 비밀번호 재설정 토큰이 포함되어 있는지 확인하면 이는 민감한 정보를 제3자에게 노출시킬 수 있습니다.
- 참고:
- HackerOne 보고서 342693
- HackerOne 보고서 272379
- 비밀번호 재설정 토큰 누출 기사
비밀번호 재설정 독려
- 공격자는 비밀번호 재설정 요청 중 Host 헤더를 조작하여 재설정 링크를 악성 사이트로 지정할 수 있습니다.
- 영향: 공격자에게 재설정 토큰을 누출하여 잠재적인 계정 탈취로 이어집니다.
- 완화 조치:
- 허용된 도메인의 허용 목록에 대해 Host 헤더를 유효성 검사합니다.
- 안전하고 서버 측 방법을 사용하여 절대 URL을 생성합니다.
- 패치:
$_SERVER['HTTP_HOST']
대신$_SERVER['SERVER_NAME']
을 사용하여 비밀번호 재설정 URL을 구성합니다. - 참고:
- 비밀번호 재설정 독려에 대한 Acunetix 기사
이메일 매개변수 조작을 통한 비밀번호 재설정
공격자는 추가적인 이메일 매개변수를 추가하여 비밀번호 재설정 요청을 조작할 수 있습니다.
- 공격자 이메일을 두 번째 매개변수로 추가하세요.
POST /resetPassword
[...]
email=victim@email.com&email=attacker@email.com
- 공격자 이메일을 두 번째 매개변수로 %20을 사용하여 추가합니다.
POST /resetPassword
[...]
email=victim@email.com%20email=attacker@email.com
- 두 번째 매개변수로 공격자 이메일을 추가하십시오. 사용 방법: |
POST /resetPassword
[...]
email=victim@email.com|email=attacker@email.com
- 공격자 이메일을 두 번째 매개변수로 추가하고 cc를 사용합니다.
POST /resetPassword
[...]
email="victim@mail.tld%0a%0dcc:attacker@mail.tld"
- 공격자 이메일을 두 번째 매개변수로 bcc에 추가합니다.
POST /resetPassword
[...]
email="victim@mail.tld%0a%0dbcc:attacker@mail.tld"
- 두 번째 매개변수로 공격자 이메일을 추가합니다. 사용 방법: ,
POST /resetPassword
[...]
email="victim@mail.tld",email="attacker@mail.tld"
- JSON 배열에서 공격자 이메일을 두 번째 매개변수로 추가합니다.
POST /resetPassword
[...]
{"email":["victim@mail.tld","atracker@mail.tld"]}
- 방어 조치 단계:
- 이메일 매개변수를 올바르게 구문 분석하고 서버 측에서 유효성을 검사합니다.
- 삽입 공격을 방지하기 위해 준비된 문을 사용하거나 매개변수화된 쿼리를 사용합니다.
- 참고 자료:
- https://medium.com/@0xankush/readme-com-account-takeover-bugbounty-fulldisclosure-a36ddbe915be
- https://ninadmathpati.com/2019/08/17/how-i-was-able-to-earn-1000-with-just-10-minutes-of-bug-bounty/
- https://twitter.com/HusseiN98D/status/1254888748216655872
API 매개변수를 통한 사용자의 이메일 및 비밀번호 변경
- 공격자는 API 요청에서 이메일 및 비밀번호 매개변수를 수정하여 계정 자격 증명을 변경할 수 있습니다.
POST /api/changepass
[...]
("form": {"email":"victim@email.tld","password":"12345678"})
- 방지 조치:
- 엄격한 매개변수 유효성 검사 및 인증 확인 보장.
- 의심스러운 활동을 감지하고 대응하기 위해 강력한 로깅 및 모니터링 구현.
- 참고:
- API 매개변수 조작을 통한 완전한 계정 탈취
비율 제한 없음: 이메일 폭격
- 비밀번호 재설정 요청에 대한 비율 제한 부족은 이메일 폭격으로 이어질 수 있어 사용자가 재설정 이메일로 압도될 수 있음.
- 방지 조치:
- IP 주소 또는 사용자 계정을 기반으로 한 비율 제한 구현.
- 자동 남용을 방지하기 위해 CAPTCHA 도전을 사용.
- 참고:
- 해커원 보고서 280534
비밀번호 재설정 토큰 생성 방법 파악
- 토큰 생성 뒤의 패턴 또는 방법을 이해하면 토큰을 예측하거나 브루트 포스할 수 있음. 몇 가지 옵션:
- 타임스탬프 기반
- 사용자 ID 기반
- 사용자 이메일 기반
- 이름 및 성 기반
- 생년월일 기반
- 암호화 기반
- 방지 조치:
- 토큰 생성에 강력한, 암호화 방법 사용.
- 예측 가능성을 방지하기 위해 충분한 무작위성과 길이 보장.
- 도구: 토큰의 무작위성을 분석하기 위해 Burp Sequencer 사용.
추측 가능한 UUID
-
UUID(버전 1)가 추측 가능하거나 예측 가능하면 공격자가 유효한 재설정 토큰을 생성하기 위해 브루트 포스할 수 있음. 확인: {% content-ref url="uuid-insecurities.md" %} uuid-insecurities.md {% endcontent-ref %}
-
방지 조치:
-
무작위성을 위해 GUID 버전 4 사용 또는 다른 버전에 대한 추가적인 보안 조치 구현.
-
도구: guidtool을 사용하여 GUID 생성 및 분석.
응답 조작: 나쁜 응답을 좋은 것으로 대체
- HTTP 응답을 조작하여 오류 메시지나 제한을 우회.
- 방지 조치:
- 응답 무결성을 보장하기 위해 서버 측 검사 구현.
- 중간자 공격을 방지하기 위해 HTTPS와 같은 안전한 통신 채널 사용.
- 참고:
- 실시간 버그 바운티 이벤트에서의 심각한 버그
만료된 토큰 사용
- 만료된 토큰이 여전히 비밀번호 재설정에 사용될 수 있는지 테스트.
- 방지 조치:
- 엄격한 토큰 만료 정책을 구현하고 서버 측에서 토큰 만료를 확인.
브루트 포스 비밀번호 재설정 토큰
- Burpsuite 및 IP-Rotator와 같은 도구를 사용하여 재설정 토큰을 브루트 포스 시도하여 IP 기반 비율 제한을 우회.
- 방지 조치:
- 강력한 비율 제한 및 계정 잠금 메커니즘 구현.
- 브루트 포스 공격을 나타내는 의심스러운 활동을 모니터링.
토큰 사용 시도
- 공격자의 재설정 토큰이 피해자의 이메일과 함께 사용될 수 있는지 테스트.
- 방지 조치:
- 토큰이 사용자 세션 또는 다른 사용자별 속성에 바인딩되도록 보장.
로그아웃/비밀번호 재설정에서 세션 무효화
- 사용자가 로그아웃하거나 비밀번호를 재설정할 때 세션이 무효화되도록 보장.
- 방지 조치:
- 모든 세션이 로그아웃하거나 비밀번호 재설정 시 무효화되도록 적절한 세션 관리 구현.
로그아웃/비밀번호 재설정에서 세션 무효화
- 재설정 토큰은 만료 시간이 지난 후에는 무효화되어야 함.
- 방지 조치:
- 재설정 토큰에 합리적인 만료 시간 설정 및 서버 측에서 엄격히 시행.
참고 자료
HackenProof Discord 서버에 가입하여 경험 많은 해커 및 버그 바운티 헌터들과 소통하세요!
해킹 통찰
해킹의 즐거움과 도전에 대해 탐구하는 콘텐츠와 상호 작용
실시간 해킹 뉴스
실시간 뉴스와 통찰을 통해 빠르게 변화하는 해킹 세계를 따라가세요
최신 공지
최신 버그 바운티 출시 및 중요한 플랫폼 업데이트에 대해 알아보세요
**Discord**에서 최고의 해커들과 협업을 시작하세요!
htARTE (HackTricks AWS Red Team Expert)로부터 AWS 해킹을 처음부터 전문가까지 배우세요
HackTricks를 지원하는 다른 방법:
- 회사를 HackTricks에서 광고하거나 PDF로 다운로드하려면 구독 요금제를 확인하세요!
- 공식 PEASS & HackTricks 스왜그를 구매하세요
- The PEASS Family를 발견하세요, 당사의 독점 NFTs 컬렉션
- 💬 Discord 그룹 또는 텔레그램 그룹에 가입하거나 트위터 🐦 @carlospolopm를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 저장소에 PR을 제출하여 해킹 트릭을 공유하세요.