인증 취약점(Authentication vulnerabilities)이란?
인증 취약점은 사용자가 본인임을 증명하는 과정인 인증 절차가 불충분하여 공격자가 시스템에 접근하거나 권한을 획득하는 것을 막지 못하는 보안상 결함. 이는 악의적인 사용자가 보안 메커니즘을 우회해 중요 정보에 접근하거나 변조할 수 있게 만들기 때문에 인증 취약점을 식별,악용하는 방법, 보호 조치 우회 방법을 배우는 것이 중요함.
※인증 이란?
사용자의 신원을 검증하는 과정. 웹사이트는 모두에게 노출되어 있기 때문에 강력한 인증 매커니즘이 필요함.
- 지식 기반 요인 - 비밀번호, 보안 질문 등
- 소유 기반 요인 - 모바일폰, OTP, 보안 카드 등
- 고유 기반 요인 - 지문, 얼굴 인식,음성 등
Authentication vs Authorization
인증 = 웹사이트에 접속하려는 사람이 같은 사람인지의 여부를 확인
인가 = 사용자가 어떤 행동을 할 수 있는 권한이 있는지 검증하는 과정
인증 취약점의 발생과 영향
1. 발생
- 인증 매커니즘이 약할 때 → 무차별 공격 적절히 방어 X
- 로직 결함 또는 구현 오류 있을 때 → 공격자가 인증 과정 우회 가능(로직 결함이 있다고 해서 무조건 보안 문제는 X, 다만 인증 로직에 결함이 있다면 보안 문제 발생O)
↓
2. 영향
공격자가 인증 절차 우회,무차별 대입 공격을 통해 계정의 모든 데이터와 기능에 접근 가능할 수 있음
- 시스템 관리자 권한 탈취 → 애플리케이션 내부 인프라 접근 가능
- 일반 사용자 계정 탈취 → 상업적 민감 정보에 접근 가능
실습
Lab: Username enumeration via different responses | Web Security Academy
Web Application Security, Testing, & Scanning - PortSwigger
PortSwigger offers tools for web application security, testing, & scanning. Choose from a range of security tools, & identify the very latest vulnerabilities.
portswigger.net

문제에 접속하면 블로그 글 목록과 로그인할 수 있는 창이 뜬다. 인증 취약점에 대한 공격이기 때문에 로그인창에 들어가 아이디는 admin,비밀번호는 1234를 입력한다.

로그인 버튼을 눌러 버프 스위트에서 패킷을 확인한 뒤 해당 부분을 intruder로 보낸다.
why?
Intruder는 웹 애플리케이션에 대해 무차별 대입 공격(Brute-force attack), 퍼징(Fuzzing), 그리고 취약점 발견을 위한 반복적인 요청 테스트를 자동화하는 데 사용 → 문제에 올라와있는 아이디,비밀번호 리스트를 대입하여 공격한다.

intruder에 들어가 admin을 드래그 한 뒤 add를 누른다. 문제 접속창으로 돌아가 username리스트를 복사한 뒤 paste하여 공격을 시작한다.

공격창에서 길이가 다른 아이디를 찾았는데 app1이 나왔다.

발견한 아이디로 admin을 app1으로 수정해주고 비밀번호를 알아내기 위해 아이디 때와 동일하게 드래그 한 뒤 add를 누른다.

마찬가지로 문제에 있는 비밀번호 리스트를 복붙해준다.

status가 다른 비밀번호를 찾았는데 tigger가 나왔다.
상태가 혼자 다른 비밀번호가 정답이 되는 이유는 해당 비밀번호가 서버의 인증 단계를 통과하여 다른 페이지로 이동했기 때문.

로그인 창으로 돌아가 아이디 app1과 비밀번호 tigger를 입력하여 로그인하였더니 문제가 풀렸다.
과제
Lab: Password reset broken logic | Web Security Academy
Web Application Security, Testing, & Scanning - PortSwigger
PortSwigger offers tools for web application security, testing, & scanning. Choose from a range of security tools, & identify the very latest vulnerabilities.
portswigger.net

먼저 로그인 창에 들어가서 문제에 나와있는 기존 아이디와 비밀번호를 입력해주었다.

wiener의 이메일 주소가 나온다.

비밀번호를 재설정하기 위해 로그아웃 한 뒤 다시 로그인 창에 들어가 비밀번호를 잃어버렸나요?문구를 클릭하고 wiener 아이디를 입력하였더니 비밀번호를 재설정할 수 있는 링크가 떴다.

해당 링크로 접속하여 비밀번호를 1234로 변경하고 버프스위트로 패킷을 확인하였다.

로그인해야 하는 사용자 이름이 carlos이므로 wiener부분을 carlos로 변경한 뒤 forward한다.

다시 로그인 창에 들어가 아이디는 carlos로 비밀번호는 아까 재설정한 1234로 입력하였다.

문제 해결!
'웹해킹' 카테고리의 다른 글
| CSRF (0) | 2025.11.19 |
|---|---|
| XSS (0) | 2025.11.05 |
| Path traversal (0) | 2025.10.28 |
| Command injection (0) | 2025.09.30 |
| SQL Injection (0) | 2025.09.24 |