그누보드 [G5] Server Side Script 파일 업로드 금지하기
페이지 정보
본문
해당 취약점 존재 시 공격자가 조작된 Server Side Script 파일을 업로드 하고 실행하여, 쉘 권한 획득 후 홈페이지를 통해 시스템 명령어를 실행하고, 웹 브라우저를 통해 그 결과 값을 보며, 시스템 관리자 권한 획득 또는 인접 서버에 대한 침입을 시도할 수 있으므로 업로드 되는 파일의 확장자에 대한 적절성 여부를 검증하는 로직을 구현
아래 확장자의 파일은 업로드시 삭제
php , pht , phtm , htm , cgi , pl , exe , jsp , asp , inc , phar , java , js , txt , back , backup , org , lo , sql , new , tmp , temp
bbs / write_update.php
// 아래의 문자열이 들어간 파일은 -x 를 붙여서 웹경로를 알더라도 실행을 하지 못하도록 함
$filename = preg_replace("/\.(php|pht|phtm|htm|cgi|pl|exe|jsp|asp|inc|phar)/i", "$0-x", $filename);
를 아래와 같이 변경합니다.
// 아래의 문자열이 들어간 파일은 -x 를 붙여서 웹경로를 알더라도 실행을 하지 못하도록 함
//$filename = preg_replace("/\.(php|pht|phtm|htm|cgi|pl|exe|jsp|asp|inc|phar|js)/i", "$0-x", $filename);
$filename = preg_replace("/\.(php|pht|phtm|htm|cgi|pl|exe|jsp|asp|inc|phar|java|js|txt|back|backup|org|lo|sql|new|tmp|temp)/i", "$0-x", $filename);
// 업로드된 파일을 삭제
if(preg_match("/\.(php|pht|phtm|htm|cgi|pl|exe|jsp|asp|inc|phar|java|js|txt|back|backup|org|lo|sql|new|tmp|temp)/i", $filename))
참고자료
https://sir.kr/qa/367377
아래 확장자의 파일은 업로드시 삭제
php , pht , phtm , htm , cgi , pl , exe , jsp , asp , inc , phar , java , js , txt , back , backup , org , lo , sql , new , tmp , temp
bbs / write_update.php
// 아래의 문자열이 들어간 파일은 -x 를 붙여서 웹경로를 알더라도 실행을 하지 못하도록 함
$filename = preg_replace("/\.(php|pht|phtm|htm|cgi|pl|exe|jsp|asp|inc|phar)/i", "$0-x", $filename);
를 아래와 같이 변경합니다.
// 아래의 문자열이 들어간 파일은 -x 를 붙여서 웹경로를 알더라도 실행을 하지 못하도록 함
//$filename = preg_replace("/\.(php|pht|phtm|htm|cgi|pl|exe|jsp|asp|inc|phar|js)/i", "$0-x", $filename);
$filename = preg_replace("/\.(php|pht|phtm|htm|cgi|pl|exe|jsp|asp|inc|phar|java|js|txt|back|backup|org|lo|sql|new|tmp|temp)/i", "$0-x", $filename);
// 업로드된 파일을 삭제
if(preg_match("/\.(php|pht|phtm|htm|cgi|pl|exe|jsp|asp|inc|phar|java|js|txt|back|backup|org|lo|sql|new|tmp|temp)/i", $filename))
참고자료
https://sir.kr/qa/367377
댓글목록
등록된 댓글이 없습니다.