بسم الله الرحمن الرحيم. اليوم ان شاء الله سنتطرق للتحليل التقني لثغرة المتصفح حيث سيشمل ذلك تحليل الإستثمار وتحديد مكان الخطأ وشرح لطريقة الإستثمارة الرائعة في ذلك. 1-نظرة عامة: تعتبر هذه الثغرة من أخطر الثغرات التي انتشرت في هذه الآونة الأخيرة من ناحية انها ذات تأثير بالغ فهي تسمح بتشغيل اكواد ضارة (Code Execution) في اجهزة المستخدمين،مايعني هذا هو تعريضها لخطر فعلي يتمثل في: 1-تحميل فيروسات او احصنة طروادة للجهاز مما يعرض صاحبه لفقدان او انتهاك لخصوصيته. 2-او فتح قناة او منفذ يسمح للمستخدم بالدخول المباشر و الغير مصرح للجهاز. ممما يجعلها كما سبق ذكر من اخطر الثغرات التي ارتفع من اجلها مؤشر الخطورة لدى Symantec و كدليل على ذلك قامت مجموعة من الفيروسات بإستعمالها كـ Spreading Vulnerability اي ثغرة تنتشر من خلالها،و بالعودة إلى اصل الثغرة ومكتشفها فإن الإستثمار انتشر سهوا من خلال باحثين صينين وقيل ان الثغرة في 15 نوفمبر اي قبل نشرها كانت تباع في منتيديات و وصل سعرها إلى $15,000 وهذا الخبر من موقع The Register . نظرة تحليلية: الثغرة تحدث اثناء معالجة مستند XML في صفحة HTML ،لنلقي نظرة على البيانات التي تحدث الثغرة شاهد الصورة: كما تلاحظ الصفحة عبارة عن مستند XML داخل صفحة HTML ،الصفحة تحتوي على وسوم خاصة التي عليها إيطار بالأخضر. ربما علينا التطرق لمفهوم XML لكي يكون الشرح واضحا اكثرا: XML هي ان صح التعبير عبارة عن لغة أتت لوصف البينات اي ان البرامج او المتصفح عند تعامله مع بيانات من نوع XML فإنه سيتعامل مع نوع البيانات وما يحدد صفة للبيانات ونوعها هي الأوسمة tags ،والمرونة التي تقدمها XML انها تجعل لك وسوم خاصة وهذا ما اعتقد انه الأمر المهم وهذا هو الغرض الرئيسي من اللغة،لنفرض انك تتعامل مع بيانات ما يتم نقلها عبر الأنترنت ولتكن طلبات شراء مثلا وهذه البيانات لما تصل إلى الجهة المعينة فإن التعامل معها على اساس نصوص واشكال امر صعب لذلك ولتسهيل الأمر العملية يتم إستخدام XML بإستعمال اوسمة خاصة على سبيل المثال:
<request><book>hacking</book><price>15000$</price><request>
[CDATA[.....image link here....]]
<test>im text</test>
<test><test2>im text</test2><test>
<test><test2><html>im text<html></test2><test>
7EA81DDC MOV ECX,DWORD PTR DS:[EAX]
7EA81DDC MOV ECX,DWORD PTR DS:[EAX]7EA81DDE PUSH EDI7EA81DDF PUSH EAX7EA81DE0 CALL DWORD PTR DS:[ECX+84]
CALL DWORD PTR DS:[ECX+84]
var spray = unescape("%u0a0a%u0a0a");do {spray += spray;} while(spray.length < 0xd0000);memory = new Array();for(i = 0; i < 100; i++)memory[i] = spray + shellcode;
memory = new Array();
MOV ECX,DWORD PTR DS:[EAX]
MOV ECX,DWORD PTR DS:[0a0a0a0a]
memory[i] = spray + shellcode;