사이트 내 전체검색
웹 애플리케이션 해킹 (Web Application Hacking)
로빈아빠
https://cmd.kr/server/806 URL이 복사되었습니다.

본문

1. 검증되지 않은 파라미터의 허용(Unvalidated Parameters)

클라이언트로부터 웹 애플리케이션이 요청을 받았을 때 그 요청이 적절한 값인지 여부를 검증하지 않음으로 인해 백엔드에 존재하는 허가되지 않은 자원에 접근할 수 있는 취약성이다. url, 쿼리 문, HTTP 헤더, 폼 필드, 쿠키, 그리고 숨겨진 필드 등의 웹 요청(HTTP request) 들을 강제로 브라우징 한다거나 명령어 삽입, SQL 문 삽입, 쿠키 위/변조등을 통해서 보안 메커니즘을 우회할 수 있게 된다.

[예방 방법]

웹 요청에 대한 잘못된 예외 규칙을 다음과 같이 정하여 소스 코드에서 철저하게 검증을 하는 것이다.

- 데이터 형식(문자, 정수, 실수 등)
- 허용되는 문자셋
- 최소, 최대 허용 길이
- NULL 값의 허용 여부
- 파라미터의 허용 여부
- 허용되는 숫자 범위
- 정규 표현식 등


2. 부적절한 접근 통제(Broken Access Control)

인증되지 않은 사용자가 시스템에 접근하여 중요한 파일 읽거나 권한 없는 기능들을 수행할 수 있는 취약성이다. 예를 들자면 허가되지 않은 사용자가 웹 요청을 통해서 유닉스 시스템의 /etc/passwd 파일을 읽거나 윈도우 시스템의 웹 루트 디렉터리를 읽을 수 있는 등의 경로 유출(Path Traversal)을 허용하는 것이다. 이러한 취약성은 웹 컨텐츠와 기능에 적절한 접근 통제를 하지 못하는 것이 원인이다.

[예방 방법]

다음과 같은 접근 통제를 점검한다.

- 안전하지 않은 ID 점검
- 절대 경로를 통한 인증 회피 가능 점검
- Path Traversal 가능 점검
- 웹 컨텐츠의 퍼미션 점검
- 클라이언트 측의 케싱 점검


3. 부적절한 계정과 세션 관리(Broken Account and Session Management)

계정에 대한 증명(Account Credential)

과 세션 토큰이 적절히 보호되지 못함으로 인해 패스워드나 키, 세션 쿠키, 그리고 다른 토큰 등을 악용하여 인증 메커니즘을 무력화 시키거나 다른 사용자의 아이디를 추측할 수 있는 취약성이다. 예를 들자면 사용자의 패스워드 변경, 패스워드 분실, 사용자 정보 수정 등을 포함하는 증명서와 동적 세션 관리가 적절히 개발되지 않아서 다른 사용자에 의해 추측되거나 가로채기를 당하는 것이다.

[예방방법]

다음과 같은 항목들에 대해 보안 정책을 강화한다.

- 패스워드 변경 통제
- 패스워드 복잡성
- 패스워드 저장
- 전송 중인 증명서 보호
- 세션 아이디 보호
- 계정 목록
- 신뢰 관계
- 백엔드 인증

댓글목록

등록된 댓글이 없습니다.

1,139 (17/23P)

Search

Copyright © Cmd 명령어 3.133.145.76