httpx
أداة فحص بروتوكول HTTP متعددة الأغراض، تعمل على تحديد الحالات النشطة واستخراج عناوين الصفحات والتقنيات المستخدمة ورموز الحالة والمنافذ المفتوحة.
httpx — الدليل الشامل لمسبار الويب المتعدد
تُعد أداة httpx (من تطوير ProjectDiscovery، وهي ليست مكتبة بايثون التي تحمل الاسم نفسه) بمثابة "السكين السويسري" لفحص بروتوكول HTTP. تقوم الأداة باستقبال قائمة من المضيفات (Hosts) أو الروابط (URLs) وتعيد بيانات غنية لكل منها: الحالة، العنوان (Title)، التقنيات المستخدمة، عنوان IP، الشهادات الرقمية، المنافذ، طول المحتوى، التحويلات، وغيرها الكثير.
التثبيت (Install)
[!warning] تنبيه: هناك أداتان باسم "httpx" مكتبة
httpxالخاصة بلغة Python هي بديل لمكتبةrequests؛ أماhttpxالخاصة بـ ProjectDiscovery فهي أداة سطر أوامر (CLI). يتشاركان الاسم نفسه، وقد استغل البعض هذا للتمويه — تأكد من مسار الأداة عبر أمرwhich httpx؛ يجب أن يشير إلى ملف Go ثنائي، وليس إلى مسار بايثون المحلي.
مرجع المعاملات (Parameter reference)
المدخلات (Input)
| الوسم | الغرض |
|---|---|
-l <file> | قائمة الأهداف (هدف واحد لكل سطر) |
-u <url> | رابط واحد فقط |
| stdin | استقبال البيانات عبر الأنابيب من subfinder أو amass |
عمليات الفحص (Probing)
| الوسم | الغرض |
|---|---|
-ports <list> | فحص هذه المنافذ (الافتراضي 80, 443) |
-x <methods> | طرق HTTP المستخدمة (GET, POST, OPTIONS) |
-follow-redirects | تتبع عمليات إعادة التوجيه (3xx) |
-max-redirects <n> | تحديد أقصى عمق لإعادة التوجيه |
-timeout <sec> | مهلة الطلب الواحد بالثواني |
-rl <int> | تحديد معدل الطلبات العالمي (طلب/ثانية) |
-t <int> | عدد الخيوط (Threads) (الافتراضي 50) |
تفاصيل المخرجات (Output detail)
| الوسم | الإضافة البرمجية |
|---|---|
-title | عنوان الصفحة <title> |
-tech-detect | بصمة التقنيات المستخدمة (مثل Wappalyzer) |
-status-code | رمز حالة HTTP |
-content-length | حجم جسم الاستجابة |
-server | ترويسة الخادم (Server header) |
-favicon | هاش mmh3 للأيقونة المفضلة (Favicon) |
-jarm | بصمة JARM TLS |
-ip | عنوان IP المستخرج |
-cdn | تحديد مزود خدمة الـ CDN |
-tls-grab | استخراج تفاصيل الشهادة الرقمية |
تنسيق المخرجات (Output format)
| الوسم | الغرض |
|---|---|
-o <file> | نص عادي |
-json | سطر JSON واحد لكل مضيف |
-csv | ملف CSV |
-silent | وضع الصمت (بدون شعار الأداة) |
التصفية (Filtering)
| الوسم | الغرض |
|---|---|
-mc <codes> | مطابقة رموز الحالة (200,301) |
-fc <codes> | تصفية (استبعاد) رموز الحالة |
-ml <int> | مطابقة عدد الأسطر |
-ms <regex> | مطابقة نص محدد في جسم الاستجابة |
-cdn/-no-cdn | التصفية بناءً على وجود خدمة CDN من عدمها |
سيناريوهات العمل (Workflows)
إيجاد المضيفات النشطة بعد تعداد النطاقات الفرعية
فحص منافذ إضافية غير اعتيادية
التتبع عبر أيقونة الموقع (Favicon) لاكتشاف لوحات التحكم المسربة
إزالة التكرار للصفحات المتشابهة
تحليل النتائج
https://api.target.gov [200] [API Gateway] [nginx/1.21] [13.59.234.10] [AS16509]
https://staging.target.gov [403] [WordPress 5.8]
https://vpn.target.gov [200] [Fortinet SSL VPN] [Fortinet]
https://old.target.gov [301] -> https://new.target.gov [200]
يُفضل دائماً استخدام تنسيق JSON عند ربط النتائج بأدوات أخرى، حيث يتحول كل عمود أعلاه إلى حقل (Field) داخل الكائن.
تشخيص الأخطاء الشائعة (Troubleshooting)
| العرض | السبب | الحل |
|---|---|---|
ظهور رسائل i/o timeout بكثرة | وجود WAF يحظر عنوان IP الخاص بك | قلل معدل الطلبات -rl؛ استخدم بروكسي |
| عدم ظهور التقنيات (Tech detect) | عدم تفعيل الوسم أو تجريد HTML | تأكد من إضافة -tech-detect؛ بعض المواقع تحتاج لـ katana لتصيير JS |
| تكرار المضيف نفسه 10 مرات | القائمة تحتوي على تكرار | مرر القائمة عبر sort -u أولاً |
| رمز الحالة 000 | فشل في مصافحة TLS (بروتوكول قديم أو شهادة ذاتية) | أضف -tls-grab لمعرفة السبب؛ جرب -disable-redirects |
منظور المدافع (Defender's perspective)
يعتبر نشاط الأداة فحصاً نشطاً (Active Scan)، وسيظهر في سجلات الوصول كالتالي:
- موجات من طلبات HEAD/GET للمسار الرئيسي
/من IP واحد. - ترويسة User-Agent الافتراضية:
Mozilla/5.0 (compatible; httpx)(سهلة الاكتشاف جداً). - محاولات اتصال TLS بمنافذ غير معتادة (
-ports 8080, 8443).
أفكار للاكتشاف:
- مطابقة سلسلة الـ UA الخاصة بـ
httpxفي أنظمة الحماية. - التنبيه عند رصد أنماط التعداد: قيم SNI متتابعة وسريعة من عنوان IP واحد.
ملاحظات أمن العمليات (OPSEC)
- الـ User-Agent الافتراضي يصرخ "أنا أداة فحص". استخدم
-H "User-Agent: Mozilla/5.0 ..."للتمويه. - قم بتشغيل الفحص من عناوين IP نظيفة؛ بمجرد وسم عنوانك كخبيث، ستقوم خدمات مثل Cloudflare بتعميم هذا الحظر.
- في المهمات الحساسة، استخدم معدل طلبات هادئ مثل
-rl 50مع-t 50بدلاً من القيم الافتراضية العالية.
أدوات ذات صلة
| الأداة | التخصص |
|---|---|
| katana | زاحف ويب (Crawler) يدعم JavaScript من المطور نفسه |
| gowitness | لإضافة لقطات شاشة (Screenshots) للنتائج |
| nuclei | لفحص الثغرات بناءً على القوالب بعد إيجاد المضيفات النشطة |
| ffuf | لفحص المسارات (Dirbusting) بعد تحديد المضيف النشط |