모의해킹 스터디/Week16

인증 / 인가 취약점

protruser 2024. 8. 6. 23:08

인증(Authentication)

그 사람 본인이 맞는지 확인하는 작업

 

<취약한 부분>

  •  인증 과정에서 일어나는 취약점
  •  인증을 무시하는 공격

인증 과정이 허술하게 이루어져 있으면 인증 취약점이 발생할 수 있다.

 

1. 쿠키를 통해 인증하는 케이스

- 클라이언트 측 정보를 이용하여 인증을 하는 케이스

 쿠키가 클라이언트 측에서 저장이 되기 때문에 사용자가 이를 수정할 수 있다는 문제점이 있다.

 

2. Process 점프

- 직접 접근(direct)

- 본인 인증

 

인증 과정을 거치지 않고 바로 인가를 받는 케이스

약관 동의 - 본인 인증 - 회원가입 순으로 진행되는 process의 경우 본인인증을 뛰어 넘고 바로 회원가입을 진행하는 취약점이 존재한다.

 

3. 파라미터 응답값 변조

쿠키, url 등 서버에 파라미터로 전송하는 값을 변경하여 인증을 우회하는 케이스

 

4. 인증 횟수 제한 X

무작위 대입 공격에 취약(Brute Force)

검증 횟수에 제한을 두지 않아 무작위 대입 공격이 가능함

 

https://protruser.tistory.com/25

 

[CTF] Pin Code Crack 풀이

0. 문제 탐색아래의 이미지와 같이 PIN Code를 알아내 인가를 받는 문제였다. 4자리 PIN Code를 입력하는 횟수에는 제한이 없었다. 웹 브라우저가 새로 열릴때, 정답인 PIN Code가 변경될 수 있다는 점을

protruser.tistory.com

 

 

인가(Authorization)

클라이언트에게 특정 권한을 부여하는 것

 

<취약한 부분>

  •  권한 없이 실행
  •  직접 접근

 

1. 주석으로 접근 제한

- Burp Suite를 통해 클라이언트 측에서 주석을 제거하여 접근할 수 있음

 

2. 클라이언트 측 인가 체크

- javascript에서 파일 확장자를 검증하는 경우

 

권한 여부를 검사할 때, 권한이 없다고 응답이 뜰 경우 - 서버에서 응답이 오는 것이 아니라면 클라이언트 측(웹 브라우저에서 실행하는 자바스크립트)에서 응답을 하는 것임. 따라서 코드 값을 수정하여 권한을 획득할 수 있는 취약점이 존재

 

3. Guessing 공격

눈에 보이지 않는 공격

공격자가 직접 파일명, 파라미터 명을 유추하여 공격을 진행하는 방법

 

예시)

board_delete.php - 게시판 삭제

board_update.php - 게시판 업데이트

직접 접근할 수 없는 경우 파일명을 유추하여 공격을 진행할 수 있다.

 

4. 파라미터 변조

쿠키, url 등 파라미터를 변조하여 인가를 받을 수 있다.