Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
smuggler — أداة اختبار تهريب طلبات HTTP وعدم التزامن مبنية على بايثون، تكتشف ثغرات CL.TE و TE.CL باستخدام حمولات تحوير قابلة للتكوين ومسح تلقائي. | Kitploit
أدوات/GitHubGitHub/defparam/smuggler
ماسحات الثغرات الأمنيةاستغلال تطبيقات الويبأمن الويباختبار الاختراق
GitHubdefparam/smuggler

smuggler

أداة اختبار تهريب طلبات HTTP وعدم التزامن مبنية على بايثون، تكتشف ثغرات CL.TE و TE.CL باستخدام حمولات تحوير قابلة للتكوين ومسح تلقائي.

عرض المستودع
2.1k3269منذ 5 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
root@kitploit:~
  ______                         _              
 / _____)                       | |             
( (____  ____  _   _  ____  ____| | _____  ____ 
 \____ \|    \| | | |/ _  |/ _  | || ___ |/ ___)
 _____) ) | | | |_| ( (_| ( (_| | || ____| |    
(______/|_|_|_|____/ \___ |\___ |\_)_____)_|    
                    (_____(_____|               

     @defparam

Smuggler

أداة اختبار تهريب طلبات HTTP / عدم التزامن مكتوبة بلغة Python 3

شكر وتقدير

شكر خاص لـ James Kettle على أبحاثه وطرقه في مجال عدم التزامن HTTP

وشكر خاص أيضًا لـ Ben Sadeghipour على اختبار Smuggler في المرحلة التجريبية وعلى السماح لي بعرض عملي في Nahamcon 2020

مهم

لا تضمن هذه الأداة عدم وجود نتائج إيجابية خاطئة أو سلبية خاطئة. مجرد أن طفرة ما تُظهر نتيجة "موافق" لا يعني عدم وجود مشكلة عدم التزامن، ولكن الأهم من ذلك، مجرد أن الأداة تشير إلى وجود مشكلة عدم التزامن محتملة لا يعني بالضرورة وجودها بالفعل. قد يواجه السكريبت معالجات طلبات من جهات كبيرة (مثل Google/AWS/Yahoo/Akamai/إلخ) قد تظهر نتائج إيجابية خاطئة.

التثبيت

  1. git clone https://github.com/defparam/smuggler.git
  2. cd smuggler
  3. python3 smuggler.py -h

مثال للاستخدام

مضيف واحد:

root@kitploit:~
python3 smuggler.py -u <URL>

قائمة بالمضيفين:

root@kitploit:~
cat list_of_hosts.txt | python3 smuggler.py

الخيارات

root@kitploit:~
usage: smuggler.py [-h] [-u URL] [-v VHOST] [-x] [-m METHOD] [-l LOG] [-q]
                   [-t TIMEOUT] [--no-color] [-c CONFIGFILE]

optional arguments:
  -h, --help            show this help message and exit
  -u URL, --url URL     Target URL with Endpoint
  -v VHOST, --vhost VHOST
                        Specify a virtual host
  -x, --exit_early      Exit scan on first finding
  -m METHOD, --method METHOD
                        HTTP method to use (e.g GET, POST) Default: POST
  -l LOG, --log LOG     Specify a log file
  -q, --quiet           Quiet mode will only log issues found
  -t TIMEOUT, --timeout TIMEOUT
                        Socket timeout value Default: 5
  --no-color            Suppress color codes
  -c CONFIGFILE, --configfile CONFIGFILE
                        Filepath to the configuration file of payloads

يتطلب Smuggler كحد أدنى إما عنوان URL عبر الوسيط -u/--url أو قائمة عناوين URL يتم إدخالها عبر stdin. إذا كان عنوان URL يحدد https://، فسيتصل Smuggler بالمضيف:المنفذ باستخدام SSL/TLS. وإذا كان عنوان URL يحدد http://، فلن يتم استخدام SSL/TLS على الإطلاق. إذا تم تحديد المضيف فقط، فسيعود السكريبت إلى https:// كإعداد افتراضي.

استخدم -v/--vhost <host> لتحديد رأس مضيف مختلف عن عنوان الخادم

استخدم -x/--exit_early للخروج من فحص خادم معين عند العثور على مشكلة محتملة. في وضع الأنابيب (piped mode)، سيواصل Smuggler إلى المضيف التالي في القائمة

استخدم -m/--method <method> لتحديد فعل HTTP مختلف عن POST (مثل GET/PUT/PATCH/OPTIONS/CONNECT/TRACE/DELETE/HEAD/إلخ)

استخدم -l/--log <file> لكتابة المخرجات إلى ملف بالإضافة إلى stdout

استخدم -q/--quiet لتقليل الإسهاب وتسجيل المشكلات التي تم العثور عليها فقط

استخدم -t/--timeout <value> لتحديد مهلة socket. يجب أن تكون القيمة عالية بما يكفي لاستنتاج أن socket معلقة، ولكن منخفضة بما يكفي لتسريع الاختبار (الافتراضي: 5)

استخدم --no-color لقمع رموز الألوان المطبوعة على stdout (السجلات لا تتضمن رموز ألوان بشكل افتراضي)

استخدم -c/--configfile <configfile> لتحديد ملف تكوين طفرات Smuggler الخاص بك (الافتراضي: default.py)

ملفات التكوين

ملفات التكوين هي ملفات بايثون موجودة في دليل ./config الخاص بـ Smuggler. تصف هذه الملفات محتوى طلبات HTTP والطفرات في ترميز النقل (transfer-encoding) المراد اختبارها.

فيما يلي المحتوى النموذجي لـ default.py:

root@kitploit:~
def render_template(gadget):
	RN = "\r\n"
	p = Payload()
	p.header  = "__METHOD__ __ENDPOINT__?cb=__RANDOM__ HTTP/1.1" + RN
	# p.header += "Transfer-Encoding: chunked" +RN	
	p.header += gadget + RN
	p.header += "Host: __HOST__" + RN
	p.header += "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.87 Safari/537.36" + RN
	p.header += "Content-type: application/x-www-form-urlencoded; charset=UTF-8" + RN
	p.header += "Content-Length: __REPLACE_CL__" + RN
	return p


mutations["nameprefix1"] = render_template(" Transfer-Encoding: chunked")
mutations["tabprefix1"] = render_template("Transfer-Encoding:\tchunked")
mutations["tabprefix2"] = render_template("Transfer-Encoding\t:\tchunked")
mutations["space1"] = render_template("Transfer-Encoding : chunked")

for i in [0x1,0x4,0x8,0x9,0xa,0xb,0xc,0xd,0x1F,0x20,0x7f,0xA0,0xFF]:
	mutations["midspace-%02x"%i] = render_template("Transfer-Encoding:%cchunked"%(i))
	mutations["postspace-%02x"%i] = render_template("Transfer-Encoding%c: chunked"%(i))
	mutations["prespace-%02x"%i] = render_template("%cTransfer-Encoding: chunked"%(i))
	mutations["endspace-%02x"%i] = render_template("Transfer-Encoding: chunked%c"%(i))
	mutations["xprespace-%02x"%i] = render_template("X: X%cTransfer-Encoding: chunked"%(i))
	mutations["endspacex-%02x"%i] = render_template("Transfer-Encoding: chunked%cX: X"%(i))
	mutations["rxprespace-%02x"%i] = render_template("X: X\r%cTransfer-Encoding: chunked"%(i))
	mutations["xnprespace-%02x"%i] = render_template("X: X%c\nTransfer-Encoding: chunked"%(i))
	mutations["endspacerx-%02x"%i] = render_template("Transfer-Encoding: chunked\r%cX: X"%(i))
	mutations["endspacexn-%02x"%i] = render_template("Transfer-Encoding: chunked%c\nX: X"%(i))

لا توجد وسائط إدخال بعد لتحديد رؤوس ووكلاء مستخدم مخصصين. يُوصى بإنشاء ملف التكوين الخاص بك بناءً على default.py وتعديله حسب رغبتك.

يأتي Smuggler مزودًا بـ 3 ملفات تكوين: default.py (سريع)، doubles.py (متخصص، بطيء)، exhaustive.py (بطيء جدًا) default.py هو الأسرع لأنه يحتوي على طفرات أقل.

حدد ملفات التكوين باستخدام وسيط سطر الأوامر -c/--configfile <configfile>

دليل الحمولات

يوجد داخل دليل Smuggler دليل payloads. عندما يجد Smuggler مشكلة CLTE أو TECL محتملة، فإنه يقوم تلقائيًا بإيداع ملف نصي ثنائي للحمولة المشكلة في دليل payloads. جميع أسماء ملفات الحمولات مُعلَّقة باسم المضيف ونوع عدم التزامن ونوع الطفرة. استخدم هذه الحمولات للاتصال المباشر بالخادم باستخدام netcat أو لاستيرادها إلى أدوات تحليل أخرى.

البرامج النصية المساعدة

بعد العثور على مشكلة عدم التزامن، لا تتردد في استخدام البرامج النصية لـ Turbo Intruder الخاصة بي والموجودة هنا: https://github.com/defparam/tiscripts يُعد DesyncAttack_CLTE.py و DesyncAttack_TECL.py برامج نصية ممتازة للمساعدة في إعداد هجوم عدم التزامن

الترخيص

هذه البرامج النصية مُصدَرة بموجب رخصة MIT. راجع LICENSE.

تنزيل الأداة