الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

هل هناك ثغرة

بدأه f8athy في 5 أغسطس 2009 · 38 رد · 2,342 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#26
اقتباس
فيه اجزاء ماهي واضحه.... القائمه اللي تقارن فيها.. و كيف تستخدم md5

لكن بالنسبه للجزء الاول، عملت تجارب سريعه و لقيت حل regular_smile.gif

كود

?file=../../../etc/passwd\0

\0 عباره عن NULL

ما جربتها بشكل حقيقي.... لان المتصفحات العاديه ما تسمح لي... لازم استخدم Burp او شي مثله

مرحبا

اقصد بال md5 هي اني بدل ان ارسل sarmad مثلا ارسل الهاش الخاص بها ea24976411485acd2a3a8c1239d8efca

وبما اني مو راح اقدر افتح الهاش هذا فأقوم بعمله لوب لاسماء الملفات العندي الي جبتهم بداخل مصفوفه من خلال دالة scandir() حيث اشفر اسمائهم واقارن بين الشفرتين

طبعا قبل المقارنه اقوم بأستخلاص الاسم حتى النقطه المستثاة اي استخدم

explode()

لكي اخذ الاسم بدون الاضافه الي غير موجوده بالهاش وبعد ان اتأكد من تطابق الهاشين اقوم بأضافه البقيه ثم اعمل الانكلود

هل اتضحت الصوره الان D: ارجو ان اعرف اذا ما كانت تحوي عيوب ؟

-----------

اما بالنسبه للكود

?file=../../../etc/passwd\0

فلم افهم بالضبط يعني ال0 سيلغي ما بعده ؟؟؟؟

يعني هذا الكود سيعمل

?file=../../../etc/passwd\0-ah.ete

بهذه الطريقه ؟

[moveleft]

MiN! SpId3r SqUaD

[/moveleft]

#27

بالنسبه لموضوع ال md5:

امنيا الفكره جيده... لكن فيها مشكله....

md5(x1)==md5(x2) 
doesn't entail 
x1==x2

لكنك تستخدمها لعمليه identification

---معنى الكلام هذا، ممكن تعمل ملفين لاسمائهم نفس الهاش.

الحل اضف اسلوب identification للملفات... مثلا

1-foldername 
sent as 
1 , md5(foldername)

اتمنى الفكره واضحه.

--- بالنسبه لموضوع NULL...

ما جربت الفكره من ناحيه ارسال null char (احتاج اشغل burp الخ) لكن تجربتي كانت...

include("/some-path/sensitive-file\0stuff-here-will-be-ignored");

وتمت فعلا اضافه الملف

(عمل تعديل على الرد بدون تشغيل JavaScript فيه مشكله في المنتدى هنا..... ضيعت حوالي ربع ساعه اكتب واعدل هذا الرد! اتمنى يكون الوقت ضاع على شيء له فائده :( )

تم تعديل هذه المشاركة بواسطة Ryn في 10 أغسطس 2009 في 23:03

php5-zce-logo-new.gif

CCNA, CCNA Security, CCNP

#28

شكرا لك مع اني لم افهم بالضبط !!!

md5(x1)==md5(x2)
doesn't entail
x1==x2

لو كان ال x1 مدخل من قبل المستخدم اما ال x2 فهو شفره الملف ناقص الاضافه الي يمكن تغييراها بالمدير !!!! فكيف يمكن ان يتطابق هذين الاثنين ؟

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

المرسه من المهاجم مهما كانت سيضاف اليها الاضافه المحدده ثم تذهب الى الانكلود يعني كود ال NULL سكون بعد الاضافه ولن يكون الملف المطلوب موجود حينها

يعني القيمه الي ستهم تجاهلها = 0

ام اني ما فهمتك ؟

[moveleft]

MiN! SpId3r SqUaD

[/moveleft]

#29

x1 و x2 اسمين لمفين عندك

بمعنى ممكن يكون عندك كلمتين لهم نفس ال md5..... بمعنى اخر النظام هذا غير عملي... قد يكون امن... لكن فيه خطأ

بالنسبه لل Null ، انا ذكرت النقطه هي بدون النظر لمسأله ال md5 ... ما اعرف اذا ممكن شخص يتجاوز تحقق ال md5 و يضيف null قبل امتداد الملف.. وصعب اتوقع بدون النظر للكود او التجربه

لملفين* (لن اعدل على الرد بدون javascript)

php5-zce-logo-new.gif

CCNA, CCNA Security, CCNP

#30

الموضوع مبين عليه مفيد جدا :)

