XE 보안 취약점 긴급 패치 배포합니다.

조회 수 73875 추천 수 1 2008.09.02 12:19:32

INet Corp Security 연구소장이신 유동훈님(Xpl017Elz, x82)님께서 XE CSRF 보안 취약점 제보를 해주셨습니다.

CSRF 라는 공격 방법으로 XE 관리자 세션을 악용할 수 있게 하는 취약점입니다.

이 방법은 1.0.5 이전에 다른 분께 제보를 받아서 관리자 세션을 악용할 수 있는 것을 모두 막아 놓았는데 제가 미처 알지 못하는 방법으로 관리자 세션을 악용할 수 있는 취약점이 발견되었습니다.

func.inc.php.zip 파일을 다운받으시고 압축을 푸시면 func.inc.php 라는 파일이 나타납니다.

이 파일을 사용하시는 XE의 config 디렉토리에 있는 func.inc.php 파일위로 덮어쓰시면 패치는 완료됩니다.

다만 혹시 소스코드를 수정하셨거나 버전이 낮아서 문제가 있을 수 있으니 덮어쓰기 전에 config/func.inc.php 파일을 백업해 놓으세요.

그리고 다음과 같이 직접 수정하시면 됩니다.

config/func.inc.php 파일의 402번째줄부터 있는 removeHackTabk(), removeJsEvent(), removeSrcHack() 함수를 다음과 같은 코드로 바꾸시면 됩니다.

config/func.inc.phpXE CSRF 보안취약점 패치
    /**
     * @brief iframe, script코드 제거
     **/
    function removeHackTag($content) {
        // iframe 제거
        $content = preg_replace("!<iframe(.*?)<\/iframe>!is", '', $content);

        // script code 제거
        $content = preg_replace("!<script(.*?)<\/script>!is", '', $content);

        // meta 태그 제거
        $content = preg_replace("!<meta(.*?)>!is", '', $content);

        // style 태그 제거
        $content = preg_replace("!<style(.*?)<\/style>!is", '', $content);

        // XSS 사용을 위한 이벤트 제거
        $content = preg_replace_callback("!<([a-z]+)(.*?)>!is", removeJSEvent, $content);

        /**
         * 이미지나 동영상등의 태그에서 src에 관리자 세션을 악용하는 코드를 제거
         * - 취약점 제보 : 김상원님
         **/
        $content = preg_replace_callback("!<([a-z]+)(.*?)>!is", removeSrcHack, $content);

        return $content;
    }

    function removeJSEvent($matches) {
        $tag = strtolower($matches[1]);
        if(preg_match('/(src|href)=("|\'?)javascript:/i',$matches[2])) $matches[0] = preg_replace('/(src|href)=("|\'?)javascript:/i','$1=$2_javascript:', $matches[0]);
        return preg_replace('/ on([a-z]+)=/i',' _on$1=',$matches[0]);
    }

    function removeSrcHack($matches) {
        $tag = strtolower(trim($matches[1]));

        $buff = trim(preg_replace('/(\/>|>)/','/>',$matches[0]));
        $buff = preg_replace_callback('/([^=^"^ ]*)=([^ ^>]*)/i', fixQuotation, $buff);

        $oXmlParser = new XmlParser();
        $xml_doc = $oXmlParser->parse($buff);

        // src값에 module=admin이라는 값이 입력되어 있으면 이 값을 무효화 시킴
        $src = $xml_doc->{$tag}->attrs->src;
        $dynsrc = $xml_doc->{$tag}->attrs->dynsrc;
        if(_isHackedSrc($src) || _isHackedSrc($dynsrc) ) return sprintf("<%s>",$tag);

        return $matches[0];
    }

    function _isHackedSrc($src) {
        if(!$src) return false;
        if($src && preg_match('/javascript:/i',$src)) return true;
        if($src) {
            $url_info = parse_url($src);
            $query = $url_info['query'];
            $queries = explode('&', $query);
            $cnt = count($queries);
            for($i=0;$i<$cnt;$i++) {
                $pos = strpos($queries[$i],'=');
                if($pos === false) continue;
                $key = strtolower(trim(substr($queries[$i], 0, $pos)));
                $val = strtolower(trim(substr($queries[$i] ,$pos+1)));
                if(($key == 'module' && $val == 'admin') || $key == 'act' && preg_match('/admin/i',$val)) return true;
            }
        }
        return false;
    }


