일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 네이버카페
- 많다..
- open redirect
- 척추관협착증
- esbuild
- MongoDB #NoSQL #CreateUser #DropUser #mongod #mognod.conf
- 중고나라
- Sequoia
- NUGU
- CryptoJS
- 변태는
- Frida
- 거래사기
- intelmac
- 다우오피스
- XSS
- 허리디스크
- speed-measure-webpack-plugin
- CJ대한통운 #쿠팡 #통관번호오류 #통관고유번호오류 #안주원팀장 #모건인베스트
- ssrf
- self-signed
- 채팅환전사기
- 로맨스스캠
- ue4dumper
- 취약점
- 모의해킹
- 안전결제
- shell_gpt
- 보이스피싱 #대검찰청 #명의도용 #비밀번호 #계좌번호 #공공기관 #가짜검찰청
- Malware Sample
- Today
- Total
annyoung
Open redirect 취약점 모의해킹 본문
오랜만에 모의해킹을 진행했는데 재미있는 취약점이 발견됐다.
Open redirect 취약점인데 좀 다른 느낌의 취약점이고, 계정 탈취까지 되는 취약점이였다.
처음엔 CRLF 인젝션이 될까? 하고 %0d%0a
넣고 이런저런 삽질을 해봤는데 아쉽게도 CRLF 인젝션은 안되더라..
# 로그인 프로세스
1. 로그인 페이지 접근 및 요청
- (공격 벡터1) callback URL과 이전 페이지로 돌아가기 위한 파라미터 returnUrl이 포함되어 있음
2. A 페이지로 로그인 시도 및 returnUrl 파라미터가 담긴 callback URL 전달
- (단서1) callback URL의 domain name, scheme를 여기서 검증 하고 있음
3. 로그인 성공이면 callback URL 뒤에 임시 토큰을 nonce라는 파라미터로 전달
4. B 페이지로 도메인, returnUrl, accessToken, refreshToken 파라미터를 location 헤더에 삽입하여 리다이렉트
- (공격 벡터2) accessToken, refreshToken을 파라미터에 노출하고 있음
- Set-Cookie를 통해 JWT 토큰 발급 완료
일반적인 Open redirect 취약점은 공격자가 원하는 도메인으로 넘길 수 있는데, 이미 해당 서비스는 callback URL에 입력된 값의 domain name과 scheme를 검증하고 있어 도메인 수정이 불가능했다. (혹은 Unicode reverse character를 사용해서 뭔가 트릭이 가능할까 했는데 불가능했다...)
여러가지 삽질을 해보니 4번 공격 벡터에서 https://example.com
으로 고정적으로 URL이 삽입되어 있고 returnUrl
파라미터를 뒤에 붙여서 concat하는 방식을 사용하고 있었다.
이 말은 도메인이 https://example.com
, returnUrl
은 pany/
인 경우 https://example.com
과 pany/
가 concat 되어 https://example.company
이라는 URL이 완성된다.
따라서, returnUrl이 처음 삽입되는 1번 벡터에서 pany/를 삽입하고 로그인하면 4번 벡터에서 accessToken과 refreshToken을 탈취할 수 있다는 소리. (실제로 *.company 도메인은 19,000원에 구입이 가능한 도메인이였다.)
2번 벡터에서는 scheme가 무조건 https여야 하고, 도메인은 auth.example.company를 가지고 있어야 했으나, 굳이 도메인 구입은 하기 싫어서 PoC 용도로 로컬에 SSL 서버를 구동(링크)했다.
위와 같이 노드로 SSL 서버를 구동하고 실제 테스트 해봤다.
위와 같이 accessToken과 refreshToken이 탈취되는 것을 볼 수 있었다.
노드 서버에서 실제 로그인 URL로 302 리다이렉트까지 시킨다면 로그인까지 됐으니 별다른 이상함을 못느낀 사용자 입장에서는 속을 수 밖에 없다.
'분석생활' 카테고리의 다른 글
대한통운 배송 주소 오류 스미싱 (4) | 2022.09.20 |
---|---|
영화 및 애니 스트리밍 피싱 (0) | 2022.06.20 |
사진도용 및 채팅환전사기 로맨스 스캠 분석 (0) | 2022.04.16 |
CJ대한통운, 쿠팡 등 통관번호오류 스미싱 (0) | 2022.03.17 |
대포통장 명의 도용 관련 대검찰청 피싱 (10) | 2022.03.16 |