일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ssrf
- overthewire
- file upload
- Cookie
- sql injection
- Recon
- access control
- php file upload
- tryhackme
- active recon
- THM
- SQLi
- Cryptography
- FTZ
- BANDiT
- php
- Server Side Request Forgery
- privilege escalation
- php 로그인 페이지 만들기
- over the wire
- 파일 업로드 취약점
- php 파일 업로드하기
- OS Command Injection
- Reconnaissance
- php To Do List
- Leviathan
- Authentication
- active reconnaissance
- php login page
- War Game
- Today
- Total
R's Hacking Daily Log
Authentication - 2FA.Lab(1) 본문
Vulnerabilities in multi-factor authentication
Multi factor authentication 내용을 간단히 상기시켜 보자면
1. Something you have
2. Something you know
3. Something you are
로 구분되는 두 개 이상의 factor를 이용하는 인증 절차를 multi factor authentication이라 했다.
여기서 기억해야 하는 것은 하나의 factor를 다른 방식으로 두 번 실행하는 건 multi factor가 아니라는 것이다.
** 로그인을 할 때 자신의 계정 정보를 인증한 다음 이메일로 전송된 인증 코드를 입력하는 경우가 있다.
대게 계정 정보를 검증한 후 인증 코드를 입력하는 절차를 진행하다 보니 익숙해서.
이를 multi factor authentication이라 생각할 수 있지만
사실 이메일로 전송된 코드는 메일 계정을 “아는 사람”이면 얻어낼 수 있는 정보이기 때문에
Some you know에 해당한다.
따라서 password를 입력하고 메일로 전송된 인증 코드를 입력하는 건
some you know factor를 두 번 검증하는 과정인 셈이다.
물론 password만 입력하는 인증 절차보다는 조금이나마 안전할 수 있지만 이러한 과정이
Multi factor에 해당하진 않는다는 거다.
Multi factor 인증 절차를 구현하기 위해 대게 사용되는 방법은
사용자가 “소유하는 스마트폰”으로 문자 형태의 인증 코드를 보내는 것이다.
로그인을 시도하려는 경우에 스마트폰 앱에서 인증 코드를 만들어주는 경우도 있지만
대게는 위에 언급한 바와 같이 문자 메세지를 사용한다.
이럴 경우에는 사용자 명의 폰으로 코드가 전송되거나 폰에서 코드를 만들어내기 때문에
Some you have factor가 된다.
** 위와 같이 사용자 명의의 폰으로 인증 코드를 얻을 수 있는 경우라고 해도 100% 안전하다 할 수는 없다.
Sim swapping과 같은 물리적인 공격을 받았을 경우에는 피해자 명의의 폰으로 문자가 전송된다 한들
문자가 공격자에게 날아가는 것이기 때문에 2차 인증이 무용지물이 된다.
Multi factor와 관련된 첫 번째 Lab은 2차 인증이 완전히 우회되는 경우를 다루고 있다.
Lab - 2FA simple bypass )
Lab에 들어가 주어진 계정으로 로그인을 하면
4글자의 코드를 입력하는 창이 나온다. 상단의 Email client를 누르면
2차 인증을 위한 코드가 날아와있는 걸 볼 수 있다.
유효한 코드를 입력하는 것까지 완료하면 My account 페이지에 로그인된 계정 정보가 나오는 걸 볼 수 있다.
이번 Lab에서는 carlos의 계정 정보는 알지만 인증 코드는 모르는 상태일 때 2차 인증을 우회하는 것이 목표이다.
carlos 계정 정보를 입력하면 1차 인증은 성공하지만 2차 인증을 위한 코드에는 접근이 불가능하다.
하지만..! "Back to lab home"을 누르고 My account를 누르면 위와 같이 Lab이 완료된 걸 볼 수 있다.
:) 이번 Lab에서는 2차 인증이라고 구현은 해놓고 security code로 인증해야 하는 2번째 단계를 완료했는지
확인하지 않는 불상사로 인해 2차 인증이 완전히 우회되는 상황을 말하고 있는 것이다.
:) 2차 인증을 구현할 시, 2차 인증 단계가 완료되었는 지의 여부를 확실히 확인하지 않는 경우
공격자는 이를 이용해 로그인 정보만 알면 2차 인증을 완전히 우회할 수 있게 된다.
'Port Swigger > Authentication' 카테고리의 다른 글
Authentication - Other.Lab (1) (0) | 2023.05.23 |
---|---|
Authentication - 2FA.Lab(2) (0) | 2023.05.21 |
Authentication - Lab(2) (0) | 2023.05.11 |
Authentication - Lab(1) (0) | 2023.05.07 |
Authenticaiton (2) (0) | 2023.05.07 |