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

أخطاء وثغرات البرامج العربية ؟!

بدأه JAAS في 13 سبتمبر 2005 · 26 رد · 11,105 مشاهدة · في مواضيع الأخ JAAS في الأسمبلي وتحليل التطبيقات البرمجية
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ,,,

بصراحة لم أجرب في حياتي البحث عن ثغرات أو اخطاء في البرامج التجارية العربية ؟!

والسبب اني لم اتوقع اي فائدة من إيجاد ثغرة برمجية في برنامج عربي !!!

-

-

اليوم فكرة في الموضوع ,,, من منطلق تطوير البرامج

فوجدت ان كل برنامج عالمي يتطور بعد إيجاد أخطائة وغفواته ؟؟ كل انواع التشفير تتطور إذا وجد لها طرق فك التشفير

والنقطة التي اريد ان اصل لها ؟؟ هي :

إذا لم نجد اخطاء وثغرات برامجنا ومواقعنا العربية ستبقى نفس ما هي وبنفس تقنياتها المستخدمة إلى قيام الساعة؟ بمعنى لن تتطور ابداً

أمس فتحت موضوع لإجاد ثغرات وأخطاء المواقع العربية

-

اليوم سنفتح نفس الموضوع للبرامج العربية... وسأبدا في الموضوع ؟؟

/////////////////////////////

إيجاد ثغرة فيض المكدس في برنامج مكتوب ماسنجر !!

-

بدأت في إختبار شاشة الدخول لبرنامج مكتوب ماسنجر

13_09_05_01_32_18_1126643538APS_1.gif

بصراحة وجدت التحقق من إسم المستخدم وكلمة المرور - يعتبر جيد !!

بداية بفرض رقابة على حجم البيانات المدخلة ب 255 بايت وهذا شيء جيد

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

وقام بحجز مخزن للبيانات للتحويل بحجم 255*2 وهذا شيء ممتاز طبعاً لأن نص الينكود سيكون ضعف آسكي

-

ولكن الغفوة أو الثغرة تحدث بعد هذا؟؟؟؟؟

بعد ان يقوم بتكملة الخطوات السابقة ,, يقوم البرنامج بخدمة جليلة للمستخدم

إذا كان المستخدم أدخل إسمة بدون كلمة @maktoob.com

فإن البرنامج وبحسن نية يقوم بإضافتها إلى الإسم المدخل ؟ وهنا تظهر الورطة ,, وهي

إدخال إسم مستخدم بحجم 255 وبدون @maktoob.com ؟؟ ستحدث ثغرة مباشرة

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

يقوم المستخدم بإدخال نص AAAAAA بتكرار 255 مرة في خانة إسم المستخدم

على طول سيقوم برنامج مكتوب بتحويلة إلى ينكود وسيقوم بتخزية في مخزن بيانات بحجم 510

وبهذا سيكون المخزن ممتلئ مئة بالمئة ,,, هنا سيقوم برنامج مكتوب بإضافة @maktoob.com إلى المخزن الممتلئ

وستحدث ثغرة فيض + وستكتب البيانات فوق عناوين البرنامج ,, بهذة الطريقة

13_09_05_01_33_01_1126643581APS_.gif

///////////

الحل ؟ بالتأكيد هو:

فحص حجم البيانات بدون @maktoob.com وفحص حجم البيانات ب @maktoob.com

إذا كان إسم المستخدم كامل في هذة الحال يتم متابعة التنفيذ,, إذا لم يكن كامل يتم زيادة حجم المخزن بحجم النص @maktoob.com

////////////////

ثانياً

ثغرة فيض في أداة الترجمة(عجيب) لشركة صخر

-

بنفس القصة يحدث خطأ الفيض أثناء إدخال إسم المستخدم لموقع عجيب

الثغرة تحدث في نقل البيانات المدخلة بإستخدام المايكرو strcpy

ليتم تخزينها في ملف الريجستري ؟؟ والمكشلة ان التحقق من حجم البيانات يأتي بعد نقلها إلى مخزن بيانات أصغر

-

طريقة إدخال البيانات

13_09_05_01_33_50_1126643630APS_3.gif

-

بعد إدخال إسم مستخدم بحجم كبير مثل 500 حرف

