일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 세션
- 로그인
- JS
- MySQL
- JWT
- css
- Cross Site Request Forgery
- CTF
- 모의해킹
- union sql injection
- blind sql injection
- file upload
- Error based sql injection
- Python
- 쿠키
- lord of sql injection
- sql injection point
- XSS
- csrf
- 웹개발
- 로그인페이지
- 과제
- cookie 탈취
- sql injection
- cors
- Reflected Xss
- lord of sqli
- Los
- 게시판 만들기
- php
- Today
- Total
Almon Dev
인증 / 인가 취약점 정리 본문
인증 / 인가 취약점
인증 / 인가 정의
인증 : 사용자 본인이 맞는지 확인하는 것
ex) 로그인(ID/PW), 본인인증(이메일, 지문, OTP 등)
인가 : 사용자에게 권한을 부여하는 것
ex) 관리자만 공지사항 작성 가능, 회원만 파일 다운로드 가능
인증 취약점 사례
클라이언트 측 정보로 인증
클라이언트 측 정보로 인증을 하는 경우 악의적인 사용자가 쉽게 변조할 수 있습니다.
ex) Cookie 변조, JS 인증
직접 접근
인증절차를 거쳐서 접근해야 하는 페이지에 직접 접근이 가능한 경우가 있습니다.
ex)
회원가입 시 본인인증 페이지(/auth.php)를 뛰어넘어 /signup.php에 직접 접근
응답갑 변조
서버에서 응답으로 인증 결과를 받은 뒤, 클라이언트에서 성공 여부를 판단할 때 응답값을 성공으로 변조할 수 있습니다.
ex) result : fail을 result: ok로 변조
무차별 대입
인증 횟수에 제한을 두지 않는 경우 무차별 대입 공격이 가능합니다.
ex) 0000 - 9999까지 대입해 보기
인가 취약점 사례
파라미터 변조
서버에서 권한 검증을 제대로 하지 않는 경우 파라미터를 변조하여 권한이 없는 정보에 접근할 수 있습니다.
ex)
/profile_page.php?user=test를 변조하여 user=admin으로 변경
/download.php?file_id=1 파일의 idx를 변조하여 권한이 없는 파일에 접근
직접 접근
권한이 없는 기능에 직접 접근하여 사용이 가능한 경우가 있습니다.
ex)
관리자 일 때만 관리자 페이지로 이동하는 버튼이 생기고 평소에는 display:none 상태
=> display:none이라 눈에는 안 보이지만 HTML 코드 안에는 버튼이 있기 때문에 url을 알아낼 수 있습니다.
주석으로 옛날 기능을 남겨둔 경우
ex) 파일에 직접 접근하는 a태그를 남겨둔 경우 => 파일 경로 노출, 파일에 집접 접근 가능
클라이언트 측에서 인가 체크
인가체크를 클라이언트 측에서 하는 경우 사용자가 쉽게 우회할 수 있습니다.
ex) JS로 확장자 검사, JS로 비밀번호 검사
찍기 추측 공격
이름을 추측해서 접근하는 공격입니다.
ex) /admin, /upload, download.php?id=1 idx 추측
과제
1. 웹개발 마무리
2. 인증/인가 취약점 정리
3. 주통기반 취약점 분석 상세 가이드 읽기 (웹 부분만)
4. 공격자 입장에서 시나리오 생각해 보기
'모의해킹 > 모의해킹' 카테고리의 다른 글
ctf 풀이 (Get Flag File 2) (0) | 2025.02.17 |
---|---|
ctf 풀이 (Get Flag File) (0) | 2025.02.17 |
ctf 풀이 (WebShell 3) (0) | 2025.02.17 |
파일 업로드 / 다운로드 취약점 (feat. LFI) (2) | 2025.02.15 |
CSRF 정리 (feat. SOP/CORS) (0) | 2025.01.16 |