
Prueba de concepto del exploit para CVE-2022-29464 que permite la carga de archivos sin restricciones y la ejecución remota de código en productos WSO2 vulnerables, con un shell JSP personalizado para la ejecución de comandos y la exfiltración de archivos.
Ciertos productos WSO2 permiten la subida de archivos sin restricciones, lo que resulta en la ejecución remota de código. El atacante debe usar un endpoint /fileupload con una secuencia de directory traversal en Content-Disposition para alcanzar un directorio bajo la raíz web, como un directorio ../../../../repository/deployment/server/webapps.
python3 main.py https://example.com shell.jsp
Reemplaza https://example.com con el servidor vulnerable y shell.jsp con un nombre de archivo que quieras usar para la subida.
Edita el archivo shell.jsp como quieras, pero el shell actual también funciona perfectamente (mejor que otros shells JSP, al menos).
Este shell puede recopilar la salida de stdout y stderr. Los comandos se ejecutan usando /bin/sh.
Mayormente, los administradores de sistemas ejecutan los productos WSO2 como superusuario. Con este exploit, tendrás permisos de superusuario sobre todo el sistema.
Los archivos de base de datos se encuentran en el directorio ~/repository/database.
Puedes usar IntelliJ IDEA para abrir bases de datos tipo H2, así.
Usando este exploit, puedes copiar cualquier archivo de cualquier directorio a ~/repository/deployment/server/webapps/authenticationendpoint. El directorio authenticationendpoint sirve JSP, pero también se puede usar para servir otros archivos.
Ejemplo:
cp ~/repository/database/WSO2CARBON_DB.h2.db ~/repository/deployment/server/webapps/authenticationendpoint/WSO2CARBON_DB.h2.db
Este comando copiará el archivo principal de la base de datos a un directorio desde el que podemos descargarlo.
No soy responsable de ningún tipo de guerra termonuclear ni de que te arresten. Usa este exploit solo en un entorno de pruebas.