일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- tryhackme
- privilege escalation
- SQLi
- BANDiT
- FTZ
- THM
- over the wire
- php 파일 업로드하기
- overthewire
- Cryptography
- Reconnaissance
- php 로그인 페이지 만들기
- php To Do List
- Server Side Request Forgery
- Authentication
- War Game
- active recon
- Leviathan
- php
- php login page
- Recon
- access control
- 파일 업로드 취약점
- ssrf
- php file upload
- OS Command Injection
- Cookie
- file upload
- sql injection
- active reconnaissance
- Today
- Total
목록Authentication (11)
R's Hacking Daily Log
Changing user passwords Authentication에 대하여 살펴볼 마지막 부가 기능은 "비밀번호 변경"에 관한 내용이다. password reset과는 조금 다른 게, password reset은 사용자가 자신의 비밀번호를 잊어버린 상황을 전제로 하기 때문에 현재 설정된 password로 인증 절차를 검증할 수 없다. 이와 달리 change password는 현재 비밀번호를 알고 있지만 그 값을 변경하고자 할 때 실행되는 기능이기 때문에 사용자는 비밀번호 변경을 위해서 대부분 자신의 현재 비밀번호로 인증 절차를 거치게 된다. 사실 새로운 비밀번호를 설정한다는 것은 사용자가 자신의 계정명 & 비밀번호를 가지고 권한이 있는지 없는지 검증하는 절차[= 로그인]를 거치는 것과 다를 바 없기 ..
두 번째로 살펴볼 추가 기능은 "password reset"에 대한 내용이다. 자신의 비밀번호를 잊어버린 사용자는 흔히 비밀번호 재설정 기능을 사용하는 데 비밀번호를 모르는 상황에서 password 기반의 인증이 불가하기 때문에 다른 대안에 의존할 수밖에 없다. 그렇다보니 password reset이라는 기능은 본질적으로 위험하다고 할 수 있다. 비밀번호 재설정 기능을 수행하기 위한 방안 중 하나는 Email을 이용하는 것으로 랜덤 하게 만든 비밀번호를 사용자에게 메일로 보내거나 비밀번호 재설정이 가능한 페이지 링크를 보내는 식으로 이루어진다. 또 다른 방안으로는 고유 URL을 사용하는 것인데 URL의 경우, http://vulnerable-website.com/reset-password?user=vic..
other authentication mechanisms 취약점과 관련해 살펴본 첫 번째 lab에서는 :) stay-logged-in cookie가 사용자의 계정명과 비밀번호를 기반으로 생성 :) 유효한 계정 carlos가 있다는 걸 알고 있는 상황 :) 후보 비밀번호 list까지 갖고 있는 공격자! 공격자가 자신의 계정을 갖고 있는 상황이었기 때문에 쉽게 cookie를 얻을 수 있었고 cookie를 분석해서 stay-logged-in cookie가 1) 비밀번호를 MD5 hash 2) hash 처리한 비밀번호 앞에 " 계정명 : " 3) 2번 과정으로 만들어진 문자열 전체를 Base64 encode 와 같은 과정으로 만들어지는 걸 파악했다. 공격자는 이미 존재하는 carlos라는 계정의 cookie 값..
대부분의 웹 사이트에서는 기본적인 로그인 기능에 더불어 사용자가 비밀번호를 잊어버렸을 때 사용할 수 있는 비밀번호 찾기 or 비밀전호 재설정과 같은 추가 기능을 제공한다. 웹 사이트는 일반적으로 로그인 페이지와 관련되어 잘 알려진 취약성을 방지하기 위해 노력을 기울이다 보니 추가적인 기능들과 관련된 취약점에 대해서는 간과하는 경우가 있다. 결과적으로 부가 기능의 허점을 이용하여 공격이 이루어질 수도 있고, 공격자가 자신의 계정을 만들 수 있는 경우에는 더더욱 많은 정보를 제공하게 되는 셈이다. ** "자신의 계정을 얻는다"는 건 허가된 사용자에게만 제공되는 페이지, 콘텐츠들이 노출되는 것이기 때문에 추가적인 공격 측면이 제공될 수 있다. 무조건 위험하다라기 보다 위험 가능성을 제공하게 된다는 것이다. K..
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) 입..
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가 아니라는 것이다. ** 로그인을 할 때 자신의 계정 정보를 인증한 다음 이메일로 전송된 인증 코드를 입력하는 경우가 있다. 대게 계정 정보를 검증한 후 인증 코드를 입력하는 절차를 진행하다 보니 익숙해..
Authentication - Lab (1)에 이어서 password 기반의 인증 체제에 대한 내용을 살펴보도록 하자. Flawed brute force protection 공격자는 성공적으로 계정을 해킹하기까지 무수히 많은 brute force 공격에 실패하게 된다. 따라서 brute force 보호는 프로세스를 자동화하기에 최대한 까다롭게 만들거나 로그인을 시도할 수 있는 속도를 늦추는 식으로 수행될 수 있다. ** "프로세스를 까다롭게 만들다"는 말이 애매하게 들릴 수 있는 데 간단한 예시를 들자면! 이전 Lab 중에서 burp suite - Intruder를 이용해 brute force 공격을 했지만 response length가 다양하면서도 고유한 하나의 결과가 나오지 않아 결국 Grep - E..
Password 기반 인증체제에서 Brute force와 관련된 Lab을 풀어보도록 하자! Lab - Username enumeration via different responses ) lab에 들어가 Myaccount를 누르면 위와 같은 login 페이지가 나오는 걸 볼 수 있다. 일단 아무거나 입력해서 packet을 burp suite로 가로챘다. packet 내용을 확인해 보면 login 페이지에서 입력한 username & password 값이 들어가 있는 걸 볼 수 있다. 계정을 찾기 위해 첫 번째로 해볼 건 유효한 계정의 username을 찾는 것! lab 설명에 나와있는 username list를 파일로 만들어 load 해주면 payload를 세팅하기 쉽다. Intruder에서 usernam..