시스템관리자의 쉼터 커피닉스 커피향이 나는 *NIX
커피닉스
시스템/네트웍/보안을 다루는 곳
 FAQFAQ   검색검색   멤버리스트멤버리스트   사용자 그룹사용자 그룹   사용자 등록하기사용자 등록하기 
 개인 정보개인 정보   비공개 메시지를 확인하려면 로그인하십시오비공개 메시지를 확인하려면 로그인하십시오   로그인로그인 

가입없이 누구나 글을 쓸 수 있습니다. 공지사항에 대한 댓글까지도..




BBS >> 설치, 운영 Q&A | 네트웍, 보안 Q&A | 일반 Q&A || 정보마당 | AWS || 자유게시판 | 구인구직 || 공지사항 | 의견제시
php에서 파일 업로드 체크할 때 주의할 점

 
글 쓰기   답변 달기    커피닉스, 시스템 엔지니어의 쉼터 게시판 인덱스 -> *NIX / IT 정보
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
truefeel
카페 관리자


가입: 2003년 7월 24일
올린 글: 1277
위치: 대한민국

올리기올려짐: 2009.8.21 금, 10:37 pm    주제: php에서 파일 업로드 체크할 때 주의할 점 인용과 함께 답변

Papoo CMS의 파일업로드 취약점이 발표되었다. http://www.securityfocus.com/archive/1/505639 이번 취약점 발표를 통해서, 파일업로드를 할 때 보안문제가 발생하지 않도록 하려면 어떻게 해야하는지 생각해본다.

Papoo CMS는 사용자가 GIF, JPG, PNG등의 이미지 파일 업로드할 수 있다. 그러나 이 CMS는 파일을 업로드할 때 파일 확장자 체크는 하지 않고, 오직 이미지의 헤더만 체크를 한다. 다음과 같은 명령은 정상적인 GIF 헤더로 판단하게 되나, phpinfo()를 실행할 수 있다.

인용:

The following command will generate a file with a valid GIF header which runs the phpinfo() function when requested:

$ printf "GIF89a\x01\x00\x01\x00<?php phpinfo();?>" > poc.php


위와 같은 경우 GIF 헤더만 체크하면 악용될 수 있다. 따라서 파일 업로드를 체크할 때는

1) 반드시 확장자를 체크하고,
2) 이미지 파일의 경우 헤더까지 체크해줘야.
3) 또한 파일 확장자 체크할 때 . 으로 구분된 모든 확장자를 체크해줘야 좋다.

temp.php.aaaa 의 경우 파일 업로드될 경우, aaaa에 대한 MIME type이 없기 때문에 php파일로 인식될 수 있다.
이에 대한 해결책은 'apache mod_mime 보안 취약 해결 방법' (글 우주곰, 2009)을 읽어보길.

※ 8.21(금) 커피닉스 이야기중에서 뽑아서 별도 주제로 정리했다.
※ 참여자 : sCag, 좋은진호, 범냉이 등
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문
이전 글 표시:   
글 쓰기   답변 달기    커피닉스, 시스템 엔지니어의 쉼터 게시판 인덱스 -> *NIX / IT 정보 시간대: GMT + 9 시간(한국)
페이지 1 중 1

 
건너뛰기:  
새로운 주제를 올릴 수 있습니다
답글을 올릴 수 있습니다
주제를 수정할 수 없습니다
올린 글을 삭제할 수 없습니다
투표를 할 수 없습니다


Powered by phpBB © 2001, 2005 phpBB Group