![]() |
![]() |
![]() |
التسجيل في المنتدى غير متاح حاليا, اذا كنت ترغب في الحصول على عضوية ارجو مراسلتي على البريد الالكتروني "[email protected]"
مطلوب مشرفين على كامل اقسام المنتدى
|
|
![]() |
|
|
|
![]() |
|
![]() |
|
|
أدوات الموضوع | انواع عرض الموضوع |
|
|
المشاركة رقم: 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
شكراً: 2
تم شكره 21 مرة في 15 مشاركة
|
السلام عليكم ورحمة الله وبركاته إن شاء الله تكونوا في تمام الصحة والعافية في هذا الشرح حنشوف إستغلال ثغرة command execution نفتح رابط الموقع بعد تسجيل الدخول للمشروع . ![]() ![]() ![]() ![]() نجرب نضع كوموند بدل رقم الآيبي الكوموند ls ![]() لنلاحظ لم يضهر لنا أي تغيير . ندخل الآن بخدمة sshعلى المشروع لننظر في كود الحماية بداخل الملف low.php ![]() ![]() *)من خلال الصورة السابقة نلاحظ أنه يوجذ مرتين الأمر shell_execوسطر منهما ينفذ بحسب نوع النظام المستعمل . *)بالنسبة للينكس واليونكس يمكننا تنفيذ كومندات مختلفة في نفس الوقت بشرط فصلها بالعلامة ؛ من خلال كود الحماية التي في الصورة لدينا وضعيتان : *)في حالة التنفيذ العادي : يتم إدخال الأيبي فقط فتنفذ عملية ال pingعلى هذه الأيبي . وإذا أردنا تخطي الحماية نضع العلامة ;ونضع بعدها أمر آخر لتنفيذه . لأنه كما ذكرنا في نضامي اللينكس واليونكس يتم الفصل بين كومندات مختلفة بالعلامة ; ملاحظة : لحماية الموقع من هذه الهجمة في الوضعية التي طبقناها يمكن مثلا حين عملية الإرسال حين الظغط على submit نضيف دالة تقوم بحذف كل من العلامتان ؛ و و&&التي تجمعان بين أكثر من كومند . نواصل : ![]() نقوم مثلا بعرض الملف /etc/passwd ![]() نفتح سورس الصفحة : ![]() نلاحظ أن المعروض موجود بين الأوسمة pre الآن نقوم بكل ذلك برمجيا من فاتح رابط المشروع إلى إستخراج جميع اليزرات من الملف etc/passwd أولا نقوم بالخطوات التالية (شرحتها سابقا) ![]() نشوف في الصورة العبارة 0.126 ms التي أدرتها فهي تمثل آخر عبارة قبل بداية محتوى الملف /etc/passwd يعني ذلك يمكننا عند هذه العبارة قطع مايوجد داخل الوسام <pre>فنتحصل على جزئين ومايهمنا الجزء الثاني والذي يمثل محتوى الملف /etc/passwd نواصل بإدخال هذه الأوامر : كود PHP:
بالنسبة لهذا السطر : كود:
a = "".join(listPRE[0]).split("0.126 ms")[1]
كود:
"".join(listPRE[0]) قامت بتحويله إلى سلسلة نصية وحولناه إلى سلسلة نصية ليتسنى لنا أن نطبق عليه الميثيود split وللتذكير فإن listPREتحتوي على مايوجد في الوسام pre ثم لدينا : كود:
.split("0.126 ms")[1]
بعد عملية القطع بالsplit نتحصل على ليست ومايهمنا قلنا الجزء الثاني منها لذلك وضعنا [1] ملاحظة : بالنسبة لإستخراج اليوزرات من الملف /etc/passwdيمكن أن نقوم بها في سطر واحد كاللآتي : كود PHP:
والميثيود كود:
split(":")
مثال هذا السطر هو line كود:
daemon:x:1:1:daemon:/usr/sbin:/bin/sh كود:
line.split(":")
كود:
['daemon' , 'x' ,'1', ,'1', 'daemon' ,"/usr/sbin" , "/bin/sh"] الآن حنقوم بفتح الملف file.txtمرة أخرى ونقوم بإستخراج اليوزرات وهذا هو الملف كما في الصورة : ![]() هذا محتوى الملف /etc/passwd كل سطر من الملف /etc/passwdعموما يتكون من 7 عناصر مفصولة بالعلامة : كالتالي : كود:
A:B:C:D:E:F:G الملف يحتوي على المعلومات الضرورية التي يحتاجها كل يوزر عند عملية تسجيل الدخول . والعناصر التي سأشرحها دائما مرتبة هكذا . Aيمثل إسم اليوزر وتستعمل عند تسجيله الدخول ويجب أن لايتجاوز عدد رموزها 32 رمز أو حرف . Bتمثل الباسورد و xتعني أن الباسورد المشفرة مخزنة في الملف /etc/shadow Cتمثل رقم آيدي اليوزر أي UID و 0 محجوزة للروت . وUID مابين 0 و 99 محجوزة ليوزرات معرفة مسبقا و UIDبين 100 و 999 محجوزة لإدارة النظام وحساباتة . D يمثل آيدي المجموعة الأساسية ويكون مخزن في الملف /etc/group E هذا الجزء مخصص للتعليق يسمح بإضافة معلومات إضافية حول اليوزرات كرقم الهاتف مثلا ..إلخ Fهذا يمثل المسار المطلق الذي يكون فيه اليوزر عند تسجيله الدخول . Gهذا يمثل المسار المطلك تبع كومند أو الشيل /bin/bash الآن إذا نريد إستخراج جميع اليوزرات بالملف file يعني ذلك حنقوم بإستخراج العنصر A من كل سطر من الملف file.txtوذلك كالتالي : كود PHP:
![]() ملاحظة : عمليات القطع والحذف والإستخراج من السورس ليست ثابتة وإنما شرحت حسب الوضعية بمعنا مثلا قد نجد عوض إستخراج الوسام pre نستخرج الوسام <p> وهكذا فالمهم فهم ميكانكية العمل . وهذا رابط سكريبت من تسجيل الدخول إلى المشروع إلى حين إستخراج جميع اليوزرات وتخزينهم في ملف مع التنويه أن عملية الإستغلال مازالت متواصلة بإذن الله كود PHP:
![]() يتبع بإذن الله في أمان الله
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
المشاركة رقم: 2 | ||||||||||||
|
رائع رائع....* |
||||||||||||
|
|
||||||||||||
![]() |
| مواقع النشر (المفضلة) |
| حالياً الأعضاء النشيطين الذين يشاهدون هذا الموضوع : 1 (0 عضو و 1 ضيف) | |
(أظهر الكل)
الأعضاء الذين قاموا بمشاهدة هذا الموضوع : 16
|
|
| Anis Gladiator , black_death , bomboba , ChAnDiPa-Dz , الديلر الفلسطيني , الصقر الحر 1 , dark dz , Devil-_-H@CKER , gure , hafimomo , jehaad , S1LV3rS3rf3r , saaddjouida , sql sniper , the.scorpion , zero_cool |
|
|
المواضيع المتشابهه
|
||||
| الموضوع | كاتب الموضوع | المنتدى | مشاركات | آخر مشاركة |
| 23/55 شرح استغلال ثغرات command execution | yasMouh | دورة اختراق المواقع والسيرفورات | HCJ | 5 | 25/10/2014 12:05 |
| [2] إكتشاف ثغرات الويب وإستغلالها برمجيا بالبايثون .. Sqli | zero_cool | قـــــسـم لــغه لــــ python | 3 | 08/10/2014 21:29 |
| [3] إكتشاف ثغرات الويب وإستغلالها برمجيا بالبايثون .. Sqli | zero_cool | قـــــسـم لــغه لــــ python | 6 | 09/09/2014 15:25 |
| إكتشاف ثغرات الويب وإستغلالها برمجيا بالبايثون [1] | zero_cool | قـــــسـم لــغه لــــ python | 0 | 12/08/2013 16:59 |
| (الدرس التالت) - اكتشاف ثغرات Remote Command Execution | ViRuS_Ra3cH | دورة اكتشاف الثغرات | Dr.BiLLi | 5 | 15/07/2013 19:33 |
![]() |
![]() |
![]() |