일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- tryhackme
- php 파일 업로드하기
- php file upload
- THM
- 파일 업로드 취약점
- overthewire
- BANDiT
- Leviathan
- sql injection
- active reconnaissance
- Reconnaissance
- php login page
- War Game
- over the wire
- privilege escalation
- file upload
- Cookie
- php
- active recon
- Authentication
- ssrf
- SQLi
- Recon
- Cryptography
- php To Do List
- php 로그인 페이지 만들기
- FTZ
- access control
- OS Command Injection
- Server Side Request Forgery
- Today
- Total
R's Hacking Daily Log
Authentication 본문
Authentication vulnerabilities
적어도 개념적인 측면에서 인증 취약점은 가장 이해하기 쉬운 이슈 중에 하나이지만, 동시에 보안과 인증의 명확한 관계성을 봤을 때, 가장 중요한 이슈에 속한다.
잠재적으로 공격자가 중요한 데이터 및 기능에 직접 접근하는 것을 허락할 뿐만 아니라
공격할만한 추가적인 측면을 노출시키게 된다.
이러한 이유로 일반적인 보호조치를 우회하는 걸 포함하는 인증 취약점을 이용하고
확인하는 방법을 배우는 것은 필수적인 기술이라 할 수 있다!!
what is authentication?
Authentication이란
user or client의 신원을 입증하는 과정으로, 그들이 주장하는 사람이 실제로 그들이라 보장할 수 있게 하는 것을 포함한다.
website는 설계상 인터넷으로 연결하고자 하는 누군가에게 노출되고,
견고한 인증 메커니즘은 효과적인 web 보안의 무한한 측면과 직결된다.
▶ 크게 3개의 타입으로 구분되는 factors
- Something you KNOW, "knowledge factor" = passwd or answer to a security question.
- Something you HAVE, "possession factors" = mobile phone or security token
- Something you BE, "inherence factors" = biometrics or patterns of behavior
인증 메커니즘은 이러한 factor를 한 개 또는 그 이상으로 확인(입증)하는 기술력에 의존하게 된다.
what is the difference between authentication and authorization??
Authentication은 user가 자신이라 주장하는 사람이 맞는지 확인하는 과정이고,
Authorization은 무언가를 할 수 있게 허락된 user인지 아닌지를 확인하는 것을 포함한다.
다시 말해,
그가 자신이라 주장하는 신원이 맞는지를 확인하는 것이 Authentication
그가 무엇을 할 수 있는지, 어느 수준까지 접근권한을 가지는지를 확인하는 것이 Authorization
▶ website or web application에서, 인증은 그 계정을 만든 사람과 username Carlos123으로 그 사이트에 접근하려고
시도한 사람이 같은 인물인지 아닌 지를 확인한다.
한 번 Carlos123이 인증을 받으면, 다른 user의 개인정보에 접근한다거나, 다른 user의 계정을 삭제하는 행위를 수행하는 등의 권한을 받았는지 아닌지를 확인한다. 이 과정을 Authorization이라고 하는 것!
따라서, Authorization은 Authentication + 어떠한 행위에 대한 권한 수준을 확인하는 것이다!
▶ 일반 사용자와 관리자를 두고 봤을 때,
이 둘은 같은 application을 사용하더라도 일반 사용자에게 다른 계정에 대한 통제권이나 관리할 수 있는 권한을 주지는
않는 것처럼 역할이 다르기 때문에 주어지는 접근권한 수준이 다르다. 그렇기에 각 사용자에 대한 권한 수준을 확인하는 것
how do authentication vulnerabilities arise??
대략적으로 말하자면, 인증 메커니즘에서 대부분의 취약점은 다음의 둘 중 하나에 의해 발생한다.
brute-force 공격에 대해 적절히 보호하는 것에 실패하기 때문에 인증 메커니즘이 약해진다.
실행에 있어 논리적 결함 및 잘못된 코드는 인증 메커니즘이 우회될 수 있도록 허락한다.
이 때문에 때떄로 "broken authentication"이라 불리기도 한다.
web 개발의 많은 측면에서, 논리 결함은 단순히 web site가 예기치 못하게 행동하도록 만들며 이는 보안 문제가 될 수도 있고,
아닐 수도 있다. 하지만, 인증은 보안에 굉장히 중요한 요소로서 결함이 있는 인증 논리가 그 web site의 보안 이슈를 노출시킬
가능성은 분명히 높아지게 될 것!
what is the impact of vulnerable authentication??
인증 취약점의 영향은 꽤나 심각할 수 있다. 공격자가 인증을 우회하거나 brute-forced 방식으로 다른 계정에 침입하면,
공격자들은 취득한 계정이 가지는 모든 데이터와 기능에 접근할 수 있게 된다.
▶ 시스템 관리자 같은 높은 권한의 계정을 취득할 수 있다면,
그들은 application의 완전한 제어권을 가져올 수 있고 잠재적으로 내부 인프라에 접근할 수 있는 권한을 얻게 된다.
▶ 권한이 낮은 계정을 손상시키더라고 공격자는 가져서는 안 되는 데이터에 대한 접근 권한을 부여할 수 있고,
상업적으로 민감한 사업 정보와 같이 손상된 계정이 가지고 있는 모든 데이터와 기능에 접근할 수도 있다.
▶ 만약 계정이 어떤 민감한 정보에 직접적으로 접근할 수 없더라도,
공격할만한 측면을 제공하는 추가적인 페이지에 대한 접근을 가능하게 할지도 모르는 일이다.
▶ 공개적으로 접근할 수 있는 페이지에서 certain high-severity attacks은 불가능하지만,
내부 페이지에서는 가능할 수도 있다!!
'Port Swigger > Authentication' 카테고리의 다른 글
Authentication - 2FA.Lab(1) (0) | 2023.05.21 |
---|---|
Authentication - Lab(2) (0) | 2023.05.11 |
Authentication - Lab(1) (0) | 2023.05.07 |
Authenticaiton (2) (0) | 2023.05.07 |
Authentication (1) (0) | 2023.05.03 |