Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
anubis-fetch — مثل curl، لكنه يتجاوز جدران الحماية من البوتات الخاصة بـ Anubis وCloudflare. | Kitploit
أدوات/GitHubGitHub/fzakaria/anubis-fetch
البرمجة النصية والأتمتةتجاوز WAFأمن الويبالأدوات والمكوناتمكافحة الروبوتاتانتحال البصمة الرقمية
GitHubfzakaria/anubis-fetch

anubis-fetch

مثل curl، لكنه يتجاوز جدران الحماية من البوتات الخاصة بـ Anubis وCloudflare.

عرض المستودع
30159منذ 21 أيامتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة

anubis-fetch

Built with Nix CI License: MIT

$ nix run github:fzakaria/anubis-fetch -- --text https://lore.kernel.org/

أداة CLI مكتوبة بلغة Go لجلب عناوين URL المحمية بتحديات إثبات العمل (proof-of-work) الخاصة بـ Anubis. تحل تحديات SHA-256 القديمة وتحديات WASM داخل العملية نفسها، مع استخدام Chromium بدون واجهة رسومية كخيار احتياطي.

تستخدم مواقع مثل lore.kernel.org و kernel.org نظام Anubis لفرض إثبات العمل قبل تقديم الصفحة. قد يتلقى عميل HTTP العادي صفحة التحدي بدلاً من المحتوى المطلوب. تقوم anubis-fetch بحل التحدي، وإرسال الإجابة، وكتابة الصفحة الناتجة إلى stdout.

كيف تعمل

  1. إعادة استخدام ملف تعريف ارتباط محفوظ. يصدر Anubis ملف تعريف ارتباط للمصادقة بعد نجاح التحدي. تحفظ الأداة ملفات تعريف الارتباط لكل مضيف وترسلها في الطلبات اللاحقة.
  2. حل إثبات العمل داخل العملية نفسها. يستخدم عميل HTTP مكتبة req لانتحال بصمة TLS و HTTP/2 الخاصة بـ Chrome. قد يساعد ذلك في تجاوز فحوصات الروبوتات السلبية، بما في ذلك فحوصات Cloudflare. بالنسبة لطريقتي Anubis fast و slow، تحسب الأداة قيمة nonce وترسل الإجابة مباشرة. بالنسبة لطرق WASM وهي sha256 و argon2id و hashx، تقوم بتنزيل وحدة الموقع وتشغيلها في Go باستخدام wazero.
  3. اللجوء إلى المتصفح. يعمل Chromium بدون واجهة رسومية، بقيادة chromedp، على تشغيل كود التحدي الذي يقدمه الموقع.

يتعامل الخيار الاحتياطي للمتصفح مع طريقتي Anubis preact و metarefresh، وصفحات تحديات Cloudflare (الاستجابات التي تحتوي على cf-mitigated: challenge). تلجأ الأداة أيضاً إلى الخيار الاحتياطي عندما تتجاوز صعوبة SHA-256 القديمة حدها، أو عند فشل تنفيذ WASM أو انتهاء مهلته، أو عند رفض Anubis للحل. استخدم --browser للبدء بـ Chromium، أو --no-browser لفرض مسار HTTP. تعمل طرق WASM الثلاث جميعها مع --no-browser.

لماذا لا نستخدم المتصفح لكل شيء؟

يتجنب الحل الأصلي تشغيل عملية متصفح لكل عملية جلب. لا يزال Chromium مضمنًا في حزمة Nix للتحديات التي تحتاج إلى الخيار الاحتياطي.

أوقات الجلب التقريبية لمسار SHA-256 الأصلي:

المسارالوقت الفعلييحتاج Chromium
حل SHA-256 داخل العملية~0.6sلا
الخيار الاحتياطي للمتصفح~2.0sنعم

أوقات جلب WASM مقابل خادم Anubis محلي عند الصعوبة 2:

طريقة WASMالوسيط الزمني الفعلييحتاج Chromium
SHA-256~0.025sلا
Argon2id~0.55s-2.33sلا
HashX~0.041sلا

إثبات العمل في Anubis، باختصار

بالنسبة لطريقتي fast و slow، يضمّن Anubis التحدي في الصفحة:

{"rules":{"algorithm":"fast","difficulty":4},
 "challenge":{"id":"...","method":"fast","randomData":"6214bd88...","difficulty":4}}

