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

제가 쓴 글들에 대해 퍼가실때는 꼭 출처를남겨주시고.. (다만 플래시뷰 기반이기에 퍼가기는조금 힘들 수 있겠죠 ^^;)
타회원의 글들도 적혀있는 출처를 같이 꼭 기재해주세요
sejin7940 조회:3378 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);

 

로 대체

 
전체 3건
번호 카테고리 제목 출처 등록일 조회
공지 XE 기능개선 XE 1.11.18 이후 버전의 익명 수정 버그 수정법 xetown  2023.10.07 3199
공지 XE 기능개선 XE 1.11.14 보안패치 - 타인의 쪽지 내용을 확인할 수 있는 버그 패치방법 xetown  2023.10.03 3265
공지 XE 기능개선 XE 1.11.6 이후 보안배치 #4 file rhymix  2022.07.05 3433
» 1.11.6 XE 1.11.6 이후 보안배치 #3 rhymix  2022.04.02 3378
공지 1.11.6 XE 1.11.6 이후 보안배치 #1 xetown  2021.06.22 3774
공지 1.11.6 XE 1.11.6 이하 에서 공개댓글을 비밀댓글로 변경시 생길 수 있는 오류 수정법 sejin7940  2021.01.10 3696
공지 XE 기능개선 XE 1.11.4 이후에서 파일 업로드시 정상 작동 안 하는 현상 수정법 XE github  2019.04.02 6449
공지 XE 기능개선 php 7.1 환경에서 XE 오류 나는 경우 확인할 사항 sejin7940  2018.07.11 6372
공지 유용정보 php7.2 환경에서 XE 오류가 생기는 경우 - Object 클래스 변경 필요 XE Github  2017.11.27 9939
공지 XE 기능개선 XE 1.8.30 이하에서 반드시 수정해주셔야하는 부분입니다. XE 1.8.31  2017.02.26 7160
공지 1.8.18 XE 1.8.18 에서 사용시 반드시 수정해야할 사항들 ( XE 1.8.20 이후에서는 수정 불필요 ) xetown  2016.04.03 26281
공지 XE 기능개선 XE 1.8.12 이후부터 proc controller 일부가 작동 안 할 경우 확인할 부분 [1] XE  2015.10.16 26201
3 1.8.2 레이아웃 설정 에서 파일 추가 가 안 되는 버그 수정법 XE Core  2015.07.01 732
2 1.8.2 설문조사 컴퍼넌트의 종료일 오류들 수정 sejin7940  2015.05.26 780
1 1.8.2 공지목록의 추출기준을 문서번호가 아니라 글순서로 변경 sejin7940  2015.05.26 1120
XE Login