ذكاء هادئ. طريقة لتحديد نقاط الضعف المحتملة WEB

تعليق


هذا الدليل مخصص للمبتدئين الذين لا يزال لديهم الحد الأدنى من المعرفة بأمن المعلومات. أحاول تشجيع الشباب الذين لديهم الكثير من الوقت والذين يرغبون في القيام بشيء مثمر.

مقدمة


كما تعلمون بالفعل ، هناك العديد من المواقع الوسيطة التي تعمل مع الشركات لزيادة فعالية برنامج Bug Bounty ، بما في ذلك:

  • hackerone.com
  • bugcrowd.com
  • intigriti.com
  • yeswehack.com
  • openbugbounty.org
  • synack.com (بريفا)

كيف يعمل؟


  • تبحث عن نقاط الضعف
  • نكتب الخطوات المتخذة لاستغلال الضعف
  • يلقي قبالة هذا التقرير التكنولوجيا. دعم.
  • نحصل على عملة معدنية.

ماذا نحتاج لهذا؟


VPS ، ويفضل أن يكون Debian (قد يتم استخدام الآخرين) + اتصال إنترنت جيد (أقوم باستقباله من alexhost.com ، وذاكرة وصول عشوائي (VPS 1.5 GB) و 1 Core و 10GB SSD مقابل 11 يورو فقط في السنة).

  • sublist3r
  • httprobe
  • webscreenshot
  • استجابة الرأس
  • النسبي رابط-مستخرج
  • jsfiles النازع

تحديد التفضيلات


كتبت نصيًا صغيرًا لتسهيل تثبيت الأدوات.

root@debian-s-1vcpu-2gb-ams3-01:~# git clone https://github.com/airwawekz/xrec.git root@debian-s-1vcpu-2gb-ams3-01:~# cd xrec root@debian-s-1vcpu-2gb-ams3-01:~# chmod +x xrec-install.sh root@debian-s-1vcpu-2gb-ams3-01:~# ./xrec-install.sh 

عملية تحديد الهوية


افترض أن البرنامج الذي نريد المشاركة فيه يهدف إلى البحث عن الثغرات الأمنية في جميع المجالات الفرعية ، بما في ذلك النطاق الرئيسي. عادةً ما يكون النطاق الأساسي أكثر أمانًا من نطاقاته الفرعية ، مما يعني أنه يجب علينا التركيز على النطاقات الفرعية.

على سبيل المثال: * .example.com

الخطوة الأولى:

نحدد جميع النطاقات الفرعية التي تنتمي إلى example.com. لهذا نستخدم Sublist3r.

صورة

root@debian-s-1vcpu-2gb-ams3-01:~# cd /root/xrec/Sublist3r/
root@debian-s-1vcpu-2gb-ams3-01:~# python sublist3r.py -d example.com -o domains.txt


صورة

أقترح إضافة واجهات برمجة التطبيقات في تكوين البرنامج النصي للحصول على أفضل النتائج. (مثال: فيروسي)

نحن في انتظار اكتمال الفحص ، وفي النهاية ستقوم بإنشاء ملف "domains.txt" يتم فيه حفظ نتائج عملية المسح.

الخطوة الثانية:

نتحقق من النطاقات الصالحة ، لذلك نستخدم httprobe.

 root@debian-s-1vcpu-2gb-ams3-01:~# cat domains.txt | httprobe | tee -a alive.txt 

بعد الانتهاء من هذه العملية ، ستقوم بإنشاء ملف يسمى "alive.txt" مع نطاقات فرعية صالحة.

صورة

الخطوة الثالثة:

نحن نلتقط لقطات لكل موقع نشط ، هذه الخطوة تساعدنا على تحديد النطاقات الفرعية المحتملة المحتملة بسرعة إذا كان لدينا قائمة كبيرة من المجالات الصالحة.

 root@debian-s-1vcpu-2gb-ams3-01:~# python /root/xrec/webscreenshot/webscreenshot.py -r chromium -i alive.txt -o /root/xrec/webscreenshot/screens/ 

