파일업로드 취약점
공격자가 웹 사이트에 있는 게시판이나 자료실의 파일 업로드 기능을 이용하여 공격자가 만든 특정 공격 프로그램을 업로드하여 웹 서버의 권한 획득이 가능한 취약점
=>업로드 했을 때 업로드 된 파일이 웹 상에서 자동으 실행이 되면서 특정 행위가 발생될 때
컴퓨터가 읽을 수 있는 언어 형태인 asp,jsp,php 유형의 쉘 파일이 업로드 되었을 때 실행파일처럼 실행이 되면 취약점이 존재함. 정보, 관리자 권한을 탈취, 특정파일을 업로드 시켜 악성코드 감염을 시키는 등
EX)
게시판에 jsp 파일의 확장자를 jpg로 변경 후 업로드 => jsp 파일 실행됨
게시판에 html 파일 업로드 => 업로드 경로 알아낼 수 있으며, URL의 파라미터 값을 수정 후 요청 => 업로드한 웹 파일 실행됨
대응방안
①파일명 검증
-파일 업로드 확장자 필터링 방식은 리스트 내에 있는 것만 허용하는 White-List 방식을 이용 (확장자 검증)
-파일 업로드 시 서버에 파일명을 그대로 저장하지 않고 서버측에서 파일명을 생성하게 한다. (파일명 검증)
①업로드 경로 똑바로 설정
-업로드된 파일을 웹 디렉토리가 아닌 경로에 저장하게 하여 서버를 보호한다.
( 서버사이드스크립트가 실행되지 않는 경로에 업로드 설정 등)
-업로드가 되더라도 업로드 파일의 실행권한을 차단시켜 실행시킬 수 없게 한다.
- 특수문자 사용할 수 없도록 하여 우회 기법 차단 (입력값 검증)
파일다운로드 취약점
외부 입력값에 대해 경로 조작에 사용될 수 있는 문자를 필터링하지 않는 취약점을 악용하여 예상 밖의 접근 제한 영역에 대한 경로 문자열 구성이 가능해져 시스템 정보누출, 서비스 장애 등을 유발 시킬 수 있는 취약점
=> 파일 다운로드 취약점은 우 클릭하여 속성정보에 어느 경로에 있는지를 복사하여 붙여 놓았을 때 다운로드 되는 경우 그 경로를 수정하여 보이지 않는 경로(지정된 경로를 벗어난 경로) 의 파일을 다운로드 했을 때 를 말한다.
임의의 위치에 있는 중요파일( /etc/passwd , /etc/shadow, 백업파일,설정파일,로그파일 )을 열람,다운로드가 가능한 취약점
EX)
첨부파일 다운로드 받을 때의 URL 주소를 파악하여 경로조작(../ 혹은 경로 값) 후
웹 어플리케이션 파일(default.aspx)나 서버 계정파일(passwd) 다운로드가 가능했음.
대응방안:
- 특수문자 사용할 수 없도록 하여 경로이동 관련 필터 (입력값 검증)
-다운로드 파일명 또는 경로에 경로 이동 문자인 "..", "/", "\" 값이 입력되지 않도록 조치
- 파일명과 경로명을 db에서 관리한다.
* 허용되지 않는 문자열에 대해서 경고 창을 띄운다.
/*
사용자 입력을 받는 것보다 키값을 받아 db에 질의 후 파일시스템에 가져오는 게 보안상으로는 보다 안전
업로드된 일부 경로나 파일명이 노출되지 않는다.
*/
소스코드 내 중요정보 노출 취약점
소스코드 주석문에 민감한 정보(개인 정보, 시스템 정보 등)이 포함되어 있는 경우, 외부 공격자에 의해 패스워드 등 보안 관련정보가 노출될 수 있는 취약점
EX)
웹 페이지 소스코드를 통하여 내부 IP, 관리자 페이지의 존재를 알 수 있음.
대응방안
-소스코드 내 주석에 ID, 패스워드, 시스템 관련 정보 등 남지 않도록 확인한다.
공개용 웹 게시판 취약점
공개용 게시판을 사용할 경우 인터넷에 공개된 각종 취약점 정보로 인해 홈페이지 변조 및 해킹 경유지로 사용될 수 있는 취약점
=> 금전적인 문제가 있거나 게시판 구축하는데 시간이 걸리는 경우 공개용 웹 게시판을 이용하는데 무료라는 장점 외에 외적인 부분은 모두 본인이 관리
EX)
웹 페이지 소스를 통해 공개용 웹 게시판을 사용하고 있음을 확인할 수 있다.
대응방안
-웹 서버에 공개용 게시판 사용을 지양하고
부득이하게 사용해야 할 경우 최신 버전의 제품으로 설치 정기적으로 보안 업데이트
'''
리눅스의 ls,mkdir,rm 같은 명령어는 파일로 존재하다가 명령하면 실행되는 프로그램
데몬(daemon) : 항상 실행되는 특성을 갖고 있는 프로그램
ex)아파치를 데몬에 올린다=> 아파치를 항상 실행되게 한다.
'''