본문 바로가기

개념정리

16주차 인증 / 인가

16주차 인증 / 인가


 


 

인증 취약점 (AUTHENTICATION)

- 본인이 맞는지 확인하는 작업을 건너뜀

- 인증 프로세스를 건너뛰는 취약점


인증취약점 대표케이스

- COOKIE 변조 -> GET ADMIN

- JUMP PROCESS -> PIN CODE BYPASS

- MOD RESPONSE -> ADMIN IS MINE

- BRUTE FORCE -> PIN CODE CRACK


COOKIE를 통해 인증하는 케이스

- 클라이언트 측 정보로 인증

EX) 로그인 유저값을 ADMIN으로 바꿈


PROCESS JUMP

- 경로 이동시 인증 필요없음

EX) 인증페이지 다음 경로를 추측해서  다음 경로로 바로 접속한다


MOD RESPONCE

- PARAMETER 응답값 변조가능

EX) 로그인 결과값을 받아서 맞는 응답값찾아내 틀린응답값을 맞는 응답값으로 변조해서 OK 처리를 한다.


BRUTE FORCE
- 인증횟수 제한X

- PYTHON 자동으로 값 대입

EX) BRUTE FORCE 무작위 대입 공격 


인가 취약점 (AUTHORIZATION)

- 특정 권한을 부여하여 작업 

- 권한이 없는 기능을 이용

- 주석에 남겨진 페이지 이용

- JS(클라이언트) 우회

- 기능페이지에 직접 접근

- 파라미터 변조위주 로직의 헛점을 찾기 때문에

- 주석에 남겨진 페이지이용 


인가 취약점 대표케이스

- 주석에 남겨진 페이지 이용 -> authorization 1

- JS(클라이언트) 우회 -> authorization 2, authorization 3

- GUESSING 공격 직접접근(기능페이지에) -> authorization 4, authorization 5

- 파라미터 변조 -> authorization 6


주석에 남겨진 페이지 이용 

- 버튼이 주석으로 되어있거나 none으로 디스플레이가 숨겨져있을 때

EX) 주석 삭제 또는 앵커 테그 값 이용해 버튼값을 제출하거나 이동값을 확인


JS 우회

- 인가 체크를 클라이언트 측에서 하고 있는 경우

- 권한이 없다는 말이 서버로 가는 요청이 없으면 클라이언트 측에서 하고있는 것 

- 실행시켜가며 난독화를 풀거나 추측하거나

EX) 버튼 작동시 어떤 함수가 작동되는지  이를 자바스크립트에서 확인한다 이를 분석해서 이용

      콘솔에서 직접 실행시켜도 된다. 자바를 조작하거나 


GUESSING 공격

- 페이지가 눈에 안보일때 추측해서 이용

EX) 글 작성 페이지가 notice_post일라나 notice_create일라나 notice_write페이지 이려나 추측

EX) 글을 볼수 없을 때 게시글을 출력하는페이지가 또 어디있을까 , ID 값을 바꿔보기


PARAMETER 변조 

-  파라미터를 보낼때 이를 변조해서 요청을 보낼 수 있음을 이용

EX) 삭제하는 기능을 사용할때 패킷을 잡아 다른사람의 글을 삭제 하는 것