9001 - Pentesting HSQLDB
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
HSQLDB (HyperSQL DataBase) είναι το κορυφαίο σύστημα σχεσιακής βάσης δεδομένων SQL γραμμένο σε Java. Προσφέρει μια μικρή, γρήγορη, πολυνηματική και συναλλαγματική μηχανή βάσης δεδομένων με πίνακες μνήμης και δίσκου και υποστηρίζει ενσωματωμένες και διακομιστικές λειτουργίες.
Default port: 9001
Σημειώστε ότι από προεπιλογή αυτή η υπηρεσία πιθανώς εκτελείται στη μνήμη ή είναι συνδεδεμένη στο localhost. Αν το βρήκατε, πιθανώς εκμεταλλευτήκατε μια άλλη υπηρεσία και ψάχνετε να κλιμακώσετε τα δικαιώματα.
Οι προεπιλεγμένες διαπιστευτήρια είναι συνήθως sa
με κενό κωδικό πρόσβασης.
Αν έχετε εκμεταλλευτεί μια άλλη υπηρεσία, αναζητήστε πιθανές διαπιστευτήρια χρησιμοποιώντας
Σημειώστε προσεκτικά το όνομα της βάσης δεδομένων - θα το χρειαστείτε για να συνδεθείτε.
Συνδεθείτε στην DB instance κατεβάζοντας το HSQLDB και εξάγοντας το hsqldb/lib/hsqldb.jar
. Εκτελέστε την εφαρμογή GUI (eww) χρησιμοποιώντας java -jar hsqldb.jar
και συνδεθείτε στην instance χρησιμοποιώντας τα ανακαλυφθέντα/αδύναμα διαπιστευτήρια.
Σημειώστε ότι το URL σύνδεσης θα μοιάζει κάπως έτσι για ένα απομακρυσμένο σύστημα: jdbc:hsqldb:hsql://ip/DBNAME
.
Μπορούμε να καλέσουμε στατικές μεθόδους μιας κλάσης Java από το HSQLDB χρησιμοποιώντας Ρουτίνες Γλώσσας Java. Σημειώστε ότι η καλούμενη κλάση πρέπει να είναι στο classpath της εφαρμογής.
Οι JRTs μπορούν να είναι functions
ή procedures
. Οι συναρτήσεις μπορούν να καλούνται μέσω SQL δηλώσεων αν η μέθοδος Java επιστρέφει μία ή περισσότερες SQL-συμβατές πρωτότυπες μεταβλητές. Καλούνται χρησιμοποιώντας τη δήλωση VALUES
.
Αν η μέθοδος Java που θέλουμε να καλέσουμε επιστρέφει void, πρέπει να χρησιμοποιήσουμε μια διαδικασία που καλείται με τη δήλωση CALL
.
Δημιουργήστε συνάρτηση:
Εκτέλεση συνάρτησης:
Μπορείτε να βρείτε μια λίστα με τις ιδιότητες του συστήματος εδώ.
Μπορείτε να χρησιμοποιήσετε το com.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename
Java gadget που βρίσκεται στο JDK (αυτόματα φορτωμένο στη διαδρομή κλάσης της εφαρμογής) για να γράψετε στοιχεία κωδικοποιημένα σε hex στο δίσκο μέσω μιας προσαρμοσμένης διαδικασίας. Σημειώστε το μέγιστο μέγεθος των 1024 bytes.
Δημιουργήστε διαδικασία:
Εκτέλεση διαδικασίας:
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)