본문 바로가기

전체 글

(73)
[웹 서버 취약점] 기타 웹 서버 취약점 디렉터리 리스팅 취약점(Dirctory Listing)① 개념웹 애플리케이션을 사용하고 있는 서버의 미흡한 설정으로 인해 인덱싱(리스팅) 기능이 확성화가 되어있으면 공격자가 강제 브라우징을 통해 서버의 모든 디렉터리 및 파일 목록을 볼 수 있는 취약점디렉터리 인덱싱 기능 : 활성화 시, 웹서버 구조뿐만 아니라 백업 파일이나, 공개되어서는 안 되는 파일 등이 노출될 수 있음② 공격과정특정 페이지(.php)가 아닌 디렉터리 경로(/home/board/)를 요청한다.HTTP 응답 메시지를 확인하면 상태코드 200 및 파일의 리스트를 확인할 수 있다. 디렉터리 리스팅 취약점이 존재하면, 웹 브라우저상에 해당 디렉터리 내의 디렉터리/파일 정보가 그대로 노출되는 것을 확인할 수 있으며, 해당 디렉터리/파일을 클릭..
[웹 애플리케이션 취약점] 개발 보안 가이드라인 사용자에게 전달된 값(Hidden Form 필드, 파라미터)을 재사용할 경우 신뢰해서는 안된다.1차 인증 -> 2차 인증 -> 최종 처리 시, 파라미터를 재사용하지 말자. 하더라도 최종처리는? 서버에서 수행.최종 통제 메커니즘은 반드시 서버에서 수행되어야 한다.자바스크립트, VB 스크립트 등을 사용해 클라이언트 측에서 입력값을 검증하는 것은 쉽게 우회될 수 있으므로 서버에서 최종 점검하는 것이 반드시 필요하다.1차 검증은 클라이언트, 최종 검증은 서버 측에서 할 수 있도록 개발클라이언트에게 중요 정보(ID/PWD) 를 전달하지 않는다.클라이언트에서 실행되는 컴포넌트에 중요정보 하드코딩은 절대 안된다. 쿠키에 중요 정보를 전달할 경우 암호화해서 사용한다.중요 정보 전송 시 POST 메소드 / SSL(HTT..
[웹 애플리케이션 취약점] 기타 취약점 정보누출 취약점① 개념웹 애플리케이션의 민감한 정보가 개발자의 부주의로 인해 노츨되는 것주석구문에 포함된 정보가 의도치 않게 노출에러페이지/메시지를 통한 불필요한 정보 노출정보누출은 자체만으로 피해가 크진 않지만, 공격자가 공격하기 전 사전 정보 수집과정에서 실마리를 제공해주는 역할을 한다.② 대응책웹서버 설정 파일(httpd.conf)를 통해 사용자 정의 에러 페이지를 설정한다.ErrorDocument 지시자를 이용해 각 에러 코드별로 에러페이지를 생성하여 등록PHP 환경의 설정파일(php.ini)을 통해 에러메시지를 차단한다.php.ini 파일의 display_errors = Off 추가HTTP 응답 분할 취약점(Response Splitting)① 개념클라이언트의 HTTP 요청에 포함된 요청 파라미..
[웹 애플리케이션 취약점] 불충분한 세션 관리 취약점 불충분한 세션 관리 취약점① 개념웹 애플리케이션에서 사용자가 로그인할 때 매번 동일한 세션 ID를 발급하거나 세션 타임아웃을 너무 길게 설정하였을 경우 공격자가 사용자의 세션을 재사용하여 해당 사용자의 권한을 탈취할 수 있는 취약점 ② 공격과정 admin 계정으로 로그인 및 세션 쿠키 정보 획득웹 프록시를 통해 admin 로그인 후, 세션ID(PHPSESSID) 정보 획득(ex.Cookie: PHPSESSID=..특정 패턴이 있는 세션 ID..)다른 브라우저에서 탈취한 세션 ID 정보로 로그인HTTP 세션 하이재킹 : 탈취한 세션 ID를 이용하여 다른 브라우저에서 admin 계정 세션을 가로채기를 성공하는 것. ③ 취약점 판단 기준세션 ID를 분석 및 변조하여 로그인 시도 시 로그인에 성공할 경우 해당 ..
[웹 애플리케이션 취약점] 파일 삽입 취약점 파일 삽입 취약점File Inclusion① 개념공격자가 악성 서버 스크립트를 서버에 전달하여 해당 페이지를 통해 악성코드가 실행되도록 하는 취약점LFI(Local File Inclusion) : 삽입할 악성 서버 스크립트 파일의 위치가 로컬 서버에 위치RFI(Remote File Inclusion) : 삽입할 악성 서버 스크립트 파일의 위치가 원격지에 위치 ② 공격 절차include 함수를 이용한 페이지 확인if(..) {$target =$_REQUEST[fname];...include($target) //외부로부터 입력받은 target파라미터를 이용해 include 수행}include 함수 : 지정한 파일(페이지)을 인수로 받아 현재 페이지에 포함해 실행시켜주는 함수. 만약 파일/페이지 정보를 외부로..
[웹 애플리케이션 취약점] 경로 추적 취약점 경로 추적 취약점Path Traversal, 조작/경로 순회 취약점 ① 개념웹서버와 웹 애플리케이션 파일 또는 디렉터리 접근이 통제되지 않아 웹서버 또는 웹 애플리케이션의 중요한 파일과 데이터에 대한 접근 및 실행이 허용되는 취약점웹 애플리케이션 루트 디렉터리를 벗어나 시스템의 주요 파일과 데이터에 접근.일반적으로 경로를 조작하기 위해 상대경로 참조방식(../,..\ 등)을 사용한다.주요 경로 조작 문자 및 인코딩 방식경로 조작 문자./\1. (유닉스/리눅스) ./(현재 디렉터리), ../(상위 디렉터리)2. (윈도우) .\(현재 디렉터리), ..\(상위 디렉터리)URL 인코딩.(%2e)/(%2f)\(%5c)더블 URL 인코딩.(%252e)/(%252f)\(%255c)URL 인코딩된 문자열을 한번 더 인..
[웹 애플리케이션 취약점] 파일 다운로드 취약점 파일 다운로드 취약점① 개념파일 다운로드 기능이 존재하는 웹 애플리케이션에서 파일 다운로드 시 파일의 경로 및 파일명을 파라미터로 받아 처리하는 경우, 이를 적절히 필터링하지 않으면 공격자가 경로 및 파일명을 조작하여 허용되지 않은 파일을 다운받을 수 있는 취약점공격자는 취약점을 이용하여 중요한 파일(데이터베이스 연동 파일 등)을 다운받을 수 있다. ② 공격과정파일 다운로드 시, URL 파라미터를 살펴 실제 저장된 파일명과 원본 파일명을 유추한다.(ex. real_name=1234&show_name=show)파일 다운로드 취약점이 존재하는 페이지면 실제 파일명을 의미하는 파라미터를 조작해 허용되지 않는 파일을 다운로드 한다. ③ 취약점 판단기준게시판, 자료실 등 파일 다운로드가 가능한 페이지의 URL/파..
[웹 애플리케이션 취약점] 파일 업로드(File Upload) 취약점 ① 개념파일 업로드 기능이 존재하는 웹 애플리케이션에서 업로드 파일에 대해 적절한 필터링을 하지 않을 경우, 허가되지 않은 파일들이 웹서버로 업로드될 수 있는 취약점(취약점 1) 업로드 파일 타입,확장자를 체크하지 않고 업로드를 허용하는 경우 (웹쉘)webshell이 업로드(취약점 2) 업로드하는 파일 개수나 크기에 제한을 두지 않을 경우 다량의 큰 파일을 전송해 시스템 장애(피해자) 서버, 해당 웹을 이용하는 사용자 ② 공격 과정공격자는 게시판을 이용해 웹쉘(webshell.php) 파일 첨부POST 요청의 multipart/form-data 형식(MIME타입) 으로 서버 전달(APM 환경) 파일명은 webshell.php이고 파일 내용은 base-64로 인코딩되어 전달됨(APM 환경) 내용을 살펴보면..