XE 긴급 보안 패치 (모든 버전에 해당) 알립니다
2009.04.16 11:12 EDIT
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 버전을 최대한 빨리 배포하여 기존 사용자분들께서 불안하지 않은 업그레이드가 가능하도록 노력하겠습니다.
감사합니다.
댓글 38
-
-
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으로 안들어 갑니다.
무조건 첫화면으로만 가요.
페이지 수정도 안되고요..
-
관리자 모드에서 setting으로 안들어 갑니다.
무조건 첫화면으로만 가요.
페이지 수정도 안되고요..
마도 마찬가지입니다... 일주일째... 찾고 있음...
-
" 상림 , ㅠㅠ "
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
-
그나 저나... 후아 이거 패치와 기타공격 이거 머리싸움인건 알겠는데..
프리서버사용자는 아무래도 패치 해야 겠죠 ?::::::OMG
그래도 왠지 즐거운... 기분.
예전에 핵커스 란 사이트 정부에서 폐쇄할때 정말 못난짓이라고 생각했는데.... 역시나 맞았음.
요즘 이제서야. 핵커 대회나 여는모습보면... 참 정부공무원 왜이리 무능한지..... 그러고 보면 이건 이것과 전혀 관련없는 이야기지만
해커스 사이트는.. 한 6년이 앞서 있었던듯. ㅋㅋㅋㅋㅋ
Leave Comments
댓글 쓰기 권한이 없습니다. 회원 가입후에 사용 가능합니다
혹시 (php|phtm|htm|cgi|pl|exe|jsp|asp|inc) 가 확장자 일때 자동으로 삭제하는 건가요 '-'???
exe 파일을 업로드 하는경우가 잇다보니 궁금해서 질문을 ....