
A library for detecting known secrets across many web frameworks एक लाइब्रेरी जो कई वेब फ्रेमवर्क्स में ज्ञात सीक्रेट्स का पता लगाने के लिए है
mkdir -p ~/ctools/ cd ~/ctools/ git clone https://github.com/irsdl/crapsecrets/ cd ~/ctools/crapsecrets pip3 install -r requirements.txt export PYTHONPATH=$(pwd):$PYTHONPATH python3 ./crapsecrets/examples/cli.py -u http://update.microsoft.com/ -r python3 ./crapsecrets/examples/cli.py -u http://update.microsoft.com/ -mrd 5 python3 ./crapsecrets/examples/cli.py -mrd 5 -avsk -fvsp -u http://update.microsoft.com/ python3 ./crapsecrets/examples/cli.py -mrd 5 -avsk -fvsp -mkf ./local/aspnet_machinekeys_local.txt -u http://192.168.6.22:8080/ python3 ./crapsecrets/examples/cli.py -mrd 5 -avsk -fvsp -mkf ./local/aspnet_machinekeys_local.txt -mkf ./crapsecrets/resources/aspnet_machinekeys.txt -u http://192.168.6.22:8080/a1/b/c1/
## Viewstate के लिए टिप्स
- लंबे रीडायरेक्ट प्रतिक्रियाओं के विश्लेषण की अनुमति देने के लिए `-mrd 5` का उपयोग करके कमांड चलाएँ।
- सत्यापन और एन्क्रिप्शन कुंजियों के रूप में सभी कुंजी संयोजनों को आज़माने के लिए `--allviewstatekeys` या `-avsk` का उपयोग करें।
- जब URL में .aspx गायब हो तो डिफ़ॉल्ट पृष्ठों का एक सेट आज़माने के लिए `--findviewstatepage` या `-fvsp` का उपयोग करें।
## सामान्य परिवर्तन:
- requests के बजाय httpx का उपयोग करता है (परिवर्तन मुख्य रूप से AI द्वारा न्यूनतम परीक्षण के साथ किए गए हैं, इसलिए वे गलत हो सकते हैं)।
- रीडायरेक्शन में गहराई जोड़ता है (मैन्युअल रीडायरेक्ट के लिए `--max-redirect-depth` तर्क)।
- अतिरिक्त हेडर का समर्थन करता है।
- अनुरोध टाइमआउट को `--timeout` या `-t` तर्क का उपयोग करके सेट किया जा सकता है।
## Viewstate परिवर्तन:
- कुछ तार्किक परिवर्तन शामिल हैं।
- एन्क्रिप्टेड .NET 4.0 viewstates में सत्यापन कुंजी के लिए AES और 3DES की संभावना दिखाता है।
- पथ से cookieless मान हटाता है।
- .aspx के बाद पैरामीटर हटाता है।
- एकाधिक स्लैश और बैकस्लैश वर्ण हटाता है।
- सबडायरेक्ट्रीज़ में एप्लिकेशन नामों का उपयोग करने के लिए .NET4.5 तर्क में सुधार करता है।
- "MAC is not enabled" का पता लगाता है।
- लंबे रीडायरेक्ट को संभालता है जब कोई प्रतिक्रिया होती है (यह तब होता है जब रीडायरेक्ट का अनुसरण करने के लिए -r का उपयोग नहीं किया जाता है)।
- किसी अन्य ASPX पृष्ठ पर रीडायरेक्ट को संभालता है (यह तब होता है जब रीडायरेक्ट का अनुसरण करने के लिए -r का उपयोग किया जाता है)।
- जब रीडायरेक्ट के बजाय Server.Transfer का उपयोग किया जाता है तो इसे संभालता है (जनरेटर लक्ष्य से भिन्न होता है)।
- पता लगाता है कि MaxPageStateFieldLength का उपयोग किया गया है और हमारे पास __VIEWSTATEFIELDCOUNT है।
- प्रतिक्रिया में asp.net_sessionid और __antixsrftoken कुकीज़ की जाँच करने के अलावा कुछ पूर्वनिर्धारित ViewStateUserKey का समर्थन करता है।
- ASPNET4.5 में 3DES के लिए डिक्रिप्शन कुंजियों को सही ढंग से पहचानता है।
- aspnet_machinekeys.txt में सभी स्ट्रिंग्स को एक बार सत्यापन कुंजी के रूप में और एक बार डिक्रिप्शन कुंजी के रूप में जाँचने का विकल्प जोड़ना। जब हम `--allviewstatekeys` फ्लैग का उपयोग करते हैं, तो टूल सभी संभावित एन्क्रिप्शन कुंजियों को खोजने का प्रयास करता है और डेटा को डिक्रिप्ट करने के लिए प्रत्येक को यादृच्छिक क्रम में आज़माता है। चूँकि इतनी सारी कुंजियों का परीक्षण किया जाता है, किसी एकल रन पर अमान्य कुंजी से टकराने की संभावना होती है। हालाँकि, टूल हर संभावित कुंजी को सूचीबद्ध करेगा जिसका वह पता लगाता है। टूल को दो बार चलाने से, आप वैध एन्क्रिप्शन कुंजी खोजने की संभावना को काफी बढ़ा देते हैं, क्योंकि दोनों रनों में एक ही कुंजी दिखना लगभग 100% गारंटी है कि यह सही है।
- जब दिए गए URL में .aspx शामिल नहीं है तो डिफ़ॉल्ट पृष्ठों की एक सरणी का उपयोग करना: `["default.aspx", "index.aspx", "main.aspx", "home.aspx" , "start.aspx", "welcome.aspx", "default2.aspx"]` - यह परीक्षण समय को काफी बढ़ाता है लेकिन संभावित रूप से अधिक निष्कर्षों की ओर ले जा सकता है।
- यह machinekeys के लिए संसाधन फ़ाइल के रूप में `-mkf` या `--machinekeyfile` का उपयोग कर सकता है ताकि हम स्थानीय संस्करण का उपयोग कर सकें यदि इसमें संवेदनशील कुंजियाँ हों।
- यह viewstate को पार्स करते समय अधिक ऑब्जेक्ट्स का समर्थन करने के लिए python viewstate लाइब्रेरी के अनुकूलित संस्करण का उपयोग कर रहा है।
- सत्यापन कुंजी न मिलने पर भी डिक्रिप्शन कुंजी की जाँच करने के लिए `-evsd` या `--enable-viewstate-decryption` तर्क जोड़ा गया। यह तब उपयोगी हो सकता है जब सत्यापन कुंजी सूची में मूल से थोड़ी भिन्न हो।
- इसके हैश कोड की पहचान करके `__VIEWSTATEGENERATOR` की गणना करता है। यह वास्तविक पथ और ऐप पथ को जल्दी खोजने का भी प्रयास करता है यदि `__VIEWSTATEGENERATOR` और URL प्रदान किए गए हों। यह संभावित रूप से प्रदर्शन बढ़ा सकता है, खासकर जब URL से पहचान योग्य डिफ़ॉल्ट ASPX पृष्ठ गायब हो।
- उपयोगकर्ता `-nt` या `--num-threads` विकल्प के साथ उपयोग करने के लिए थ्रेड्स की संख्या निर्दिष्ट कर सकते हैं (केवल viewstate मॉड्यूल पर लागू)। डिफ़ॉल्ट 1 है जो अधिकांश मामलों में आश्चर्यजनक रूप से 10 से तेज़ है!
- इसे बिना एक्सटेंशन वाली फ़ाइलों का समर्थन करना चाहिए लेकिन हमें त्रुटियों को ठीक करने की आवश्यकता होगी क्योंकि वे रिपोर्ट की जाती हैं।
- यह IsolateApps का समर्थन करता है (.NET40 लीगेसी के लिए उपयोगी)। यह तब होता है जब सत्यापन या डिक्रिप्शन कुंजियों के बाद ",IsolateApps" होता है।
- यह https://soroush.me/blog/2019/07/iis-application-vs-folder-detection-during-blackbox-testing/ के आधार पर सक्रिय रूप से परीक्षण करके apppaths की संख्या कम करता है। इसे `-dap` या `--disable-active-path-check` द्वारा अक्षम किया जा सकता है।
- प्रतिक्रिया बॉडी में __VIEWSTATE_KEY की जाँच करें और इसे viewstatekey के रूप में भी उपयोग करें।
- सत्र आईडी या फिर एंटी-XSRF टोकन के आधार पर viewstate कुंजी में सार्वजनिक IP पता जोड़ें।
- यह __VIEWSTATE गायब होने पर __EVENTVALIDATION का उपयोग करता है।
- यह "aspnet_resource.py" नामक नए मॉड्यूल के अंतर्गत `/WebResource.axd?d=` या `/ScriptResource.axd?d=` से एन्क्रिप्टेड संसाधन मानों का उपयोग करता है। यह वहाँ भी IsolateApps सुविधा का समर्थन करता है। यह तब उपयोगी होता है जब __VIEWSTATE और __EVENTVALIDATION गायब हों।