RX/XE 팁
XE FAQ 는 제가 XE공홈 '묻고 답하기'에 답변한 내용들 중 일부를 정리한 내용입니다. (대부분이 제가 한 답변이죠)
XE Tips 는 제가 XE 공홈에 쓴 XE 관련 유용한 팁들입니다. 기능개선은 공홈에 안 적어둔 XE 유용 개선팁들입니다.
유용정보는 외부 검색을 통해 알아낸 소스등을 기재해둔 곳입니다.
버그 신고내역들은 XE 사용하다가 발견한 버그 패치방법들로, Core Issue 에 기록해뒀기에 XE 에 적용이 되었을 가능성이 있겠죠

제가 쓴 글들에 대해 퍼가실때는 꼭 출처를남겨주시고.. (다만 플래시뷰 기반이기에 퍼가기는조금 힘들 수 있겠죠 ^^;)
타회원의 글들도 적혀있는 출처를 같이 꼭 기재해주세요
sejin7940 조회:3465 2022.04.02 18:44
출처 rhymix 
출처URL https://xetown.com/topics/1665887 

외부페이지로 불러오는 로컬 파일에 PHP 코드나 템플릿 코드가 포함되어 있는 경우, 이를 이용하여 공격자가 서버단에서 실행되는 임의의 코드를 주입할 수 있는 원격 코드 실행(RCE) 취약점입니다. 

 

https://xetown.com/topics/1665887  참조

 

 




modules/page/page.mobile.php

 

function dispPageIndex  함수에서

 

if($this->module_srl) Context::set('module_srl',$this->module_srl);

 

아래에 추가

 

// Firt line of defense against RVE-2022-2.

foreach (Context::getRequestVars() as $key => $val)

{

if (preg_match('/[\{\}\(\)<>\$\'"]/', $key) || preg_match('/[\{\}\(\)<>\$\'"]/', $val))

{

$this->setError(-1);

$this->setMessage('msg_invalid_request');

return;

}

}

 

 

 

modules/page/page.view.php  에서

 

function dispPageIndex()  함수에서

 

if($this->module_srl) Context::set('module_srl',$this->module_srl);

 

아래에 추가

 

// Firt line of defense against RVE-2022-2.

foreach (Context::getRequestVars() as $key => $val)

{

if (preg_match('/[\{\}\(\)<>\$\'"]/', $key) || preg_match('/[\{\}\(\)<>\$\'"]/', $val))

{

$this->setError(-1);

$this->setMessage('msg_invalid_request');

return;

}

}

 

 

 

function executeFile  함수에서

 

FileHandler::writeFile($cache_file, $content);

 

아래의

 

// Include and then Return the result

if(!file_exists($cache_file)) return;

// Attempt to compile

$oTemplate = &TemplateHandler::getInstance();

$script = $oTemplate->compileDirect($filepath, $filename);

 

FileHandler::writeFile($cache_file, $script);

 

부분을 전체 주석 또는 삭제

 

 

그 아래의

 

$__Context = &$GLOBALS['__Context__'];

$__Context->tpl_path = $filepath;

 

ob_start();

include($cache_file);

 

$contents = '';

while (ob_get_level() - $level > 0) {

$contents .= ob_get_contents();

ob_end_clean();

}

return $contents;

 

이 부분을

 

// Don't compile, just return to prevent RVE-2022-2.

return file_get_contents($cache_file);

 

로 대체

 
전체 6건
번호 카테고리 제목 출처 등록일 조회
공지 XE 기능개선 XE 1.11.18 이후 버전의 익명 수정 버그 수정법 xetown  2023.10.07 3264
공지 XE 기능개선 XE 1.11.14 보안패치 - 타인의 쪽지 내용을 확인할 수 있는 버그 패치방법 xetown  2023.10.03 3329
공지 XE 기능개선 XE 1.11.6 이후 보안배치 #4 file rhymix  2022.07.05 3500
» 1.11.6 XE 1.11.6 이후 보안배치 #3 rhymix  2022.04.02 3465
공지 1.11.6 XE 1.11.6 이후 보안배치 #1 xetown  2021.06.22 3848
공지 1.11.6 XE 1.11.6 이하 에서 공개댓글을 비밀댓글로 변경시 생길 수 있는 오류 수정법 sejin7940  2021.01.10 3779
공지 XE 기능개선 XE 1.11.4 이후에서 파일 업로드시 정상 작동 안 하는 현상 수정법 XE github  2019.04.02 6546
공지 XE 기능개선 php 7.1 환경에서 XE 오류 나는 경우 확인할 사항 sejin7940  2018.07.11 6447
공지 유용정보 php7.2 환경에서 XE 오류가 생기는 경우 - Object 클래스 변경 필요 XE Github  2017.11.27 10043
공지 XE 기능개선 XE 1.8.30 이하에서 반드시 수정해주셔야하는 부분입니다. XE 1.8.31  2017.02.26 7220
공지 1.8.18 XE 1.8.18 에서 사용시 반드시 수정해야할 사항들 ( XE 1.8.20 이후에서는 수정 불필요 ) xetown  2016.04.03 26364
공지 XE 기능개선 XE 1.8.12 이후부터 proc controller 일부가 작동 안 할 경우 확인할 부분 [1] XE  2015.10.16 26251
6 1.7.7 글 수정시 파일첨부 삭제하면 확장변수 무조건 삭제되는 버그 해결법 sejin7940  2014.12.10 1166
5 1.7.7 글 개수 추출하는 함수의 제한들 해제 및 query 버그 수정법 sejin7940  2014.11.30 1159
4 1.7.7 파일첨부 된 글을 게시글 이동시, 사용자정의 값이 전부 삭제되는 버그 패치 sejin7940  2014.11.20 1479
3 1.7.7 '이메일 주소로 계정 찾기' 인증 후 문구 오류 수정 sejin7940  2014.11.15 1650
2 1.7.7 관리자 메뉴 설정에서, 기본 URL 설정에 따른 등록 오류 현상 수정 sejin7940  2014.11.12 1607
1 1.7.7 에디터에서 '문서 폰트' 지정해도 제대로 안 되는 버그 / 기본폰트 수정 sejin7940  2014.10.26 1605
XE Login