XpressEngine 모든 버전의 보안 취약점이 발견되었습니다.
모든 상황에서 발생하는 것은 아니고 특정 웹서버 설정에 의해서 발생되는 문제입니다.
보안 취약점을 꼼꼼히 테스트 후 제보해주신 http://Simples.Kr (심플스)의 운영자이신 박병익(esniper)님께 감사의 말씀을 드립니다.
먼저 모든 버전에 해당되고 또한 간단히 패치할 수 있는 문제이기에 패치방법부터 알려드립니다.
해당 파일 : ./modules/file/file.controller.php
method : FileController::insertFile()
원 파일 내용
// 이미지인지 기타 파일인지 체크하여 upload path 지정
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 {패치 적용 후
// 이미지인지 기타 파일인지 체크하여 upload path 지정
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/ 디렉토리에 덮어쓰시면 되고 그 이전의 버전 사용자분들은 위의 패치 적용 방법을 이용하시면 됩니다.
1.2.1의 안정화 버전인 1.2.2 버전을 최대한 빨리 배포하여 기존 사용자분들께서 불안하지 않은 업그레이드가 가능하도록 노력하겠습니다.
감사합니다.
혹시 (php|phtm|htm|cgi|pl|exe|jsp|asp|inc) 가 확장자 일때 자동으로 삭제하는 건가요 '-'???
exe 파일을 업로드 하는경우가 잇다보니 궁금해서 질문을 ....
ver1.1.5 를 사용하여 사이트 2개를 만들었는데요.
위 내용으로 하고. 레이아웃 편집에서. [내용 직접 추가] 를 했을 때.
나타나는 팝업창이 한사이트는 흰색바탕으로 작게 나오고. 또한사이트는 아래와 같은 오류메세지가 뜹니다.
참고로 두 사이트 서버 사양은 다릅니다.
두사이트 모두 mireene.com 에서 웹호스팅했고.
하나는 개인용이라 작은 웹호스팅이고. 하나는 비지니스용 10G 웹호스팅입니다.
Warning: Cannot modify header information - headers already sent by (output started at /web/home/click2009/html/xe/modules/file/file.controller.php:1) in /web/home/click2009/html/xe/classes/display/DisplayHandler.class.php on line 312
Warning: Cannot modify header information - headers already sent by (output started at /web/home/click2009/html/xe/modules/file/file.controller.php:1) in /web/home/click2009/html/xe/classes/display/DisplayHandler.class.php on line 334
Warning: Cannot modify header information - headers already sent by (output started at /web/home/click2009/html/xe/modules/file/file.controller.php:1) in /web/home/click2009/html/xe/classes/display/DisplayHandler.class.php on line 335
파일 수정을 통해서 패치를 해봤는데,
방명록 주소를 찾아가지 못하고 오류가 나더군요.
방명록 주소는 이것인데
http://gguro.com/zbxe/?mid=Guest
지금은 패치하기 전으로 돌려놓은 상태입니다.
" 상림 , ㅠㅠ "
setting기본url변경하셨내요 http://loveu1004ss.woweb.net/ 뒷부분에 xe를 지우시면 안되던데요;;
setting으로 가셔서 변경하실때 첫페이지로 갈껍니다. 그럴 경우 예) http://loveu1004ss.woweb.net/poto_3 주소창에 이렇게 나와있을꺼에요 xe없이 오른쪽처럼xe를 삽입하면 setting으로들어가실수 있어요 거기서 xe를 꼭 삽입하세요; http://loveu1004ss.woweb.net/xe/poto_3







수고많으셨습니다 . 1.2.2 버전 개인적으로 기다려집니다.