9001 - Pentesting HSQLDB
Основна інформація
HSQLDB (HyperSQL DataBase) є провідною системою реляційних баз даних SQL, написаною на Java. Вона пропонує невеликий, швидкий багатопотоковий та транзакційний механізм бази даних з таблицями в пам'яті та на диску, а також підтримує вбудовані та серверні режими.
Порт за замовчуванням: 9001
Інформація
Налаштування за замовчуванням
Зверніть увагу, що за замовчуванням ця служба, ймовірно, працює в пам'яті або прив'язана до localhost. Якщо ви її знайшли, ви, напевно, експлуатували іншу службу і намагаєтеся підвищити привілеї.
Налаштування за замовчуванням зазвичай sa
з порожнім паролем.
Якщо ви експлуатували іншу службу, шукайте можливі облікові дані, використовуючи
Зверніть увагу на назву бази даних - вона знадобиться для підключення.
Збір інформації
Підключіться до екземпляра БД, завантаживши HSQLDB та витягнувши 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
Створіть функцію:
Виконати функцію:
You can find a list of system properties here.
Запис вмісту у файл
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:
Виконати процедуру:
Last updated