일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- php login page
- Server Side Request Forgery
- ssrf
- tryhackme
- Cookie
- OS Command Injection
- FTZ
- php To Do List
- privilege escalation
- Cryptography
- active recon
- Reconnaissance
- 파일 업로드 취약점
- over the wire
- overthewire
- Recon
- THM
- php file upload
- Authentication
- php 로그인 페이지 만들기
- War Game
- access control
- active reconnaissance
- sql injection
- BANDiT
- php 파일 업로드하기
- Leviathan
- file upload
- php
- SQLi
- Today
- Total
R's Hacking Daily Log
Authentication - 2FA.Lab(2) 본문
Lab - 2FA broken logic )
Lab으로 들어가 로그인 정보를 입력하면
4글자 인증 코드를 입력하는 페이지가 출력된다.
메일로 전송된 코드를 입력하면
My account 페이지에서 로그인된 사용자 이름을 볼 수 있다.
이번 Lab의 목표는 carlos의 계정으로 로그인을 완료하는 것인데, 문제는 carlos의 비밀번호를 모른다. (?)
일단 위에서 본 페이지들을 정리해 보면
1) username & password를 입력하는 POST /login request
2) 1의 결과로 얻은 verify & session cookie를 포함하는 Get /login2 request
3) 2의 결과로 verify 된 사용자의 메일로는 코드가 전송되고, 코드를 입력하는 입력창 페이지가 출력된다.
4) 입력된 코드는 POST /login2 request에 mfa-code 값으로 들어가게 된다.
Lab을 해결하기 위해서는 carlos 계정으로 로그인하기 위한 2차 인증 코드가 필요하다.
그래서 Get /login request에서 verify 값을 carlos로 수정해 carlos에게 인증 코드가 전송되도록 한 다음
POST /login2 request로 Brute force 공격을 실행할 것이다.
일단은 wiener 계정으로 로그인을 한 다음에
GET /login2 request의 verify 값을 carlos로 수정해서 forward 한다.
code를 보내는 request에서
verify cookie를 carlos로 수정하고 mfa-code를 payload 처리해서
0000~9999까지 4자리 코드가 생성되는 Brute force 공격을 실행한다.
payload를 쭉 넣다 보면 response length가 다른 경우가 하나 나오는 데
이때의 payload가 2차 인증을 위한 4-digit code이다.
mfa-code에 0260을 넣고 packet을 보내면 carlos 계정으로 로그인에 성공한 걸 볼 수 있다.
:) 첫 번째 lab은 2차 인증 여부를 확인하지 않아서 2차 인증이 전체적으로 우회되는 경우였다.
:) 이번 Lab은 2차 인증까지 검증되는 건 맞지만
1차 로그인 단계를 완료한 사용자와 2차 코드 인증 단계를 완료한 사용자가 같은 사람인지를 확인하지 않았다.
:) 이 부분을 이용해 로그인은 wiener 계정으로 하고 code는 carlos 계정에 생성되도록 request를 처리해서
코드 인증은 carlos 계정으로 한 것이다.
:) 결과적으로 wiener라는 계정을 활용해 탈취하고자 한 carlos 계정을 얻은 것!
(+) security code에 대한 brute force 공격도 적절하게 방지되지 못한 부분도 문제가 될 수 있다.
'Port Swigger > Authentication' 카테고리의 다른 글
Authentication - Other.Lab (2) (0) | 2023.05.27 |
---|---|
Authentication - Other.Lab (1) (0) | 2023.05.23 |
Authentication - 2FA.Lab(1) (0) | 2023.05.21 |
Authentication - Lab(2) (0) | 2023.05.11 |
Authentication - Lab(1) (0) | 2023.05.07 |