아직 이 CSRF 공격방법을 이용한 취약점 공격 방법이 공개되지 않았기에 다소 시간적 여유는 있지만 최대한 빨리 패치하시기를 권해드립니다.


엮인글 '2'

http://www.xpressengine.com/17234648/589/trackback

2008.09.22 20:26

티 스토리 애드센스 코드 삽입방법 - 은우성장기

티 스토리 애드센스 코드 삽입방법 애드센스를 이용하시고자 하는 분들중 html에 익숙하지 않은 분들을 위하여 간단한 가이드를 만들었습니다. (물론 저도 잘 모릅니다. 여기저기서 배웠음) 일반적으로 애드센스 이용자들이 가장 선호하는 광고배치임과 동시에 통계적으로 수입이 가장 많이 발생하는 구역을 위주로 설명하겠습니다. 티 스토리를 선택한 이유는 티 스토리 이용자들의 상당수 사람들이 애드센스를 이용하고 있고, 그래서 이 밖의 여러 가지 팁이나 정보를 얻..

2008.09.22 20:25

티 스토리 애드센스 코드 삽입방법 - 은우성장기

티 스토리 애드센스 코드 삽입방법 애드센스를 이용하시고자 하는 분들중 html에 익숙하지 않은 분들을 위하여 간단한 가이드를 만들었습니다. (물론 저도 잘 모릅니다. 여기저기서 배웠음) 일반적으로 애드센스 이용자들이 가장 선호하는 광고배치임과 동시에 통계적으로 수입이 가장 많이 발생하는 구역을 위주로 설명하겠습니다. 티 스토리를 선택한 이유는 티 스토리 이용자들의 상당수 사람들이 애드센스를 이용하고 있고, 그래서 이 밖의 여러 가지 팁이나 정보를 얻..


profile

[레벨:9]된장맛껌

2008.09.12 10:51:49
*.146.247.163

감사합니다.

프로소비

2008.09.12 14:37:14
*.126.119.13

고맙습니다~ 패치완료했습니다!!

[레벨:7]smico

2008.09.13 14:28:10
*.162.61.188

 func.inc.php 파일위로 덮어쓴후 config/func.inc.php 파일의 402번째줄부터 있는 removeHackTabk(), removeJsEvent(), removeSrcHack() 함수를 다음과 같은 코드로 바꾸라고 하셨는데 서버상에 있는 func.inc.php 의 코드를 어떻게 하면 바꿀수 있습니까?

아니면 바꾼후에 덮어쓰기를 해야하는지.. 좀 가르쳐 주시면 감사하겠습니다.

[레벨:2]FreeLoop

2008.09.14 09:34:38
*.183.249.200

패치 감사합니다.

단맹이

2008.09.16 23:49:41
*.183.92.140

완전...초보라서 그런데.. ( XE의 config 디렉토리에 있는 func.inc.php 파일위로 )    config 디렉토리가 어디있는...걸까요..;;?^^;;

[레벨:1]Zzini.net

2008.09.18 19:09:18
*.115.249.186

11.GIF

죠기 있답니다. ^-^
첨부

[레벨:1]카라얀

2008.09.18 21:20:50
*.212.35.188

감사합니다.

[레벨:1]임과장

2008.09.20 11:18:27
*.110.180.61

감사합니당~~
profile

[레벨:7]bncPlan

2008.09.28 23:05:58
*.39.188.164

1.0.6으로 업그레이드하면
패치 안해도 되는거 맞겠지요??

[레벨:3]ammaket

2009.03.15 00:39:55
*.143.246.167

func.inc.php를 덮어쓰기를 했는데 관자페이지에서  게시판생성과 페이지생성 창이 열리지않습니다
메뉴생성과 레이아웃생상 기타는 정상적으로 작동됩니다
버젼은 xe1.1.5 입니다
List of Articles
번호 제목 날짜 조회 수

공식사이트에서 이미지 닉네임 기능 제거 [9]

  • 2009-07-08
  • 조회 수 32354

