Share

شرح ثغرات رفع


بسم لله الرحمان الرحيم
سلام عليكم ورحمة لله و بركاته
اليوم راح نتكلم على ثغرة مراكز رفع
من جهة برمجة طبعا أمثلة راح تكن بـ PHP
 
راح نتكلم على مراكز الرفع :

1-التي تقبل كل إمتدادات
2-التي تعتمد على إسم
3-التي تعتمد على نوع الملفFILE TYPE
4-التي تعتمد على طول و العرض صورة

جمعت أربعة أنواع راح نتكلم عليهم
نبدأ على بركة الله

ملاحظة : نقرة على صورة لتكبيرها

[1]
يقبل جميع إمتدادات
شاهد كود




نرى أنه لا يوجد أي تحقق امتداد او نوع الملف المرفوع
يعني يستطيع مهاجم رفع أي شيء يريده

[2]
التي تعتمد على إسم
شاهد كود
 


نرى هنا اننا إستعملنا الدالة eregi()
لتحقق من
انه يوجد (.jpg)
في اسم الملف
و هذا أيضا يعتبر خطأ
لانه يمكن تخطيه بجعل إسم الملف هكذا
bad_file.jpg.php
الكود عندما يجد .jpg يرفع الملف


[3]
تعتمد على نوع الملف
FILE TYPE or FILE MIME
الاكثر إنتشارا في وقت الحالي
شاهد كود



نلاحظ هنا متغير

$allowed_ext

قيمته
image/jpeg
ونرى ان هناك شرط لكي يتم رفع الملف
و شرط يجب ان يكون تساوي
نفس شيء خطأ برمجيلان المهاجم يستطيع تغيير في نوع الملف عند عمل POST
بإستعمال Headers Editors
مثال إضافة موزيلا فايرفوكسTamper Data

4
تعتمد على طول و العرض صورة
شاهد كود



نرى اننا إستعملنا الدالة getimagesize()
لجب معلومات عن حجم الصورةو
وضعنا متغيرين width & height
طول و العرض
و هناك شرط يتحقق من ان طول و العرض موجودة
و هذا أيضاا يسمى خطأ برمجي :
Pمهاجم يدمج صورة مع ملفه الذي يريد رفعه أوبس
تخطى شرط

.....

الان نضع طريقة للحماية بتحقق من إمتداد بدون نقاش
يعني هذا
dz.jpg
dz.jpg.php
dz.php.jpg.php
يعني أخر امتداد نشوف كيف
اول نجيب ملف
مثلا
dz.jpg.php
نقسموا على عدد النقاط الي فيه
يصبح هكذا
dz
jpg
php
نشوف إمتداد الي رقموا هو عدد نتائج بعد تقسيم
هنا عندنا 3 نتائج نروح نتيجة 3 و هي php

شاهد كود

$filename "dz.jpg.php"# إسم الملف
$points explode("." $filename); # تقسيم ملف على حسب نقاط

# و نتائج تحفظ على شكل مصفوفة في متفير $points
$num count($points); # يحسب عدد نتائج الي هي ثلاثة
$ext $points[$num-1]; # أنقصنا واحد لان مصفوفات تبدأ العد من صفر
echo $ext# إمتداد 
أظن أنه مفهوم نوعا ما
الكود الاخير لمركز رفع محمي





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

23 commentaires:

Paulzz said...

مااان الكود بتاعك الي بتقول عنه محمي
قدرت اتخطاه بملف اسمه
p.jpg.php
في مشكلة ببعض الاخطاء
يمكن لانك حطيط -1

n4ss1m said...

@Paulzz
عفوا حبيبي خطأ في شرط
وضعته عكسي لو رفعت jpg
لن يقبله
خطأ هنا
$points[count($points)-1] != 'jpg'
يجب ان يكون هكذا
$points[count($points)-1] == 'jpg'
جاري التعديل و شكرا على تنبيهك

Paulzz said...

شكرا" على ردك السريع بس عندي ملاحطة اخيرة اخي
في طريقة اخرى لتخطى مركز الرفع و رفع شل و هي انو نرفع شل باسم name.php.jpg و بينقرأ عادي كأنه شل و هذه طريقة مشهورة كتيير و كتيير من السكريبتات الرفع مصابة بها و السكريبت الرفع بتاعك كماان
تم التخطي بنجاح و تشغيل الشل فالكود برأي بده بعد تعديل

n4ss1m said...

@Paulzz
اهلا بك مجددا حبيبي
ملف يشتغل هكذا
name.php.jpg
الا اذا كانت هناك
.htaccess
تشغل ملفات
.jpg
على انها
.php
و هنا تكلمت من جهة
php فقط
و سرني تكلم معك سلام

Paulzz said...

لا ماااان
بيشتغل بدون اي ملف .htaccess
السيرفر بيقرأ كphp
اذا جربت على localhost مش لح يمشي الحال
جرب على شي سيرفر لينكس و شوف
اكيد بتكلم اذا كااان السيف مود اووف

