
أداة إضافية لـ Burp Suite لتحديد ثغرات الحقن (LFI, RCE, SQLi)، ومشاكل المصادقة/التفويض، وانتهاكات الوصول HTTP 403. تدعم توليد الحمولات الديناميكية، بما في ذلك صيغة BCheck، ويمكنها إنشاء نصوص Bambdas تلقائيًا. بالإضافة إلى ذلك، توفر ميزة "نسخ كجافا سكريبت" لتحويل طلبات HTTP لتعزيز اختبار XSS.
تتخصص أداة Agartha في توليد الحمولات المتقدمة وتقييم التحكم في الوصول. وهي تحدد ببراعة الثغرات المتعلقة بهجمات الحقن، ومشكلات المصادقة/التفويض. يقوم المولد الديناميكي للحمولات بإنشاء قوائم كلمات شاملة لمتجهات الحقن المختلفة، بما في ذلك حقن SQL، وتضمين الملفات المحلية (LFI)، وتنفيذ التعليمات البرمجية عن بُعد (RCE). علاوة على ذلك، تقوم الإضافة ببناء مصفوفة وصول شاملة للمستخدم، تكشف عن انتهاكات الوصول المحتملة ومسارات تصعيد الامتيازات. كما تساعد في إجراء فحوصات تجاوز HTTP 403، مما يسلط الضوء على أخطاء تكوين المصادقة. بالإضافة إلى ذلك، يمكنها تحويل طلبات HTTP إلى كود JavaScript للمساعدة في اكتشاف مشكلات XSS بشكل أكبر.
باختصار:
إليك برنامج تعليمي صغير حول كيفية الاستخدام.
يجب تنزيل ملف 'Jython' وإعداد البيئة أولاً:
يمكنك تثبيت Agartha من خلال المتجر الرسمي:
أو للتثبيت اليدوي:
بعد كل ذلك، سترى علامة التبويب 'Agartha' في النافذة الرئيسية وسيتم تسجيلها أيضًا في القائمة المنبثقة بزر الماوس الأيمن، ضمن:
يدعم بناء جملة الملفات لكل من Unix وWindows، مما يتيح التوليد الديناميكي لقوائم الكلمات لأي مسار مطلوب. بالإضافة إلى ذلك، يمكنه محاولة تجاوز تطبيقات جدار الحماية (WAF)، باستخدام ترميزات متنوعة وتقنيات أخرى.

ينشئ قوائم كلمات ديناميكية لتنفيذ الأوامر بناءً على الأمر المقدم. يجمع بين فواصل ومنهيات مختلفة لكل من بيئات Unix وWindows.

ينشئ حمولات لأنواع مختلفة من هجمات حقن SQL، بما في ذلك الاستعلامات المكدسة، والمنطقية، والمستندة إلى UNION، والزمنية. لا يتطلب أي إدخال من المستخدم؛ ما عليك سوى تحديد أنواع هجمات SQL المطلوبة وقواعد البيانات، وسيقوم بتوليد قائمة كلمات بتوليفات مختلفة.

