상세 컨텐츠

본문 제목

인증 / 인가 취약점

웹 해킹의 개념

by ser-ser 2025. 2. 18. 17:59

본문

1. 인증 (Authentication)

  • 개념
    사용자가 자신임을 증명하는 과정입니다
    ex> 아이디/ 비밀번호, OTP, 생체 인식 등등

  • 취약점
    클라이언트 측 쿠키나 토큰을 신뢰하여 인증하는 경우입니다
    인증 로직 우회 ex> 프로세스 건너뛰기


2. 인가(Authorization)

  • 개념
    인증된 사용자가 특정 자원이나 기능에 접근할 수 있도록 권한을 부여하는 과정입니다
    ex> 게시글 수정/ 삭제 권한, 관리자 페이지 접근 권한 등

  • 취약점
    불충분한 인가 체크로 인해 비인가 사용자가 민감한 기능에 접근하는 경우가 되겠습니다
    클라이언트 측 인가 검증만 적용한 경우(주석, css, js 등등)




이번 글에서는 인가 취약점을 중심으로 다루도록 하겠습니다

특히 인가 취약점을 이용한 공격 기법에는 크게 두 가지 전략이 있습니다


인가 취약점 공격 전략 

  • 전략 1 > 파라미터 변조
    - URL 또는 요청 파라미터의 값을 공격자가 임의로 변경하여 원래 접근 권한이 없는 페이지에 접근하는 방식입니다
    - ex> 게시글 수정 시 본인 계정이 아닌 다른 사용자의 게시글 번호(id)를 조작하는 경우가 되겠습니다

  • 전략 2 > 직접 접근
    - URL 패턴이나 파일 경로를 추측하여 직접 접근하는 방식입니다
    - ex> 관리자 페이지가 "admin"과 같이 쉽게 예측 가능한 경로에 존재할 때가 되겠습니다

 

파라미터 변조와 분석 기법

  • 파라미터 변조 시
    • 시나리오 >
      - 사용자가 자신의 게시글 수정 페이지에 접근할 때, URL에 포함된 게시글 번호(id)가 파라미터로 전달됩니다 만약 공격자가 이 값을 다른 사용자의 게시글 번호로 변경한다면, 권한이 없는 사용자가 타인의 게시글을 수정하거나 삭제할 수 있게 됩니다
  • 정적 분석
    • 개념 >
      - 소스 코드를 실행하지 않고 코드 내의 논리와 취약점을 분석하는 기법입니다
    • 목적 >
      - 코드 리뷰 및 자동화 도구를 통해 인가 검증 로직이 제대로 구현되어 있는지 확인합니다
    • ex >
      - if 문이나 조건문을 통해 세션에 저장된 사용자 ID와 요청  파라미터의 ID를 비교하는 부분을 점검합니다
  • 동적 분석
    • 개념 >
      - 실제 애플리케이션을 실행하면서 요청과 응답을 분석하여 인가 취약점이 발생하는지를 테스트하는 기법입니다
    • 목적 >
      - 공격자가 파라미터를 변조했을 때 시스템의 응답 및 권한 우회 가능성을 확인합니다
    • ex >
      - 버프 스위트과 같은 도구를 사용하여 요청 파라미터 값을 변경한 후, 서버가 올바르게 인가를 검증하는지 테스트합니다

 

Guessing 공격

  • 개념 >
    - 공격자가 URL 패턴, 파일 이름, 파라미터 값 등을 예측하여 접근하는 공격입니다

  • 특징 >
    - 인가된 사용자의 기능 및 페이지 접근 권한을 추측할 수 있는 규칙성이 존재할 때 효과적입니다
    - 게시판의 URL 패턴이 일정하다면 "notice_write.php"와 같이 존재할 법한 페이지를 예측해 접근할 수 있습니다

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

주요정보통신기반시설  (0) 2025.02.20
File Include 취약점  (1) 2025.02.07
파일 업로드 공격(File Upload Attack)  (0) 2025.01.26
CSRF  (0) 2025.01.14
HTML Entity  (1) 2024.12.31

관련글 더보기