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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2018-7600 — Drupal CVE-2018-7600 원격 코드 실행 취약점에 대한 단계별 분석 및 악용 실습으로, 디버깅, 익스플로잇 코드 및 완화 패치 검토를 포함합니다. | Kitploit
도구/GitHubGitHub/raytran54/cve-2018-7600
Vulnerability AnalysisCode AnalysisExploitationWeb Application ExploitationLearning & EducationLabs & Practice
GitHubraytran54/cve-2018-7600

CVE-2018-7600

Drupal CVE-2018-7600 원격 코드 실행 취약점에 대한 단계별 분석 및 악용 실습으로, 디버깅, 익스플로잇 코드 및 완화 패치 검토를 포함합니다.

저장소 보기
32년 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

TRAN CONG DANH - SVTT - 멘토: LUU VAN LAN - CVE-2018-7600 - 시작일: 26/06/2024.

목차:

  1. CVE summary
  2. Prerequisites
  3. CVE Analyse
  4. Mitigation

CVE summary

  • 공격자는 call_user_func 자동 실행 함수를 포함하는 Drupal Form API Ajax Request를 호출할 수 있습니다.
  • Drupal 7.58 이전 버전, 8.x 8.3.9 이전 버전, 8.4.x 8.4.6 이전 버전, 8.5.x 8.5.1 이전 버전

Prerequisites

  • 이 실습에서는 다음을 사용합니다:

    • Ubuntu 20.04( PHP 7.2, MariaDB )
    • 이 실습에서 사용하는 Drupal 버전은 8.3.8입니다.
    • 디버깅용 Visual Studio Code
    • Drupal 익스플로잇 실행용 Kali 23.4

CVE Analyse

  • call_user_func를 사용하는 키는 #pre_render, #post_render, #access_callback, #submit, #lazy_builder, #validate임을 확인했습니다. image
  • 이제 해야 할 일은 사용자가 제출한 매개변수 중 render가 있는 항목을 찾아 키를 변경하고, 호출하기 위해 #post_render 키를 받는 것입니다. image
  • 사진 크기를 조정하면 서버가 drupal API를 호출합니다. image
  • 여기에 포함된 &$array 함수는 전송 시 기본 요소의 배열입니다. 코드 없이 디버깅을 시도해 보겠습니다: image image
  • 업로드 시 mail 값을 수정한다고 가정해 보겠습니다: image image
  • image

    • getValue($array, $parents) 메서드를 호출하면 프로세스는 다음과 같습니다:

    $ref는 $array에 대한 참조를 허용하지 않습니다.

    첫 번째 루프: $ref는 $array['a']를 참조합니다.

    두 번째 루프: $ref는 $array['a']['b']를 참조합니다.

    세 번째 루프: $ref는 $array['a']['b']['c']를 참조합니다.

    최종 결과, $ref는 값 42를 참조하게 됩니다.

    root@kitploit:~
    $array = [
        'a' => [
            'b' => [
                'c' => 42
            ]
        ]
    ];
    $parents = ['a', 'b', 'c'];
    
    • getValue 함수에서 $form 값을 받은 후, $form은 Render 함수의 인수가 됩니다.

    image image image

    • call_user_func의 정의

    image

    • 파일 익스플로잇을 사용했을 때의 결과:

    image

    Mitigation

    • 패치 ** Drupal 개발자들은 키가 “#”로 시작하는 배열의 모든 입력 요소를 제거하는 stripDangerousValues ​​메서드를 가진 RequestSanitizer 클래스를 추가하는 패치를 게시했습니다. 이 메서드는 $_GET, $_POST, $_COOKIES의 입력을 정리합니다.

    ** Drupal 8.6.5 /core/lib/Drupal/Core/DrupalKernel.php image /core/lib/Drupal/Core/Security/RequestSanitizer.php image image ** stripDangerousValues ​​함수는 모든 입력 매개변수를 하나씩 검증하며, 입력 배열의 요소가 “#”로 시작하는 값을 가지면 화이트리스트에 없는 값은 제거됩니다.

    도구 다운로드