BCheck هو إطار عمل Burp Suite لإنشاء واستيراد فحوصات مسح مخصصة. تعمل هذه الفحوصات المحددة من قبل المستخدم جنبًا إلى جنب مع الإجراءات المضمنة في Burp Scanner، مما يتيح لك تخصيص عمليات المسح لثغرات محددة أو احتياجات اختبار. باستخدام BChecks، يمكنك توسيع قدرات المسح في Burp وتبسيط سير عملك لإجراء تقييمات أكثر تركيزًا وكفاءة. يمكنك الآن توليد الكود تلقائيًا:
يرجى العلم أنه مع زيادة حجم نص Bambdas، قد يتسبب في مشاكل في الأداء، خاصة أثناء المسح. يمكن أن تؤدي النصوص الأكبر إلى إبطاء الاستجابة، وزيادة استخدام الذاكرة، وتأخير تنفيذ المهام.
بعد النقر على زر "توليد الحمولات لـ BCheck"، سيتم نسخ كود BCheck تلقائيًا إلى الحافظة.
بعد ذلك، انتقل إلى 'Extensions > BChecks > New > Blank' من قائمة Burp Suite، والصق الكود المُنشأ.
أصبحت حمولاتك الآن مدمجة في BCheck. يمكنك إما إرسال طلبات HTTP أو مسحها ضوئيًا يدويًا، أو بدء مسح Burp الذي يتضمن ضوابط BCheck لاختبار حمولات الحقن التي تم إنشاؤها بواسطة الأداة تلقائيًا.
نصائح التحسين: يعمل الكود المُنشأ كقالب وقد يتطلب بعض التعديلات، حيث يمكن أن يختلف السلوك بين التطبيقات والخوادم المختلفة.
يمكن أن يساعد تحسين المرشحات — مثل تحديد رموز استجابة HTTP أو الكلمات الرئيسية داخل الاستجابات — في تقليل النتائج الإيجابية الخاطئة وجعل النتائج أكثر دقة وأقل ضوضاء.
يركز هذا الجزء على تحليل جلسة المستخدم وعلاقات URL لتحديد انتهاكات الوصول. تقوم الأداة بزيارة جميع عناوين URL المرتبطة بجلسات المستخدم المحددة مسبقًا بشكل منهجي وتملأ جدولاً باستجابات HTTP. بشكل أساسي، تنشئ مصفوفة وصول، تساعد في تحديد مشكلات المصادقة والتفويض. في النهاية، تكشف هذه العملية عن المستخدمين الذين يمكنهم الوصول إلى محتويات صفحة معينة.
بعض التفاصيل الإضافية:
يرجى ملاحظة أنه سيتم تصفية منهيات الجلسة المحتملة (مثل تسجيل الخروج، الخروج، إلخ) وأنواع ملفات محددة (مثل CSS، الصور، JavaScript، إلخ) من كل من 'العنكبوت' وقائمة URL الخاصة بالمستخدم.
بعد النقر على 'تشغيل'، ستقوم الأداة بملء مصفوفة المستخدم و URL بألوان مختلفة. بالإضافة إلى الألوان الخاصة بالمستخدم، سترى خلايا حمراء وبرتقالية وصفراء تشير إلى مشكلات وصول محتملة.
المهمة التي بين أيدينا تتضمن عملية جماعية، ومن الجدير بالذكر طرق طلبات HTTP التي سيتم استخدامها. توفر الأداة ثلاثة خيارات مختلفة لإجراء مكالمات HTTP:
رمز حالة HTTP 403 الممنوع يشير إلى أن الخادم يفهم الطلب ولكنه يرفض تفويضه. بشكل أساسي، يعني 'أنا أعرف من أنت، لكن ليس لديك الإذن للوصول إلى هذا المورد.' غالبًا ما تشير هذه الحالة إلى مشكلات مثل 'صلاحيات غير كافية'، 'مصادقة مطلوبة'، 'قيود IP'، إلخ.
تعالج الأداة خطأ الوصول الممنوع الشائع باستخدام تقنيات متنوعة، مثل معالجة URL وتعديل رأس الطلب. تهدف هذه الاستراتيجيات إلى تجاوز قيود الوصول واسترداد المحتوى المطلوب.
من الجدير بالذكر حالتين مختلفتين للاستخدام:
هناك طريقتان يمكنك من خلالهما إرسال طلبات HTTP إلى الأداة.
تنتمي الصفحة التي نهدف إلى الوصول إليها إلى مجموعة مستخدمين مميزة، ونحتفظ بمعرفات الجلسة الخاصة بنا للتحقق مما إذا كان تصعيد الامتيازات ممكنًا.
ببساطة، النقر على زر 'تشغيل' سينفذ المهمة.
يوضح الشكل أدناه أنه قد يكون هناك مشكلة وصول في URL، حيث يشير اللون 'الأحمر' إلى تحذير.
يرجى ملاحظة أن عدد المحاولات يتوقف على عنوان URL المستهدف المحدد.
تمكن هذه الميزة من تحويل طلبات HTTP إلى كود JavaScript، والتي يمكن أن تكون مفيدة بشكل خاص لتجاوز ثغرات XSS وتجاوز قيود الرأس.
لاستخدام هذه الميزة، ما عليك سوى النقر بزر الماوس الأيمن على أي طلب HTTP واختيار 'Extensions > Agartha > Copy as JavaScript'.
سيتم حفظها تلقائيًا في الحافظة، بما في ذلك بعض الملاحظات الإضافية للرجوع إليها. على سبيل المثال:``` Http request with minimal parameters:
Http request with header fields:
يرجى ملاحظة أن كود JavaScript سيتم تنفيذه ضمن جلسة المستخدم الأصلية، مع تعبئة العديد من حقول الرأس تلقائيًا بواسطة المتصفح. ومع ذلك، في بعض الحالات، قد يطلب الخادم حقول رأس إلزامية محددة. على سبيل المثال، قد تفشل بعض الطلبات إذا كان 'Content-Type' غير صحيح. لذلك، قد تحتاج إلى تعديل الكود لضمان التوافق مع متطلبات الخادم.
<br/><br/>
## مُولّد أكواد Bambdas
Bambdas هي نصوص برمجية خفيفة تعمل مباشرة داخل Burp Suite، مما يسمح للمستخدمين بتخصيص وأتمتة المهام المختلفة بسرعة. يمكن استخدامها لتحديد قواعد مطابقة واستبدال مخصصة، أو إضافة أعمدة ديناميكية في الجداول، أو تطبيق مرشحات، أو تخصيص الواجهة لتناسب سير عمل الاختبار بشكل أفضل.
<img width="1000" alt="مُولّد أكواد Bambdas" src="https://assets.kitploit.com/production/public/readmes/5162/1f24e30531216aea02630b65422c79753e12e44148338735a51450ba4d42be03.png">
توضيحات، المزيد من التفاصيل:
1. بخصوص واجهة إنشاء النص البرمجي، يمكنك تحديد الإعدادات العامة هنا. على سبيل المثال:
- معالجة عناوين النطاق المحدد فقط أو جميع عناوين النطاقات.
- إخفاء أنواع معينة من امتدادات الملفات أو عدم إخفائها.
- ألوان لعناوين URL المحددة في قسم النطاق، الموجود في الجزء الأول من المجموعة 3.
- ألوان لعناوين URL التي تم اختبارها بالفعل، موجودة في الجزء الثاني من المجموعة 3.
- ألوان للمرشحات المحددة بشكل أساسي في المجموعة 2.
- عدد الأيام الماضية لعرضها.
- عدد الأيام الماضية التي سيعالجها النص البرمجي.
2. الخيارات في القسم الثاني تتعلق بشكل أساسي بمعالجة طلبات واستجابات HTTP:
- يوفر خيارات لتحديد ما إذا كان معيار البحث يجب تطبيقه على عنوان URL أو الطلب أو الاستجابة. سيؤدي اختيار أي من هذه الخيارات إلى تفعيل الخيارات المقابلة أدناه. على سبيل المثال، إذا كنت تريد البحث عن 'وظائف JavaScript الضعيفة'، فلن يكون ذلك ممكنًا إلا في استجابات HTTP.
- خيار لإخفاء طرق HTTP محددة.
- يتم البحث عن "تعليقات HTML"، و"امتدادات الملفات القابلة للتنزيل"، و"وظائف JS الضعيفة" بشكل عام ضمن استجابات HTTP.
- يمكن تطبيق بحث "الكلمات المفتاحية القيمة" على عناوين URL والطلبات والاستجابات.
- يمكن البحث عن "معرّفات مشبوهة بـ SQLi، معرّفات مشبوهة بـ XSS، معرّفات مشبوهة بـ LFI، معرّفات مشبوهة بـ SSRF، معرّفات مشبوهة بـ Open Redirect، معرّفات مشبوهة بـ RCE" في عناوين URL أو الطلبات. على عكس "الكلمات المفتاحية القيمة" التي تبحث في النص الحر، تكتشف هذه الخيارات المعلمات بشكل محدد.
3. الخيارات في القسم الثالث مخصصة بشكل أساسي لتحديد النطاق، وعناوين URL التي تم اختبارها بالفعل، وعناوين URL التي تريد إخفاءها.
- يمكنك تحديد عناوين URL المراد اختبارها في قسم "تعريف نطاق الاختبار". إذا أدخلت /، فسيتم اعتبار التطبيق بأكمله ضمن النطاق؛ إذا أضفت مسارًا محددًا مثل /users، فسيتم تضمين هذا الدليل ومحتوياته فقط. ينطبق خيار "لون نطاق الاختبار" على هذا القسم.
- يحتوي قسم "عناوين URL التي تم اختبارها بالفعل" على قائمة عناوين URL التي تم اختبارها بالفعل. ينطبق خيار "لون العناصر المختبرة" هنا.
- يحتوي قسم "عناوين URL المحظورة (القائمة السوداء)" على عناوين URL التي ترغب في إخفائها من سجل الوكيل.
**أمثلة على التعريفات**:
- /
- المسار الجذر — يشمل كل شيء.
ملاحظة: بالإضافة إلى تعريفات النطاق المختبر والمختبر، يمكن تطبيقه أيضًا في قسم عناوين URL المحظورة، حيث يستبعد كل شيء ما لم يتم تعريف معيار تطابق.
- /portal/users
- يشمل هذا المسار ومساراته الفرعية تحديدًا، على سبيل المثال:
- /portal/users?id=1
- /portal/users/?id=1
- /portal/users/dashboard
- /admin/\*/users/\*/class
- تعمل العلامة النجمية (*) كعنصر نائب للمعرفات UUIDs، وما إلى ذلك، وسيتم تضمين باقي المسار.
- /api/v\*/user
- تعمل العلامة النجمية (*) كحرف بدل يطابق أي تسلسل من الأحرف يتبع **v**، حتى '/' التالية، على سبيل المثال:
- /api/v1/user
- /api/v2/user
- /health-check
- يشمل هذا المسار ومساراته الفرعية تحديدًا، على سبيل المثال:
- /health-check
- /health-check/Monitor
- /health-check/?Level=Info
4. أخيرًا، القسم الرابع هو المكان الذي يتم فيه عرض النص البرمجي الذي تم إنشاؤه بالضغط على زر "Run"، ويكون النص الآن جاهزًا للاستخدام. بشكل عام، يمكن إضافة هذا النص البرمجي بطريقتين مختلفتين:
- مؤقت (على أساس المشروع): من قائمة التطبيق، اذهب إلى Proxy > HTTP History > Bambda Mode > Apply & Close.
- دائم (على مستوى التطبيق): من قائمة التطبيق، اذهب إلى Extensions > Bambda Library > New > Blank > View filter + HTTP history > Save & Close.
**يرجى ملاحظة**: تفعيل جميع الخيارات، خاصة للمشاريع الكبيرة، قد يؤدي إلى استخدام كبير لموارد النظام وزيادة وقت المعالجة. إذا لم يكتمل النص البرمجي الذي أنشأته في غضون وقت معقول، فقد يكون من المفيد مراجعته.
<img width="1000" alt="مُولّد أكواد Bambdas" src="https://assets.kitploit.com/production/public/readmes/5162/cb116ad18bc53ebf770b5bc1cb2b920cc9ef3a4569fab9b12d5fb9979823a58c.png">
**أولوية الخيارات**: أعلى أولوية هي 'لون العناصر المختبرة'، يليه 'لون نطاق الاختبار'، وأخيرًا 'لون المعلمات/الكلمات المفتاحية'.
يوضح الشكل أعلاه ما يلي:
- **الوردي** يشير إلى نطاق الاختبار (الجزء الأول من المجموعة 3).
- **الأصفر** يمثل النطاق المختبر (الجزء الثاني من المجموعة 3).
- **السماوي** يبرز التطابقات لمعايير البحث (المجموعة 2). بالإضافة إلى ذلك، يمكنك رؤية المعيار الذي تمت المطابقة معه في قسم 'ملاحظات' (Notes) لكل استدعاء HTTP.
إذا قمت لاحقًا بتحديث أو تعديل نص برمجي تم إنشاؤه بالفعل، فهناك بعض النقاط المهمة التي يجب وضعها في الاعتبار:
- إذا قمت بتعيين النص البرمجي كدائم (على مستوى التطبيق)، فستحتاج إلى إعادة تحميله باتباع الخطوات التالية:
وضع النص البرمجي Bambda > تحميل (Load)
<img width="800" alt="مُولّد أكواد Bambdas" src="https://assets.kitploit.com/production/public/readmes/5162/5a840779ef9b2df5ac22e94d8ebf6771a677d5d45d49f35cae6f4b3a2e820cd2.png">
- إذا كنت تستخدم النص البرمجي كمؤقت (على أساس المشروع)، فلديك بشكل عام خياران:
1. إذا كنت تريد أن يصبح النص البرمجي المعدل نشطًا من تلك النقطة فصاعدًا، فلا حاجة لخطوات إضافية—فقط انقر على تطبيق (Apply).
2. إذا كنت تريد أن يقوم النص البرمجي المعدل بمعالجة سجل الوكيل بالكامل، يجب عليك إما إعادة تفعيل وضع Bambda، أو تبديل المعامل المنطقي resetScreen داخل النص البرمجي:
```
// 'true' يمسح الألوان/الملاحظات
// 'false' ينفذ النص البرمجي
boolean resetScreen = false; // or true
```
<img width="800" alt="مُولّد أكواد Bambdas" src="https://assets.kitploit.com/production/public/readmes/5162/cf2dac03f0dd6f1db5d8950b0162eda9e18862b1fb9da7a57f4cc119ec233c57.png">
<br/><br/>
[رابط تعليمي آخر](https://www.linkedin.com/pulse/agartha-lfi-rce-auth-sqli-http-js-volkan-dindar)