yehey's 공부 노트 \n ο(=•ω<=)ρ⌒☆

접근 통제 취약점 본문

웹/웹 해킹

접근 통제 취약점

yehey 2020. 11. 18. 17:50

접근 통제 취약점

:인증된 사용자가 수행할 수 있는 작업에 대한 제한이 제대로 적용되어 있지 않을 때 접근 통제 취약점이 존재한다.

 

다른 사용자의 계정에 접근하거나, 중요한 파일을 보거나, 다른 사용자의 데이터를 수정하거나, 접근 권한을 변경하는 등 권한 없는 기능과 데이터에 접근할 수 있다.

  • URL이나 파라미터를 조작하여 다른 사용자의 리소스에 접근하거나 허용되지 않은 기능을 실행할 수 있는 경우
  • 적절한 인증 및 인가 과정을 거치지 않고 관리자 페이지에 접근할 수 있는 경우
  • 디렉터리 트래버설 취약점과 같이 웹 디렉터리 경로를 벗어난 호스트 내부 경로의 리소스에 접근할 수 있는 경우

안전하지 않은 직접 객체 참조 (IDOR 공격)

:공격자가 요청 메시지의 URL이나 파라미터를 변경하여 정상적으로는 허용되지 않은 기능 실행하거나 다른 사용자의 리소스에 접근할 수 있는 공격

 

웹 애플리케이션 사용자가 항상 웹을 통해 제공되는 메뉴로만 웹 애플리케이션을 사용할 것이라고 생각하고, 서버 쪽에서 입력 값 검증을 소홀히 할 때 IDOR 취약점이 발생한다.

 

웹 페이지 관리자는 공격자가 항상 요청 메시지의 어떤 부분이든 마음대로 변경할 수 있다는 것을 염두해야 한다.

 

  • 웹 애플리케이션은 사용자로부터 전달되는 모든 입력 값을 신뢰해서는 안됨
  • 적절한 입력 값 검증을 거쳐야함
  • 클라이언트로부터 전달받을 필요가 없는 정보는 웹 애플리케이션 내부에서 직접 설정하여 불필요한 파라미터 조작 가능성을 차단해야 함

관리자 페이지 인증 우회

:사용자가 정상적인 인증 과정을 거치지 않고 관리자 페이지(관리자 메뉴)에 접근하여 각종 정보를 획득하거나 관리 기능을 실행하는 공격

 

관리자의 페이지의 URL을 직접 요청할 때 발생할 수 있다. 

관리자 페이지는 admin, admin.php, admin.jsp 등과 같은 URL로 되어 있어 쉽게 추측할 수 있는 경우가 많다.

(admin 외에도 manager, system 등으로 존재할 수도 있음)

관리자 URL을 Dirbuster과 같은 자동화 툴을 이용해서 찾아낼 수 있다.

 

  • 각 기능을 요청하는 사용자가 해당 기능을 실행할 수 있는 적절한 권한을 가지고 있는지 확인하는 루틴이 구현되어야 함
  • 특히 관리자 기능이나 RBAC 기능이 구현되어 있다면 더욱 더 철저한 검증이 필요
  • admin과 같이 누구나 쉽게 추측할 수 있는 디렉터리를 사용하는 것도 지양해야 함
  • 관리자 인터페이스를 별도의 포트 번호에서 제공하는 것도 좋음
  • 관리자 메뉴는 HTTPS 프로토콜을 이용하도록 구현하여 전송되는 데이터가 노출되지 않도록 해야 함

디렉터리 트래버설 취약점 공격

:공격자가 요청 메시지의 URL이나 파라미터를 변경하여 정상적으로 허용되지 않은 기능 실행하거나 다른 사용자의 리소스에 접근할 수 있는 공격

 

웹 애플리케이션의 파라미터 중에는 파일 경로를 그 값으로 지정하는 파라미터가 존재할 수 있다.

이때 공격자는 파일 경로를 조작해서 개발자가 의도하지 않은 경로에 있는 파일이 지정되도록 할 수 있다. 

(ex. 파일 인클루전 LFI)

 

-리눅스 운영체제에서 ../(윈도우에서는 ..\) 문자열은 파일 경로 지정할 때 상위 디렉터리 경로를 지정하게 된다.

-디렉터리 트래버설 취약점은 ../과 같은 문자열을 허용함으로써 발생한다.

-../와 같이 상위 디렉터리 반복해서 이동하면 루트 디렉터리로 이동할 수 있게 되고 루트 디렉터리에서 다른 디렉터리로 이동할 수 있게 되어 호스트 내부의 모든 파일에 접근하는 것이 가능해진당.

 

  • IDOR 공격과 마찬가지로 적절한 입력 값 검증을 수행해야 함
  • 가급적 화이트 리스트 검증을 하는 것이 좋다.
  • 경우에 따라서는 블랙 리스트 검증을 사용할 수 있다. 

' > 웹 해킹' 카테고리의 다른 글

XXE 외부 엔티티 공격  (0) 2020.11.26
민감한 데이터 노출  (0) 2020.11.17
파일 업로드 공격 및 실습  (0) 2020.11.12
파일 인클루전 (File inclusion)  (0) 2020.11.11
Stored XSS 공격 실습  (0) 2020.10.08
Comments