بس أروق رح أقرأه ... الشكر موصول لكل المشاركين

CMS Sfhati , Website Generator


نظام إدارة المحتوى صفحتي ... جربه الآن 


 


small-logo.png

#31

كيف يمكن ان يكون نفس الهاش لملفين منفصلين ؟ هل هذا ممكن ؟

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

فلا اظن ان هناك هاش اخر يعطي نفس النتيجه فلكل اسم هاش خاص به لا يمكن ان يتغير

واخيرا وان كان ممكن كيف ستمكن من تحميل الملف الذي تريده انت ؟

اذا اتحب استخلص الكود واضعه هنا ما في مشكله

والله انت لما تكلم بالسكيروتي انا اشك بكل شيء ههههه

تحياتي

[moveleft]

MiN! SpId3r SqUaD

[/moveleft]

#32

كيف يمكن ان يكون نفس الهاش لملفين منفصلين ؟ هل هذا ممكن ؟

-------------

نادر، لكن طبعا ممكن... فكر بالموضوع بالطريقه هي.....

الداله تاخذ احتمالات لا نهائيه(باعتبار انه نظريا لايوجد حد لاكبر ملف او نص نعمل له hashing).. لكن الناتج ما يخرج من 3.4e+34 (عدد تقريبي) ... نعم المدى كبير لكن لابد يكون فيه تكرار...

ولانها داله (جيده) ما يمكن نتوقع هذا التكرار قبل حدوثه(او بمعنى اخر قبل تجربته)

بالنسبه لكون البرامج تخزن كلمات المرور بعد تمريرها بهذا الهاش

-------

صحيح! لكن دائما كلمه المرور مربوطه باسم مستخدم....

بمعنى اخر... تخيل كلمه مروري pass123 و الهاش لها somehash

ممكن توجد كلمه مرور اخرى (مثلا) SoMeThingUnrelated يكون الهاش لها somehash ايضا!! ولو ادخلتها بيقبلها النظام!

لهذا بعض الانظمه تستخدم salt سري.... ويكون hard coded في النظام http://en.wikipedia.org/wiki/Salt_(cryptography)

واخيرا وان كان ممكن كيف ستمكن من تحميل الملف الذي تريده انت ؟

-------------

غالبا غير ممكن (اذا كنت فهمتك بشكل صحيح)، لكن اذا تحب اسوي audit للكود ممكن اساعدك .

برأيي ارسل لي الكود على الايميل او البريد في المنتدى.. راح اعلق لك عليه هنا وممكن تعرضه بعد ما ننتهي (قد يكون فيه ملاحظات تحتاج تعديل وعرضك للكود ممكن يضغط عليك تعدلها بسرعه) ... مجرد رأي الموضوع راجع لك :)

((احتاج اضغط حرف الذال من virtual keyboard... اذا كان ناقص احيانا.... انا اسف))

php5-zce-logo-new.gif

CCNA, CCNA Security, CCNP

#33

هل هذا الاحتمال يكون 99% ؟ وان كان فهل سيكون من ضمن الملفات الي عندي ؟

فليكن الاسم هو

Sarmad

والكمه المرور لها الهاش

somehash والذي يعادل كلمه password

وانا لدي هاش اخر الي هو somehash واعرف انه يساوي كلمه arabian فعندها سأدخل بهذه الكمه بغض النظر عن الاسم ! صح

مع اني لم اقم بدراسه الدالة الخاصه بال md5 لكني مطلع عليها واظن انها اذكى واقوى ان يكون فيها مثل هذا الشي وان كان فسيكون بنسبه يصعب او مستحيل استغلاله

طبعا انا غير متأكد من كلامك الان عرفت فائدة الملح الي يظاف للهاش فلم اكن اعلم ما فائده واحتاج اقراء الرابط الفوق علشان اخذ الفكره الكامله ايضا p:

طبعا انا اثق جدا بقدراتك لكن اظن ان الكود محصن جيدا D: اما الكود فسأقوم بوضعه هنا ولن احتاج لان اقلق ابدا

