Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-2002-poc — CVE-2026-2002 분석 및 개념 증명 | Kitploit
도구/GitHubGitHub/typedefabcd1234ntd/cve-2026-2002-poc
Vulnerability AnalysisCode AnalysisExploitationWeb Application ExploitationWeb SecurityLearning & Education
GitHubtypedefabcd1234ntd/cve-2026-2002-poc

CVE-2026-2002-poc

CVE-2026-2002 분석 및 개념 증명

저장소 보기
1162개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

요약

WordPress용 Forminator Forms – Contact Form, Payment Form & Custom Form Builder 플러그인은 1.50.2를 포함한 모든 버전에서 form_name 매개변수를 통한 Stored Cross-Site Scripting(저장형 XSS) 취약점에 노출되어 있습니다. 이는 불충분한 입력 검증(sanitization)과 출력 이스케이핑(escaping) 때문입니다. 이로 인해 관리자(administrator) 수준 접근 권한을 가진 인증된 공격자가 페이지에 임의의 웹 스크립트를 주입할 수 있으며, 사용자가 해당 페이지에 접근할 때마다 스크립트가 실행됩니다. 이 플러그인은 관리자가 하위 권한 사용자에게 양식 관리 권한을 부여할 수 있게 하므로, 구독자(subscriber)와 같은 사용자에게도 악용될 가능성이 있습니다.

근본 원인

근본 원인은 로직 버그에 대한 세심한 인식이 필요한 부분입니다: (/fields/html.php 파일에 있는 이 함수)

public function markup( $field, $views_obj ) {
        $settings = $views_obj->model->settings;

        $html    = '';
        $label   = esc_html( self::get_property( 'field_label', $field ) );
        $id      = self::get_property( 'element_id', $field );
        $form_id = false;

        $html .= '<div class="forminator-field forminator-merge-tags" data-field="' . $id . '">';

        if ( $label ) {

            $html .= sprintf(
                '<label class="forminator-label">%s</label>',
                self::convert_markdown( $label )
            );
        }

            // Check if form_id exist.
        if ( isset( $settings['form_id'] ) ) {
            $form_id = $settings['form_id'];
        }

        // To allow iframes in content.
        add_filter( 'wp_kses_allowed_html', array( 'Forminator_Core', 'add_iframe_to_kses_allowed_html' ) );
        $content = wp_kses_post( self::get_property( 'variations', $field ) );  // root cause here
        remove_filter( 'wp_kses_allowed_html', array( 'Forminator_Core', 'add_iframe_to_kses_allowed_html' ) );

        $html .= forminator_replace_variables(
            $content,
            $form_id
        );

        $html .= '</div>';

        return $html;
    }

이 코드는 하위 권한 사용자의 XSS를 방어하기 위해 wp_kses_post라는 검증(sanitize) 함수를 사용하지만, 문제는 변수를 치환하기 전에 검증을 수행한다는 점입니다. 그 결과 적절한 권한을 가진 공격자는 유효한 HTML 태그를 사용하여 wp_kses_post를 우회하고 JavaScript 페이로드를 변수에 주입함으로써 XSS를 트리거할 수 있습니다.

개념 증명

Edit Form 권한을 가진 공격자는 HTML 필드에 다음과 같은 HTML을 삽입할 수 있습니다:

그런 다음 form_name을 다음과 같이 변경합니다:

javascript:alert(1) or javascript:<Payload>

심각도

점수심각도버전벡터 문자열
4.4MEDIUM3.1CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:C/C:L/I:L/A:N

제 생각에 이 버그는 심각도가 높지는 않지만, 로직과 코드 리뷰에 대한 세심한 인식이 필요합니다. 위에서 볼 수 있듯이 두 줄의 코드 사이에 있는 사소한 실수 하나만으로도 취약점이 만들어질 수 있습니다.

poc

참고

이런 유형의 연구가 마음에 들고 더 많은 발굴 작업을 지원하고 싶다면, 기부를 통해 저를 후원할 수 있습니다. 기여해 주시면 감사하겠습니다.

╰(°▽°)╯

도구 다운로드