تحدث ثغرة فيض في المكدس ,, ويتم إنتقال التنفيذ ,, ستلاحظ إختفاء البرنامج

13_09_05_01_34_53_1126643693APS_4.gif

//////////////

//////////////

وفي النهاية ,, من المعروف ان عدد البرامج التجارية العربية تعد بالأصابع ؟!

أنصحك بالبحث عن أقرب برنامج لمراقبتة وكشف اخطائة وثغراتة ,, إذا وجدت :)

وبالتوفيق ,,

تم تعديل هذه المشاركة بواسطة JAAS في 9 أكتوبر 2005 في 01:25

4

http://www.jaascois.com

*************************************************

مجموعة مواضيع - إحتراف البرمجة -

ّ~~~~~~~~~~~~~~~~~~~~~~

البرمجة المتقدمة & الهندسة العكسية & برمجة وأمن الأنظمة

/index.php?showtopic=45002

آخر المواضيع :

+- تحليل جرائم الكمبيوتر -+

أنظمة اليونكس(Solaris,HP, AIX,SCO)وانواع المعالجات

ثغرة SMS لأجهزة الجوال Siemens 3568i !

أخطاء وثغرات البرامج العربية !!!

سلسلة مواضيع - أمن وحماية مواقع الويب -

E البرمجة المتقدمة X للملفات التنفيذية E

سلسلة مواضيع ثغرات الأنظمة وإختراق الأجهزة

**************************************************

<span style='font-size:14pt;line-height:100%'>الإرادة تحـــقق السيـــادة</span>

**************************************************

#2

مجهود رائع جدا اخي جاس , كان بودي ان اضيف شي للموضوع او ان اطرح سؤال لكن خبرتي بالاسمبلي صفر بالرغم من اني اتردد على هذا القسم بأستمرار :s

شاكر لك جهودك المبذوله في المنتدى :)

#3

من اليوم سابدا فى البحث عن البرامج العربيه وساتيك بالنتائج ان شاء الله :)

#4

طبعا بعد دروسك الجميله يا Jaas في ثغرات البرامج وكيفية استغلالها فهذا يعتبر مثال تطبيقي لكن من عندنا احنا :lol:

ولي سؤال :

اقتباس
يقوم المستخدم بإدخال نص AAAAAA بتكرار 255 مرة في خانة إسم المستخدم

على طول سيقوم برنامج مكتوب بتحويلة إلى ينكود وسيقوم بتخزية في مخزن بيانات بحجم 510

وبهذا سيكون المخزن ممتلئ مئة بالمئة ,,, هنا سيقوم برنامج مكتوب بإضافة @maktoob.com إلى المخزن الممتلئ

وستحدث ثغرة فيض + وستكتب البيانات فوق عناوين البرنامج ,, بهذة الطريقة

طبعا البيانات التي سوف تكتب هي @maktoob.com وليست البيانات التي أدخلتها ... لذلك لا يمكن استغلال هذه الثغره بكتابة كود لاختراق البرنامج مثلا , فنتيجة هذا الفيض غير محسوبه مسبقا , اليس كذلك ؟

#5

I don't think the site allows a username with 255 char.. if so one could compromise the user msgr by giving him/her an exploitable email.

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#6

ماشاءالله عليك اخوي jaas

شرح مفصل من طقطق الى السلام عليكم

الله يزيدك من علمه

وتقبل تحيتي

وفمان الله

(وقل ربي زدني علما)

#7

مشكور على ردود الجميع ,,, وبصراحة إرتحت عند قرائة سؤال Asm4all

يعني سؤال يدل على فهم كل الخطوات بالتفصيل ؟؟؟

اقتباس
لذلك لا يمكن استغلال هذه الثغره بكتابة كود لاختراق البرنامج مثلا , فنتيجة هذا الفيض غير محسوبه مسبقا , اليس كذلك ؟

بالعكس يمكن إستغلال هذة الثغرة وقد شرحتها بالتفصيل في موضوع ( أخطار المعالجة المنظمة لنظام التشغيل SEH )

وذلك بإستغلال المؤشر لجدول SEH او معالجة الأخطاء ؟؟

لأن الطريقة السابقة ستحدث خطأ في البرنامج ؟؟ سيقوم البرنامج بالإنتقال إلى أول عنوان في جدول SEH