فأنا استعمله بمكان واحد ولا اظن انه خطر علي بأي شكل من الاشكال هذا اذا كان ممكن استغلاله اصلا D:

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

الله يعينك على الكي بورد D:

[moveleft]

MiN! SpId3r SqUaD

[/moveleft]

#34

نعم الاحتمال قريب من 1% (بحسب عدد الملفات.. كل ما تزيد عددها يزيد الاحتمال)

على اي حال... لو حصل عندك collision معناه لن تستطيع اضافه احد الملفات (وليست اي مسأله امنيه)...

لكن القضيه انك تستخدم md5 لاكتشاف اي ملف تحتاج لاضافته (ولتتحق من ان المستخدم ما يعرف اسماء الملفات وهذا جيد)... لكن md5 لايكفي... تحتاج شيء اخر بالاضافه له...md5 + حجم الملف؟ md5+اول كلمه من اسم الملف... رقم الملف؟ شيء مثل هذا...

بالنسبه لمثالك ... نعم! ممكن تدخل كلمه مرور للمستخدم Ryn ما تكون نفس كلمه مروري لكن يكون لها نفس الهاش... وراح يقبلها النظام.... (عيب في كل نظام one way encryption) لكن الشيء هذا اصعب مما تتخيل :) واحيانا له فوائد.... مثلا...

- تخيل انني حصلت على نسخه من قاعده بيانات المنتدى هذا

- واكتشف انك تستخدم نفس كلمه المرور للدخول على حسابك البنكي

- راح اعمل loop تجرب كل الاحتمالات للبحث عن كلمه الهاش لها نفس الهاش الخاص بك في قاعده البيانات...

لكن حتى وان وجدت كلمه تتطابق مع الهاش ... هذا يعني انها (قد) تكون كلمه مرورك... ما يعني انها بالتاكيد كلمه مرورك!

php5-zce-logo-new.gif

CCNA, CCNA Security, CCNP

#35

بما انه 1% فلا يهمني اذا لاني متأكد من عدم وجود حمايه 100% اصلا يعني الي يقدر يجيب هل 1% يقدر يخترق الموقع بطريقه اخرى اسهل من هل 1% ههههه

اما الهاش المتكون لا اظن ان المستخدم يعرف ما هو ومن ما يتكون اصلا يعني انا عطيتك الفكره الي بستعملها بس وليس ما اقوم به بالضبط

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

D:

عموما مسألت استخدام كلمة مرور متشابهه هذه كثيره جدا

انا لدي كلمات مرور 5 تقريبا واستخدمهم حسب الاهميه لكل واحد ههههههههه

يعني في شبه في الكثير منهم P:

[moveleft]

MiN! SpId3r SqUaD

[/moveleft]

#36

مازلت انتظر الكود :)

php5-zce-logo-new.gif

CCNA, CCNA Security, CCNP

#37

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

واتمنى اني ما نسيت شي

<?php

$acs = $_GET[log]; //متغير الي يحمل الهاش
$dir = scandir('inco'); //مصفوفه اسماء الفايلات داخل الملف inco

for($i=0;$i<count($dir);$i++)  //البداء بالتكرار
   {
   $varz = explode(".txt", $dir[$i]); //اخراج الامتداد من اسماء الملفات الي داخل المصوفه ووضعه في متغير
    if( md5($varz[0]) == $acs ) //تشفير الناتج ومقارنته مع الهاش المرسل للصفحه
    {
        $urfil = $varz[0];  //نضع اسم الاسم المستخرج بدون تشغير في متغير

@include 'inco/'.$urfil.'.txt';  //نقول بأستدعاء اسم الملف بعد اضافة الامتداد
}
}

<?

هذا هو مع اني حاس اني نسيت شيء

بس جتني فكره ممكن تكون مفيده اكثر بالحمايه

:D

[moveleft]

MiN! SpId3r SqUaD

[/moveleft]

#38

من ناحيه امنيه... ها جيد برايي :)

php5-zce-logo-new.gif

CCNA, CCNA Security, CCNP

#39

ومن ناحيه اخرى هل هنالك عيب بالكود ؟ اظن انه حتى بدون ال md5 ممكن ان يكون الكود جيد جدا

ما هو رأيك ؟

[moveleft]

MiN! SpId3r SqUaD

[/moveleft]

مواضيع مشابهة