워드프레스 WPLMS WordPress 테마의 임의 파일 읽기 및 삭제 취약점
해당 워드프레스 테마는 유료 인지라 샘플을 확보하지 못한 상황에서 공개된 정보만 진행됩니다.
WPLMS WordPress 테마의 임의 파일 읽기 및 삭제 취약점 때문에 28,000개의 WordPress 사이트가 영향을 주는 취약점입니다.
WPLMS 2024년 10월 19일에 우리는 28,000개 이상의 판매량을 기록한 WordPress 프리미엄 테마 이면서 임의 파일 읽기 및 삭제 취약점에 대한 취약점입니다.
Wordfence Premium , Word fence Care 및 Wordfence Response 사용자는 2024년 10월 28일에 이 취약점을 표적으로 하는 공격으로부터 보호하기 위한 방화벽 규칙 채용
개발자는 전체 공개 세부 정보를 제공하고 나서 2024년 11월 8일에 패치를 출시
WordPress용 WPLMS 학습 관리 시스템, WordPress용 WordPress LMS 테마는 4.962까지의 모든 버전에서 파일 읽기 및 연결 해제 기능의 파일 경로 확인 및 권한 확인이 충분하지 않아 임의 파일 읽기 및 삭제에 취약
WPLMS는 코스, 퀴즈, 인증서 및 배지와 같은 많은 기능을 포함하는 WordPress 프리미엄 테마입니다.
코드를 조사해 보면 테마가 envato-setup-export.php 웹사이트 콘텐츠 내보내기 중에 생성된 zip 파일을 다운로드하기 위한 파일
취약점
}elseif( isset($_POST['download_export_zip']) ){
// Download Created Zip file
$filename = $_POST['zip_file'];
if ( file_exists($filename) ) {
if ( headers_sent() ){
// HTTP header has already been sent
return false;
}
// clean buffer(s)
while ( ob_get_level() > 0 ){
ob_end_clean();
}
ob_start();
//Send headers to browser for zip download
header('Content-Type: application/zip');
header('Content-Disposition: attachment; filename="'.basename($filename).'"');
header('Content-Length: ' . filesize($filename));
ob_flush();
ob_clean();
readfile($filename);
// delete zip file after download
unlink($filename);
코드 취약점
1. 파일 경로 및 삭제 취약점:
$_POST['zip_file'] 매개변수를 통해 파일 이름이 전달 해당 값에 대해 검증이 전혀 이루어지지 않음
공격자가 의도적으로…./…./…./WP-config.php 와 같은 디렉터리 트래버설 공격을 수행하면 서버의 민감한 파일에 접근할 수 있음
unlink() 를 통해 다운로드 후 파일이 삭제 역시 인증이나 추가 검증 없이 실행되므로 공격자가 서버 임의 파일을 삭제할 수 있음
2. 인증 및 권한 확인 부족:
파일 다운로드와 삭제 과정에서 사용자의 인증 상태나 권한을 확인하는 로직이 없음
해당 인증되지 않은 공격자가 사이트의 백엔드에 접근하지 않아도 파일을 읽거나 삭제할 수 있음을 의미
테마가 활성화되지 않은 상태에서도 해당 PHP 코드가 실행될 수 있다면 테마가 단순히 설치만 되어 있어도 이 취약점이 악용될 수 있음
3.readfile()와 unlink() 조합의 위험성:
파일을 readfile()로 읽어 사용자에게 전달하고 즉시 unlink()로 삭제
해당 방식은 공격자에게 파일을 내려받을 수 있는 동시에 서버에서 해당 파일을 삭제할 수 있는 권한을 제공
wp-config(.)php 파일과 같은 중요한 설정 파일을 삭제하면 사이트가 초기 설정 상태로 강제 전환
해당 부분을 악용하여 공격자는 자신의 데이터베이스 정보를 입력해 사이트를 장악할 수 있음
WPLMS Learning Management System for WordPress, WordPress LMS 를 사용을 하시는 분들은 4.963 버전 이상을 사용하는 것을 매우 권장
전문가 가 아니니 오류가 있을수가 있음