وبهذا يمكن ان نبحث عن طريقة لجعل مؤشر SEH يدخل في البيانات التي ادخلناها !!! راجع موضوع SEH لتوضيح الفكرة

-

http://www.jaascois.com

*************************************************

مجموعة مواضيع - إحتراف البرمجة -

ّ~~~~~~~~~~~~~~~~~~~~~~

البرمجة المتقدمة & الهندسة العكسية & برمجة وأمن الأنظمة

/index.php?showtopic=45002

آخر المواضيع :

+- تحليل جرائم الكمبيوتر -+

أنظمة اليونكس(Solaris,HP, AIX,SCO)وانواع المعالجات

ثغرة SMS لأجهزة الجوال Siemens 3568i !

أخطاء وثغرات البرامج العربية !!!

سلسلة مواضيع - أمن وحماية مواقع الويب -

E البرمجة المتقدمة X للملفات التنفيذية E

سلسلة مواضيع ثغرات الأنظمة وإختراق الأجهزة

**************************************************

<span style='font-size:14pt;line-height:100%'>الإرادة تحـــقق السيـــادة</span>

**************************************************

#8
JAAS كتب:
بالعكس يمكن إستغلال هذة الثغرة وقد شرحتها بالتفصيل في موضوع ( أخطار المعالجة المنظمة لنظام التشغيل SEH )

how is that possible? you may exploit it locally (even though i cant seem to figure how) but over network?? :wacko:

we are dealing here with a buffer overflow that needs a user name and a password (the username is the email account) so it ain't possible to send someone a username with 100 char and tell him/her that it's my email account.. send me your picture :s

but still.. sorta possible :) there are many unbelieveable things in the world :D

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#9

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

بالنسبة ل SEH

/index.php?showtopic=62076

http://www.jaascois.com

*************************************************

مجموعة مواضيع - إحتراف البرمجة -

ّ~~~~~~~~~~~~~~~~~~~~~~

البرمجة المتقدمة & الهندسة العكسية & برمجة وأمن الأنظمة

/index.php?showtopic=45002

آخر المواضيع :

+- تحليل جرائم الكمبيوتر -+

أنظمة اليونكس(Solaris,HP, AIX,SCO)وانواع المعالجات

ثغرة SMS لأجهزة الجوال Siemens 3568i !

أخطاء وثغرات البرامج العربية !!!

سلسلة مواضيع - أمن وحماية مواقع الويب -

E البرمجة المتقدمة X للملفات التنفيذية E

سلسلة مواضيع ثغرات الأنظمة وإختراق الأجهزة

**************************************************

<span style='font-size:14pt;line-height:100%'>الإرادة تحـــقق السيـــادة</span>

**************************************************

#10

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

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#11

بالفعل هي ليست ريموت !

وبالتأكيد لن تستطيع إجبار احد على نسخ 200 حرف في إسم المستخدم ؟؟

ولكن فكر اكثر في طرق ؟؟؟ مثلاً اين يخزن إسم المستخدم ؟ بالتأكيد في الريجستري

ماذا لو غيرت المعلومات من الريجستري ,, وقمت بحفظها في ملف reg

في هذة الحالة ليس من المستحيل جعل المستخدم ان يضغط دبل كلك على ملف reg :)

وبالتوفيق ؟؟

http://www.jaascois.com

*************************************************

مجموعة مواضيع - إحتراف البرمجة -

ّ~~~~~~~~~~~~~~~~~~~~~~

البرمجة المتقدمة & الهندسة العكسية & برمجة وأمن الأنظمة

/index.php?showtopic=45002

آخر المواضيع :

+- تحليل جرائم الكمبيوتر -+

أنظمة اليونكس(Solaris,HP, AIX,SCO)وانواع المعالجات

ثغرة SMS لأجهزة الجوال Siemens 3568i !

أخطاء وثغرات البرامج العربية !!!

سلسلة مواضيع - أمن وحماية مواقع الويب -

E البرمجة المتقدمة X للملفات التنفيذية E

سلسلة مواضيع ثغرات الأنظمة وإختراق الأجهزة

**************************************************

<span style='font-size:14pt;line-height:100%'>الإرادة تحـــقق السيـــادة</span>

**************************************************

#12