XE 공식사이트에서는 가능한 XE의 기능을 많이 활용되는 모습을 보여드리고 또 체험하기 위해서 여러 부가기능들을 활성화 시켜 놓고 있습니다. 하지만 이번 리뉴얼에서 가장 중요한 XE Project 의 각 프로젝트들이 XE의 가상 사이트 기반이라 이미지 닉네임 기능이 프로젝트마다 다르게 설정이 됩니다. 즉 XE 메인 사이트와 개별 프로젝트에서 사용자의 identity를 나...

XE 1.2.4 배포하였습니다. [54]

  • 2009-06-25
  • 조회 수 52723

XE 1.2.4 배포 안내문 : http://www.xpressengine.com/downloadXE/18102652 XE 1.2.4 다운로드 : http://xe.xpressengine.net/?mid=issuetracker&act=dispIssuetrackerDownload 이번 1.2.4 를 마지막으로 XE의 기본 구성 요소들이 분리가 됩니다. 즉 XE를 구성하는 가장 기본 요소들인 classes, common등과 기본 모듈들을 핵심요소로 하여 XE Core 프로젝트로 더 축소되...

XE 공식사이트 v2 리뉴얼 하였습니다. [82]

  • 2009-06-23
  • 조회 수 39290

갑자기 사이트가 바뀌어서 놀래신 분들 계실것 같습니다. 몇 달전부터 준비해오던 결과물을 이제서야 오픈하게 되었습니다. 물론 아직 미진한 부분들이 많습니다. 제로보드4까지 10년을 넘게 운영해오던 사이트라 컨텐츠도 많고 게시판도 많아서 한번에 정리하지는 못했습니다. 특히나 제로보드4 링크가 없어졌다고 걱정하시거나 불편하신 분들은 우측 제로보드4 라는 링크를 일단 걸어...

XE 차후 방향성과 개발 일정 file [118]

  • 2009-04-20
  • 조회 수 78723

2007년 8월 12일 XpressEngine(이하 XE) 오픈 베타를 시작한지 벌써 1년하고도 6개월이라는 시간이 흘렀습니다. 당시에는 NHN에서 풀타임오픈 소스 개발을 할 뿐 모든 것을 제가 혼자 개발하던 때였습니다. 다행히 디자인 부분은 NHN 디자이너분들의 지원을 받았고 지금도 기본 스킨으로 사용되는 부분들이 있지만요. ^^ 아무튼 오픈 베타를 시작할때 많은 분들이 관심을 보...

XE 긴급 보안 패치 (모든 버전에 해당) file [38]

  • 2009-04-16
  • 조회 수 52511

XpressEngine 모든 버전의 보안 취약점이 발견되었습니다. 모든 상황에서 발생하는 것은 아니고 특정 웹서버 설정에 의해서 발생되는 문제입니다. 보안 취약점을 꼼꼼히 테스트 후 제보해주신 http://Simples.Kr (심플스)의 운영자이신 박병익(esniper)님께 감사의 말씀을 드립니다. 먼저 모든 버전에 해당되고 또한 간단히 패치할 수 있는 문제이기에 패치방법부터 알려드립니다. ...

[완료] 3/31(화) 오후 3~4시 DB서버 작업 file [12]

  • 2009-03-30
  • 조회 수 50845

XpressEngine 공식사이트 이전 후 기존과 다르게 XE와 관련된 모든 서비스를 하나의 DB 서버에서 운영하고 있습니다. 더군다나 이번에 새로 할당된 DB 서버의 하드웨어 스펙이 기존보다 좋지 않은 부분들이 있어서 내일 오후 3~4시 사이에 업그레이드를 하게 되었습니다. 1시간 가량 작업 시간이 소요될 것 같고 이 작업후에 XpressEngine 공식사이트 및 부가 서비스들이 보...

공식사이트 이전 완료하였습니다. [62]

  • 2009-03-06
  • 조회 수 62958

공식사이트 이전이 완료되었습니다. 아래 공지에서 알려드린 것처럼 이제 XpressEngine 공식사이트의 도메인은 xpressengine.com 으로 접속되도록 하였습니다. 공식사이트 개편을 하면서 이용하려고 하였으니 서버 이전에 따른 네임서버 캐싱 시간을 줄이고 또 정식 도메인을 보유하고 있기에 서버 이전하면서 도메인을 변경하였습니다. 도메인 변경과 함께 다음과 같은 것들이 변경되...