Anonymous said...

Paulzz اخي

name.php.jpg مستحيل يشتغل على السيرفر لان الاباتشي يشغله كصوره

يمكن اصدارات الاباتشي القديمه بتشغله بعد اضافة علامة النول


Lagripe-dz تحيتي لك اخي

n4ss1m said...

@Anonymous
مرحبا بيك خويا
+
كلامك صحيح

Unknown said...

لله يبارك عليك خويا ولله نحمد ربي ختراك عندي واحد ولد بلادي قاوي كيفك ربي يحفضك خويا و ربي يعلمنا حنا هههههههه نشالله نوليو كيفك
امين ياربي

Anonymous said...

ههمممممم
يمكن تخطي عمليات الترقيع في مراكز الرفع بي وضع
shell.p.hp
مثل بعد ذالك يمكن البحث عن مدير الملفات مثل
FCKeditor / TinyMCE
لتغيره إلى PHP
وللا لازم تكون مرووووتي معا السارفير لوول هههه
مثال
http://1337day.com/exploits/16267
// KedAns-Dz

KedAns-Dz said...

Anonymous
كلامك صح .. بعد رفعه بإمتداد php
لازم تبحث عن ثغرات lfi
لإدراجه بإمتداده الأصلي كإضافة

n4ss1m said...

@Anonymous , @KedAns-Dz
جرب تتخطى الاخير الوضعتوا
يتحقق من إمتداد بدون منازع
يعني file.jpg
غير ممكن ترفع حاجة أخرى
سلام .. و مرسي على مرورك و تعليقاتكم

Unknown said...

خويا عجبني شرحك
راح ننقلها باش تعم الفايدة

لله يبارك ماشاء لله حبيبي

n4ss1m said...

@chaMsou_23i
مكاش مشكل خويا
+
لله يحفظك

Anonymous said...

By MCA-CRB
نسيم رك تستيكي الله يبارك
ماشاء الله عليك بتوفيق
دئما متميز ودئما مع الجديد

KedAns-Dz said...

نعم يا أخي @lagrip-dz
صح الترقيع اللي رفعتو مليح ...
لاكن المشكل كيما قتلك في شركات و مجموعات البرمجة الأخر و الكبيرة مثل
FCKedtor & TinyMCE
زعما امدارين مدير ملفات ويرقعوه كل يوم تقريبا بصح دايمن يخليو ثغرات وراهم ... تقدر تكسر الحماية فيهم برفع الملف مخفي بإمتاد ph.p
وتغيرلو إمنتادو من مدير الملفات
مثال http://1337day.com/exploits/16267
هاذ الإستغلال بالمطاسبلوت

KedAns-Dz said...

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

n4ss1m said...

@MCA-CRB
أهلا بك خويا ;)

@KedAns-Dz
أهلا بك مجددا أخي
أظن أني لم أكثر من شروط
و قد وضعت أصغر حل و أبسطهم لو جاءت في برمجياتي تشوف الكبر :D
و انا تكلمت عن مراكز رفع
FCKedtor & TinyMCE
محرارات على مأظن
و أظن أني رأيت إستغلالك ممن قبل اظن كتبها str0ke
قديما
Joomla 1.5.12 TinyBrowser
و شكرا لك مجددا على زيارتك
و صحة صحورك و صحة فطورك
و رمضان مبارك

KinG Of PiraTeS said...

ربي يبارك فيكم خاوتي
ربي يحفظكم و يدوم محبتكم
سلام

KedAns-Dz said...

شكرا أخي ...
صحا رمضانك ...
نعم كتب الإستغلال الأول الأخ KeyStr0ke
راهو امعانا في Inj3ct0r Team
هاداك الإستغلال بالميتا .. كي تولي في سارفير ويندوس تقدر ددخلو مباشرتا وترفع البايلود بإمتداد ExE
بعد رفعه مع php
&& الأخ صلاح Indoushka
راه وللا ... الحمد لله على سلامتو وعلا سلامت كل الجزائرين

KedAns-Dz said...

إيماللا كي راك اتصمم سكريبتات .. انديرولها قعدة ونصممو سكريبت جزائرية تاعنا 100 % واش رايك ؟؟
لووول

i-rss said...

بصراحة هناك حل واحد لكل هذا الجدال
لا تعرض الصورة عبر مسارها الحقيقي
بل عبر ملف بي اش بي
يقوم بأخذ المحتوى و اضهاره
image.php?id=1565465465

و يكفي هذا

n4ss1m said...

@Security-Dz
نعم هذه طريقة من ظمن طرق حماية
و شكرا على زيارتك القط :))

Anonymous said...

سلام عليكم ،
?? أخي ألا يكفي تغييراسم الصورة
يعني يعطيك اسم مرقم
32342.jpg
و بارك الله فيك

Post a Comment