همممممم.. معقول :D اغلب مستخدمينا (الله يخليهم) بينفذوا ملفات الريجستري بدون ان يطلعو على المحتويات ويبحثوا فيما تعنيه.. :)

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#13

اخي jaas

"في هذة الحالة ليس من المستحيل جعل المستخدم ان يضغط دبل كلك على ملف reg "

ممكن توضح فيها شوية

وشكرا , على الموضوع

#14

يعني مثلا اخي ATmax ممكن ارسلك ملف reg او حتى exe واقول بانه باتش يقوم بتغيير كذا في مكتوب وبدون ان اكذب بهذا الشان.. شوية reverse engineer وبنعمل ال "كذا" وبالتالي حتفحصه مثلا من الفيروسات ما بتلاقي شي واذا بك تفتح الملف واذا بالريجستري على افتراض انها مخزن الاسم تتعدل واذا بك تفتح مسنجرك واذا بجهازك يقوم بعمل ليس من المفترض به القيام به.. :D ويمكن حتى اخفاء وجود البايتات الزائدة في الاسم مع شوية شغل زيادة وحرص وبتكون عم تسجل في مسنجر المكتوب بدون اي شكوك :)

بدت الافكار الخطيرة تتدفق على مخي :lol:

تم تعديل هذه المشاركة بواسطة Xacker في 16 سبتمبر 2005 في 04:02

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#15

رائع يا شباب

احسنتم والى الامام<<<<<<<<<<<< كاني فاههم اشي من الي قلتوه :lol:

#16

الSEH من السهل تخطيه

اولا:-

عند الكتابه على الSEH

سنقوم بالكتابه عليه بى xEB\x06\xff\xff Pointer To Next SEh

EB =jmp

06 = 6 بايت

العباره على بعضها = اقفز 6 بايت لتصل الى [sE Handler] الذى يوجد به عنوان الRETadd

وهو المطلوب اثباته :)

#17

السلام عليكم

عمل ممتاز من كل الأعضاء و لكن هل تم تبليغ شركة مكتوب عن هذه الثغرة؟

#18

اخي ATmax ... كما وضحه مشرفنا Xacker

اقتباس
لكن هل تم تبليغ شركة مكتوب عن هذه الثغرة؟

عن نفسي لم اخبر لا مكتوب ولا صخر ... :)

http://www.jaascois.com

*************************************************

مجموعة مواضيع - إحتراف البرمجة -

ّ~~~~~~~~~~~~~~~~~~~~~~

البرمجة المتقدمة & الهندسة العكسية & برمجة وأمن الأنظمة

/index.php?showtopic=45002

آخر المواضيع :

+- تحليل جرائم الكمبيوتر -+

أنظمة اليونكس(Solaris,HP, AIX,SCO)وانواع المعالجات

ثغرة SMS لأجهزة الجوال Siemens 3568i !

أخطاء وثغرات البرامج العربية !!!

سلسلة مواضيع - أمن وحماية مواقع الويب -

E البرمجة المتقدمة X للملفات التنفيذية E

سلسلة مواضيع ثغرات الأنظمة وإختراق الأجهزة

**************************************************

<span style='font-size:14pt;line-height:100%'>الإرادة تحـــقق السيـــادة</span>

**************************************************

#19

اذا هم مش دايرين بالهم الامر بيرجع الهم.. بس تنبيه: الـ credits لـ JAAS فمحدش يفكر هيك ولا هيك :D

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#20

السلام عليكم

أخي JAAS

أولا شكرا جزيلا على الموضوع الرائع

اللي أنا فاهمه من ثغرات الــBuffer Overflow هو أنه تكون مرتبطة بتحديد حجم معين لمتغير نصي.

