위 이미지는 아래 보안 패치 관련링크의 글에 첨부된 이미지 인데 꽤 예뻐 보여(?) 퍼왔습니다. Array
웹서버 차원에서 업로드 가능 확장자를 제한(php, cgi등) 하지 않았다면 XpressEngine(이하 XE)의 파일 업로드후
웹상에서 실행 가능한 문제점이 발견되었습니다. 상대적으로 취약할 수 있는 호스팅이용자 혹은 별도의 조치
(apache / 웹서버 수준의 보안 - files 디렉토리에 대한 diasble php engine, deny php script)를 취하지않은
웹서버에서 문제가 발생할 여지가 있습니다. 아래글과 관련링크를 참고해 문제점을 수정하시기 바랍니다.
이하 원문 입니다.
출처 : http://www.xpressengine.com/17936388
-------------------------------------------------------------
XpressEngine 모든 버전의 보안 취약점이 발견되었습니다.
모든 상황에서 발생하는 것은 아니고 특정 웹서버 설정에 의해서 발생되는 문제입니다.
보안 취약점을 꼼꼼히 테스트 후 제보해주신 박병익(Chris Park)님께 감사의 말씀을 드립니다.
먼저 모든 버전에 해당되고 또한 간단히 패치할 수 있는 문제이기에 패치방법부터 알려드립니다.
해당 파일 : ./modules/file/file.controller.php
method : FileController::insertFile()
원 파일 내용
if(preg_match("/.(jpg|jpeg|gif|png|wmv|wma|mpg|mpeg|avi|swf|flv|mp1|mp2|mp3|asaf|wav|asx|mid|midi|asf|mov|moov|qt|rm|ram|ra|rmm|m4v)$/i", $file_info['name'])) {
$path = sprintf("./files/attach/images/%s/%s", $module_srl,getNumberingPath($upload_target_srl,3));
$filename = $path.$file_info['name'];
$direct_download = 'Y';
} else {
패치 적용 후
if(preg_match("/.(jpg|jpeg|gif|png|wmv|wma|mpg|mpeg|avi|swf|flv|mp1|mp2|mp3|asaf|wav|asx|mid|midi|asf|mov|moov|qt|rm|ram|ra|rmm|m4v)$/i", $file_info['name'])) {
// direct 파일에 해킹을 의심할 수 있는 확장자가 포함되어 있으면 바로 삭제함
$file_info['name'] = preg_replace('/.(php|phtm|htm|cgi|pl|exe|jsp|asp|inc)/i', '$0-x',$file_info['name']);
$path = sprintf("./files/attach/images/%s/%s", $module_srl,getNumberingPath($upload_target_srl,3));
$filename = $path.$file_info['name'];
$direct_download = 'Y';
} else {
즉 ./modules/file/file.controller.php 파일의 310번째 라인(버전에 따라 다를 수 있습니다)의 이미지등의 직접 다운로드 가능 파일을 저장하는 부분에 아래와 같이 확장자 체크를 하는 부분이 포함되어야 합니다.
// direct 파일에 해킹을 의심할 수 있는 확장자가 포함되어 있으면 바로 삭제함
$file_info['name'] = preg_replace('/.(php|phtm|htm|cgi|pl|exe|jsp|asp|inc)/i', '$0-x',$file_info['name']);
XpressEngine ver 1.2.1 버전을 사용하시는 분은 file.controller.php 을 다운로드 받으셔서 ./modules/file/ 디렉토리에 덮어쓰시면 되고 그 이전의 버전 사용자분들은 위의 패치 적용 방법을 이용하시면 됩니다.
관련링크 :
http://www.xpressengine.com/17936388
'Security' 카테고리의 다른 글
zeroboard 보안 취약점 패치 (2009. 09. 22) (0) | 2009.10.01 |
---|---|
Break-In attempt on www.centos.org (0) | 2009.07.06 |
Coppermine Photo Gallery Privilege Escalation PoC (0) | 2009.03.06 |
ZeroBoard4 pl8 (07.12.17) Multiple Remote/Local Vulnerability (0) | 2009.02.12 |
ZeroBoardXE 1.1.5 (09.01.22) XSS Vulnerability (1) | 2009.02.11 |