يبحث الحل عن قيمة nonce بحيث تبدأ hex(sha256(randomData || nonce)) بعدد من الأصفار يساوي difficulty. يتم ترميز قيمة nonce كسلسلة عشرية. تُرسل الإجابة إلى Anubis:

GET /.within.website/x/cmd/anubis/api/pass-challenge?id=...&response=<hash>&nonce=<n>&redir=<url>&elapsedTime=<ms>

تؤدي الاستجابة الناجحة إلى تعيين ملف تعريف ارتباط للمصادقة وإعادة التوجيه إلى الصفحة المطلوبة. تتطلب الصعوبة 4 حوالي 65,536 عملية تجزئة في المتوسط.

تحديات WASM

بالنسبة لـ sha256 و argon2id و hashx، يقدم Anubis وحدة WebAssembly تنفذ إثبات العمل. تقوم anubis-fetch بتنزيل الوحدة، وفك ترميز بيانات التحدي السداسية عشرية إلى بايتات، وتمرير البيانات والصعوبة إلى الوحدة. تبحث الوحدة عن قيمة nonce وتعيد قيمة nonce والتجزئة لإرسالهما إلى نفس نقطة النهاية أعلاه.

تعمل الوحدة داخل عملية Go باستخدام wazero، لذا تعمل هذه الطرق مع --no-browser. للتنفيذ حدود للذاكرة والوقت. تحدد الوحدة قواعد الصعوبة؛ أرقام صعوبة WASM ليست قابلة للمقارنة مباشرة بطريقة SHA-256 القديمة.

التثبيت

التشغيل مباشرة:

$ nix run github:fzakaria/anubis-fetch -- <url>

أو أضف المدخل إلى flake الخاص بك:

{
  inputs.anubis-fetch.url = "github:fzakaria/anubis-fetch";
}

أضف inputs.anubis-fetch.packages.${system}.default إلى home.packages أو environment.systemPackages.

الاستخدام

anubis-fetch [flags] URL
العلمالتأثير
--textتحويل HTML إلى نص عادي
--timeout MSتعيين المهلة الزمنية لكل خطوة بالمللي ثانية؛ الافتراضي 30000
--ua STRINGتعيين User-Agent
--browserاستخدام Chromium مباشرة
--no-browserالخروج بالرمز 3 إذا احتاج حل HTTP إلى الخيار الاحتياطي للمتصفح
--no-cacheتعطيل قراءة وكتابة ملفات تعريف الارتباط المحفوظة
--help, -hطباعة الاستخدام والخروج
# HTML to stdout
anubis-fetch https://lore.kernel.org/

# Plain text
anubis-fetch --text https://lore.kernel.org/

# Require the HTTP path; check for exit status 3
anubis-fetch --no-browser https://lore.kernel.org/

استمرارية ملفات تعريف الارتباط

تُحفظ ملفات تعريف الارتباط لكل مضيف في $XDG_CACHE_HOME/anubis-fetch/cookies/<host>.json، أو ~/.cache/anubis-fetch/cookies/<host>.json عندما لا يكون XDG_CACHE_HOME معينًا. قد يسمح ملف تعريف ارتباط مصادقة صالح للطلبات اللاحقة بتخطي التحدي. تُحفظ أيضاً ملفات تعريف الارتباط التي تم الحصول عليها عبر Chromium، إلى جانب User-Agent الخاص بـ Chromium. لا تحترم Cloudflare cf_clearance إلا تحت User-Agent الذي حصل عليها، لذا ترسل طلبات HTTP اللاحقة إلى ذلك المضيف User-Agent المحفوظ ما لم يتجاوزه --ua.

استخدم --no-cache للجلب دون ملفات تعريف ارتباط محفوظة، أو احذف ملف المضيف للتخلص منها. يتطلب ملف تعريف الارتباط المنتهي أو المرفوض تحديًا جديدًا.

التطوير

$ nix develop          # Go, gopls, Chromium, treefmt
$ go test ./...        # Go unit tests
$ nix build            # Packaged CLI
$ nix flake check      # Builds, tests, and formatting
$ nix fmt              # Format Go and Nix

التبعيات

  • TecharoHQ/anubis: خادم التحدي.
  • imroc/req: عميل HTTP مع انتحال Chrome.
  • chromedp/chromedp: مشغل Chromium.
  • tetratelabs/wazero: بيئة تشغيل WebAssembly لـ Go.
تنزيل الأداة