يعني مثلا [char string[256

طيب لو فرضنا أنه أستخدمت كمتغير نصي (مثلا في الفيجوال سي) CString فهل يوجد أحتمال حصول نفس المشكلة؟؟ مع العلم أني دائما أستعمل CString و لم أفكر كثيرا بموضوع الــBuffer Overflow :rolleyes:

فهل أن فهمي خاطيء, و أستعمالي لــCString (أو ما يشابهه) ممكن أن يحدث نفس المشكلة؟؟

و شكرا

تم تعديل هذه المشاركة بواسطة MTI في 19 سبتمبر 2005 في 04:45

comp2.gif

#21

بالعكس اخي MTI ,,,

إذا استخدمت CString في برنامجك فأنت بعيد كل البعد عن ثغرات الفيض في المتغير ؟

اعرف انة شيء غريب ؟ ؟ إذا كان هذا هو الحل وموجود لماذا لا يطبق ؟

لنأخذ مثال المتغير CString

هذا المتغير موجود في لغة السي وبالتحديد مكاتب MFC ,,, ولهذا السبب لا يستخدم ؟ لأنة موجود في

مكاتب خارج البرنامج ؟!!!! وبذلك لا يرتبط في البرنامج حتى إذا حدث فيض في CString سيحدث في مكتبة MFCxx.dll وليس في البرنامج

بمعنى ؟ إذا قمت بإستخدام اي طريقة لتعريف سلسلة نصية غير الطريقة char aa[200]

معنى ذلك انك تخليت عن لغة السي في برنامجك وبهذا سيكون البرنامج مرتبط مع ملفات خارجية في الغالب

مكتبة ربط dll ,,,وفي النهاية ستكون مجبر على إرفاقها مع برنامجك

-

-

وبالتأكيد اغلب البرامج التجارية وبرامج النظام ... دائما تكون مكتوبة بلغة السي القياسية وتستخدم ملفات النظام القياسية ... دون إستخدام اي ملفات خارجية او خدمات اخرى

http://www.jaascois.com

*************************************************

مجموعة مواضيع - إحتراف البرمجة -

ّ~~~~~~~~~~~~~~~~~~~~~~

البرمجة المتقدمة & الهندسة العكسية & برمجة وأمن الأنظمة

/index.php?showtopic=45002

آخر المواضيع :

+- تحليل جرائم الكمبيوتر -+

أنظمة اليونكس(Solaris,HP, AIX,SCO)وانواع المعالجات

ثغرة SMS لأجهزة الجوال Siemens 3568i !

أخطاء وثغرات البرامج العربية !!!

سلسلة مواضيع - أمن وحماية مواقع الويب -

E البرمجة المتقدمة X للملفات التنفيذية E

سلسلة مواضيع ثغرات الأنظمة وإختراق الأجهزة

**************************************************

<span style='font-size:14pt;line-height:100%'>الإرادة تحـــقق السيـــادة</span>

**************************************************

#22

شكرا جزيلا أخي JAAS

بالنسبة لتوزيع الــDlls ...أنا لاحظت هذه المشكلة عند عملي لبعض البرامج, حيث أني أستخدم دائما MFC في كتابتها.

أما بالنسبة لــCString فكنت قد بدأت أستخدمه بكثافة بعد قراءتي لمقال في كود بروجكت أسمه CString Management و كان الجزء الأخير يشرح فوائد أستعماله مقارنة بالمتغيرات النصية العادية.

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

على العموم ....لقد أبتعدت بهذا الموضوع كثيرا عن هدفه و ناقشت الــ++C في منتدى الأسمبلي. :D

و أنا آسف لذلك.

شكرا جزيلا مرة أخرى.

comp2.gif

#23

اخي jass بالنسبه لما قلته عن تتبع مكان تسجيل البرنامج ... بالنسبه لي قمت بتجربة

ذلك على برنامج عربي وهو محول الصوتيات 6 والذي يشتغل عدد من المرات ويطلب الشراء

فقمت بتتبع التغيير الذي يحدث في الريجستي بواسطة برنامجInstallWatch فذهبت

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

وعند حذف القيمه يرجع عداد البرنامج 0 فقمت بالعبث بقيمة البرنامج في الريجستي

فاصبح عداد البرنامج صفر دائما وهذا يعتبر قريب من الكراك في فعالته

[HKEY_USERS\S-1-5-21-1645522239-179605362-682003330-500\Software\VB and VBA Program Settings\Tools\au]

@=""

"Text"="aljeelany"

ولكن سؤال كيف ممكن نتلافى هذه الثغره لا تشرح على اساس اننا محترفون .. مازلنا ممتدئين

وارجو ان يكون التوضيح بالنسبه للريجستي

ومشكور اخي على موضوعك

at4re1.png

at4re2.png

#24

ماشاء الله ..... :rolleyes:

Success Is A Journey Not A Destination

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