사이트 내 전체검색
PHP
php에서 파일 업로드 체크할 때 주의할 점
로빈아빠
https://cmd.kr/php/355 URL이 복사되었습니다.

본문

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) 또한 파일 확장자 체크할 때 . 으로 구분된 모든 확장자를 체크해줘야 좋다.

댓글목록

등록된 댓글이 없습니다.

PHP
871 (7/18P)

Search

Copyright © Cmd 명령어 18.222.167.178