서버 이전 예정 공지입니다. [29]

  • 2009-03-02
  • 조회 수 49480

XpressEngine 사이트의 서버를 이전하게 되었습니다. 보다 좋은 서버로 옮기기 위함이며 네임서버 이전까지 같이 계획되어 있어서 1~2일간 접속이 되지 않을 수 있습니다. (사용하시는 인터넷 회선의 네임서버 캐싱 시간에 따라서 이 시간은 유동적입니다) 서버 이전 일정은 이번 주 금요일에 계획하고 있습니다. 공식사이트의 사용율을 보면 주말이 제일 적은 방문자가 유입이 되...

XpressEngine FaceOff 알파 버전 배포합니다. file [136] [4]

  • 2009-02-26
  • 조회 수 66412

아직 버전명은 붙이지 못하고 프로젝트명으로 XpressEngine FaceOff 알파 버전을 배포합니다. 당부드리고 싶은 것은 기능 개발만 완료되었을 뿐 다양한 환경과 상황에서 충분히 검증이 되지 못한 버전이라는 것을 꼭 숙지해주시기를 바랍니다. 차후 XpressEngine의 큰 축이 될 가상 사이트를 이용한 CafeXE, 레이아웃을 웹상에서 마음대로 편집하고 내보내기/들이기를 할 수 있...

XE 1.2.0의 완성도를 높이기 위한 배포 일정 연기 [111]

  • 2009-02-16
  • 조회 수 65291

일정은 꼭 준수하려고 노력했는데 1.2.0 부터는 버그 테스트 및 문서화를 미리 진행 후 배포하도록 하기 위해 배포 일정을 연기하게 되었습니다. 1.2.0 은 그 동안 이루어졌던 크고 작은 기능 추가와 버그 개선의 의미보다 XE가 제대로 된 기반이 될 수 있는 플랫폼으로서의 완성을 기약하는 의미가 큽니다. BNU님의 XpressEngine 1.2. 또 한 번의 작은 도약 에서도 소개...

XpressEngine의 큰 변화를 알려드립니다. imagefile [111]

  • 2008-12-10
  • 조회 수 100122

XpressEngine Open Source Project 가 2년이 되었네요. 2007년 8월 12일 XE 오픈 베타를 시작하였지만 실질적으로 XE에 대한 구조를 계획하고 오픈 소스 프로젝트에 대해 고민을 시작한 것은 2006년 12월 부터였으니 벌써 XE가 시작된지 2년이 되었습니다. 순식간에 지나간 2년이지만 많은 분들이 프로젝트에 참여해주시고 계십니다. 특히 참여하시는 분들이 스스로의 필요성...

virtual Site(사이트 분양 기능)에 대해 알려드립니다. imagefile [47]

  • 2008-11-25
  • 조회 수 81405

아래 공지에 연결되는 XE 1.1.0 의 새로운 기능에 대한 소개입니다. 현재 XE 1.1.0 을 배포할때 homepage, planet 패키지가 제외된 XE 배포판을 따로 준비하지 못했던 관계로 본의 아니게 homepage, planet 패키지를 다들 다운 받으셨고 이로 인해서 문제를 겪고 계신 분들이 많으십니다. 이런 상황을 예상하지 못해 불편 드려 죄송합니다. 내일 배포할 XE 1.1.1 에서는 ...

홈페이지, 플래닛에 대한 간단한 안내입니다. file [27] [1]

  • 2008-11-21
  • 조회 수 65787

먼저 새로이 들어가는 기능에 대해서 충분한 안내 자료등이 있었어야 하는데 이번 1.1.0 의 경우 늦어진 배포일등으로 인해서 개발에 집중해서 배포를 하다 보니 충분한 사전 설명이 없었습니다. 그래서 멀쩡한 기능(?)에 대해서 문제라고 인식하시는 분들도 계시게 되고 또 그로 인해 고생 하신 분들도 생기셔서 먼저 죄송하다는 말씀 드립니다. ㅡ.ㅜ 홈페이지 패키지관리자 페...

Xpress Engine & XE Ver 1.1.0 안내드립니다. file [86] [1]

  • 2008-11-18
  • 조회 수 64031

