본문 바로가기
블로그 이미지

방문해 주셔서 감사합니다! 항상 행복하세요!

  
   - 문의사항은 메일 또는 댓글로 언제든 연락주세요.
   - "해줘","답 내놔" 같은 질문은 답변드리지 않습니다.
   - 메일주소 : lts06069@naver.com


웹 취약점(Web vulnerability)

16. 불충분한 인가(IN)

야근없는 행복한 삶을 위해 ~
by 마샤와 곰 2021. 12. 7.

불충분한 인가 취약점은 페이지 접근을 위한 인증기능이 구현되지 않을 경우, 해커나 인가되지 않는 사용자가 페이지에 접근 및 중요 정보의 변조를 할 수 있는 취약점 입니다.

불충분한 인증과 비슷한 개념의 취약점 입니다.

어떤 페이지에 권한이 없는 사용자가 접근할 수 있거나 변조(수정,삭제)를 할 수 있다면 불충분한 인가 취약점이 존재한다고 할 수 있습니다.

 

 

#방법1

가장 먼저 페이지에 이동을 할 때 단순한 키 값을 노출시켜 이동 하는지 확인하여야 합니다.

가령 게시판에서 게시판 목록의 세부 글 보기 기능이 단순한 숫자값을 가지고 조회하는 경우가 있겠습니다.

이러한 경우에 다른 게시글의 키 값인 숫자값을 가지고 수정 및 삭제 할 때 해당 값을 바꾸어 버리는 경우가 생깁니다.

그러므로 가급적 세부 글 보기 기능은 공격자가 쉽게 판독 할 수 없는 값으로 사용되어야 합니다.

이처럼 숫자 형식의 단순한 표기법은 좋지 않습니다.

 

#방법2

다음으로 권한이 필요한 정보에 대해서 등록, 수정 및 삭제 등 변경행위가 이루어지는 경우에는 반드시 요청에 대한 권한여부를 서버에서 검증하여야 합니다.

간단하게 서버에 저장된 SESSION값을 통해서 올바른 인원의 요청인지를 검사하는 것 입니다.

또는 로그인이 JWT방식 이라면 해당 값이 유효한지를 검사하면 되겠습니다.

 

#방법3

페이지별로 권한에 따라 접근이 가능한지 불가능한지를 점검해야 합니다.

브라우저 코드를 가리는 것도 중요하지만 인터셉터, 필터 기능에서 권한여부를 확인하도록 해야 합니다.

세션을 사용 한 다면 페이지 자체를 주지 않는것도 중요 합니다.

 

이상으로 불충분한 인가(IN)에 대해서 간단하게 살펴보았습니다.

궁금한점 또는 틀린 부분은 언제든 연락주세요! 👻

반응형
* 위 에니메이션은 Html의 캔버스(canvas)기반으로 동작하는 기능 입니다. Html 캔버스 튜토리얼 도 한번 살펴보세요~ :)
* 직접 만든 Html 캔버스 애니메이션 도 한번 살펴보세요~ :)

댓글