صورة

سيتم حفظ النتائج في المجلد / root / xrec / webscreenshot / screen / as * example.com.png.

بعد الانتهاء من هذه العملية ، أوصي بأن تتحقق من كل لقطة شاشة على حدة. غالبًا ما أجد نطاقات فرعية منسية مع سم مستضعفة.

الخطوة الرابعة:

نتحقق من استجابة الرأس ، هذه الخطوة مهمة للغاية ، وهناك العديد من نقاط الضعف التي يمكن استخدامها من خلال الرأس.

على سبيل المثال: Yahoo Remote Code Execution

 root@debian-s-1vcpu-2gb-ams3-01:~# cd /root/xrec/ | sudo chmod +x response.sh root@debian-s-1vcpu-2gb-ams3-01:~/xrec# ./response.sh /root/xrec/Sublist3r/alive.txt 

صورة

في نهاية هذه العملية ، سيتم إنشاء مجلدين "رؤوس" و "استجابة" ، حيث سيتم حفظ نتائج التحقق.

الخطوة الخامسة:

الخطوة الأخيرة هي استخراج نقطة النهاية من ملفات JS. للقيام بذلك ، استخدم jsfiles extractor.

 root@debian-s-1vcpu-2gb-ams3-01:~# cd /root/xrec/ | chmod +x jsfiles.sh root@debian-s-1vcpu-2gb-ams3-01:~# ./jsfiles.sh 

بعد اكتمال هذه العملية ، يتم إنشاء مجلد باسم "البرامج النصية" ، حيث ستبدو جميع الملفات مثل www.example.com .

صورة

في الوقت الحالي ، قمنا بجمع معلومات كافية ، علينا فقط اختبارها.

على سبيل المثال:

إذا كان لديك روابط نهائية: "details.php؟ Id = 3" أو "details / id / 3" ، فإن الخطوة الأولى هي اختبار الثغرات الأمنية مثل XSS / SQLi.

مثال آخر ، إذا كان لدينا روابط نهائية: = redirectUrl = / example / photo ، يمكننا تجربة إعادة التوجيه المفتوحة.

إذا كانت لديك نقاط نهاية في النموذج: /pingcheck.php؟s=google.com ، فيمكنك إجراء اختبارات RCE أو SSRF إذا كان لديك شيء مثل /viewpage.php؟s=google.com.

ماذا يمكنني أن أضيف أكثر؟


  • المزيد من المصادر / واجهات برمجة التطبيقات لمسح النطاقات الفرعية (مثل Censys و Shodan وما إلى ذلك)
  • ميناء المسح الضوئي مع nmap
  • bruteforce الاتجاه
  • أتمتة جميع العمليات

      XSS  Snapchat 


باستخدام عملية مسح النطاقات الفرعية ، وجدت أن هذا المجال الفرعي snappublisher.snapchat.com له وظيفة مثيرة للاهتمام لتحميل الصور بعد عدة محاولات غير ناجحة للذهاب إلى المرشح ، لاحظت أنه يمكنك تحميل ملفات SVG (Scalable Vector Graphics) وبعد ذلك كان كل شيء بسيطًا

 <svg version="1.1" baseProfile="full" xmlns="http://www.w3.org/2000/svg"> <polygon id="triangle" points="0,0 0,50 50,0" fill="#009900" stroke="#004400"/> <script type="text/javascript"> alert(document.domain); </script> </svg> 

قمت بحفظ الرمز كـ img.svg وقمت بتحميل الصورة ، ثم فتح الصورة في علامة تبويب جديدة -> كان المعالج نشطًا.

لسوء الحظ ، لا يمكن استخدام مشكلة عدم الحصانة هذه إلا في هجمات التصيد الاحتيالي. أبلغنا عن مشكلة عدم الحصانة هذه لفريق Snapchat من خلال Hackerone. لقد شكرنا))

لن تنظر - لن ترى ، لن تسأل - لن تجد.

Source: https://habr.com/ru/post/ar482108/


All Articles