오늘 여기 공식 사이트를 보시면 사이트 로고와 최근 게시글들의 아이콘들이 변경된 것이 보이실 것입니다. 이게 뭐야~ 하신 분도 계실테고 XE의 이름이 정해졌다고 예상하시는 분들도 계시리라 생각합니다. XE 라는 작년부터 사용해온 이름을 이번 XE ver 1.1.0 부터 Xpress Engine 이라는 이름으로 사용하기로 결정하였습니다. 오픈 소스 프로젝트 포럼등을 통해서 이름을 ...

XE 다음 개발 방향에 대해 알려드립니다. file [90]

  • 2008-11-05
  • 조회 수 59941

제로보드라는 게시판 프로그램의 한계를 뛰어 넘고 긴 공백동안 발생된 문제 그리고 더 나은 미래를 지향하기 위해 시작된 XE 개발이 시작된지 어느덧 2년째가 되어 가고 있습니다. 작년 8월 오픈베타를 시작으로 참으로 많은 분들이 프로젝트에 직접 참여해주시고 또 더욱 많은 분들이 아껴주시고 관심을 가져주셔서 지난 2년 이라는 시간이 참으로 보람차고 뿌듯한 것 같다는...

2008 NHN DeView file [9]

  • 2008-11-04
  • 조회 수 49121

2008 NHN DeView가 개최됩니다. DeView는 NHN의 기술을 공유하고 보다 쉽고 편리하게 개발을 지원하기 위해 열리는 컨퍼런스 입니다. 저도 한 세션을 맡고 발표하기로 하여서 바쁘게 준비하고 있습니다. 주된 내용은 NHN의 기술이나 자원을 공개하고 이를 통해 외부 전문 컨텐츠 생산등을 지원한다는 것이 골자입니다. XE는 이미 익히 아실테고 Cubrid라는 DBMS도 오픈...

XE Project Member Blog Open file [16] [1]

  • 2008-09-24
  • 조회 수 61390

XE Project Member들의 팀 블로그를 오픈하였습니다. 블로그 주소 : http://www.zeroboard.com/blog 아울러 Project Group도 변경을 하였습니다. 기존의 커미터, 번역/지역화, 문서화, 리포터등에서 Developer, Navigator, Explorer 3개로 정리를 하였습니다. 자세한 내용은 팀 블로그 접속해서 확인해주시면 감사하겠습니다. ^^ 그리고 Project Member들의 정리도 곧 있을 예정입...

liveXE 베타 서비스 일시 중단합니다. file [13]

  • 2008-09-23
  • 조회 수 53041

XE만의 메타 사이트 liveXE 베타 서비스를 일시 중단하려고 합니다. XE로 구축된 사이트들의 징검다리 역할을 하기 위해 만든 XE 전용 메타 사이트의 가능성은 충분히 높음을 확인할 수 있었습니다. 다만 제대로 된 설계하에 개발된 것이 아니였기에 본의 아니게 많은 분들의 사이트에 부담을 준다든지 1.0.5 이전에 존재했던 RSS 모듈의 버그로 인하여 원치 않는 글이 노...

XE 보안 취약점 긴급 패치 배포합니다. file [60] [2]

  • 2008-09-02
  • 조회 수 73875

INet Corp Security 연구소장이신 유동훈님(Xpl017Elz, x82)님께서 XE CSRF 보안 취약점 제보를 해주셨습니다. CSRF 라는 공격 방법으로 XE 관리자 세션을 악용할 수 있게 하는 취약점입니다. 이 방법은 1.0.5 이전에 다른 분께 제보를 받아서 관리자 세션을 악용할 수 있는 것을 모두 막아 놓았는데 제가 미처 알지 못하는 방법으로 관리자 세션을 악용할 수 있는 취...

liveXE 구경해보세요. :) file [57] [4]

  • 2008-07-31
  • 조회 수 102756

안녕하세요. 그 동안 많은 분들이 원하셨던 XE 로 만들어진 사이트/ 블로그만의 메타 사이트를 시험적으로 만들고 공개하였습니다. 물론 미리부터 열려 있었지만 몇가지 사항에 대해서 마무리를 하고 이제는 조금은 그럴싸하게 되어서 공지를 하게 되었습니다. liveXE 는 "XE로 만들어진 사이트 또는 블로그등의 컨텐츠를 RSS를 통해서 수집" 하게 됩니다. 즉 XE로 운영중인 ...




XE Login

OpenID Login