# PoC - CVE-2025-34040 - Arbitrary File Upload to RCE (Zhiyuan OA)

{% embed url="<https://www.exploit-db.com/exploits/52490>" %}

#### Resumen

Desarrollé una Proof of Concept (PoC) que demuestra una vulnerabilidad de **subida arbitraria de archivos con path traversal** en la plataforma **Zhiyuan OA**, registrada como **CVE-2025-34040**.

La vulnerabilidad se origina en una validación insuficiente de los parámetros `realFileType` y `fileId` dentro del endpoint `wpsAssistServlet`, lo que permite escribir archivos fuera de los directorios previstos.

La PoC demuestra cómo, mediante la manipulación controlada de peticiones multipart, es posible subir archivos ejecutables (por ejemplo, JSP) al webroot y lograr **ejecución remota de código (RCE)**.

El exploit fue publicado y verificado en Exploit Database (**EDB-ID 52490**).

#### Detalle técnico

* **Producto afectado:** Zhiyuan OA
* **Versiones afectadas:** 5.0, 5.1–5.6sp1, 6.0–6.1sp2, 7.0–7.1sp1, 8.0–8.0sp2
* **CVE:** CVE-2025-34040
* **Componente vulnerable:** `wpsAssistServlet` (file upload handler)
* **Vector de ataque:** Path Traversal + Arbitrary File Upload
* **Tipo de vulnerabilidad:** Unrestricted File Upload + Directory Traversal
* **CWE:** CWE-22, CWE-434
* **Impacto:** Remote Code Execution (RCE)
* **Plataforma:** Web / Java

#### Descripción de la PoC

La PoC explota una validación incorrecta en la carga de archivos multipart, permitiendo controlar la ruta destino mediante el parámetro `realFileType`.

El exploit realiza las siguientes acciones:

* Manipulación del parámetro `realFileType` con secuencias `../`
* Escritura de archivos fuera del directorio permitido
* Subida de un archivo ejecutable (JSP) al webroot
* Acceso directo al archivo subido mediante el servidor web
* Ejecución de código en el servidor

No requiere autenticación en configuraciones expuestas.

#### Comportamiento demostrado

* Escritura arbitraria de archivos en el sistema
* Bypass de restricciones de directorio
* Ejecución de código remoto (RCE)
* Persistencia mediante webshells
* Compromiso completo del servidor

#### Entorno de pruebas

* **Aplicación:** Zhiyuan OA
* **Versiones afectadas:** múltiples versiones hasta 8.0sp2
* **Plataforma:** Java Web Application
* **Escenario:** Laboratorio controlado

#### Impacto

Un atacante remoto no autenticado puede:

* Subir y ejecutar código arbitrario
* Comprometer completamente el servidor
* Acceder a datos sensibles
* Realizar movimiento lateral dentro de la red
* Establecer persistencia

La vulnerabilidad presenta un impacto **crítico (CVSS 4.0: 10.0)** debido a:

* Sin autenticación requerida
* Baja complejidad
* Ejecución directa de código

#### Mitigaciones recomendadas

* Aplicar parches oficiales del vendor
* Validar estrictamente rutas y nombres de archivo
* Restringir tipos de archivo permitidos
* Implementar controles de subida seguros
* Aislar el webroot de directorios de escritura
* Monitorizar cargas de archivos sospechosas

#### Referencias

* **Exploit:** <https://www.exploit-db.com/exploits/52490>
* **CVE:** <https://nvd.nist.gov/vuln/detail/CVE-2025-34040>

{% hint style="danger" %}
Esta PoC ha sido desarrollada únicamente con fines educativos y de investigación.\
No debe ejecutarse contra sistemas en producción ni sin autorización expresa.\
Seguir siempre prácticas de responsible disclosure.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://beafn28.gitbook.io/beafn28/cve-and-poc/poc-cve-2025-34040-arbitrary-file-upload-to-rce-zhiyuan-oa.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
