12 KiB
Reset/Forgotten Password Bypass
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Join HackenProof Discord server to communicate with experienced hackers and bug bounty hunters!
Hacking Insights
Engage with content that delves into the thrill and challenges of hacking
Real-Time Hack News
Keep up-to-date with fast-paced hacking world through real-time news and insights
Latest Announcements
Stay informed with the newest bug bounties launching and crucial platform updates
Join us on Discord and start collaborating with top hackers today!
비밀번호 재설정 토큰 유출 via Referrer
- HTTP referer 헤더는 URL에 포함된 경우 비밀번호 재설정 토큰을 유출할 수 있습니다. 이는 사용자가 비밀번호 재설정을 요청한 후 제3자 웹사이트 링크를 클릭할 때 발생할 수 있습니다.
- 영향: 교차 사이트 요청 위조(CSRF) 공격을 통한 계정 탈취 가능성.
- 악용: referer 헤더에서 비밀번호 재설정 토큰이 유출되는지 확인하려면, 비밀번호 재설정을 요청하여 이메일 주소로 제공된 재설정 링크를 클릭합니다. 즉시 비밀번호를 변경하지 마십시오. 대신, Burp Suite를 사용하여 요청을 가로채면서 제3자 웹사이트(예: Facebook 또는 Twitter)로 이동합니다. 요청을 검사하여 referer 헤더에 비밀번호 재설정 토큰이 포함되어 있는지 확인하십시오. 이는 제3자에게 민감한 정보를 노출할 수 있습니다.
- 참고자료:
- HackerOne Report 342693
- HackerOne Report 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 챌린지를 사용합니다.
- 참조:
- HackerOne 보고서 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에 참여하여 최고의 해커들과 협업을 시작하세요!
{% hint style="success" %}
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks 지원하기
- 구독 계획을 확인하세요!
- 💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 팁을 공유하세요.