بعد تعب حليت تحدي subscriber رهيب وفيه تكنيك جبار ، كتبت exploit بلغة C عشان اسوي rce بشارك معكم تفاصيل الحل كامل قريب باذن الله🥳 x.com
كيف استغليت SQLite Load Extension وجبت RCE
كان عندي File Upload يقبل فقط صيغ معينة مثل PDF PNG وJPEG
SQL Injection موجود لكن الداتابيس فاضي وما فيه اي بيانات مفيدة
فكرت استغل ميزة load_extension في SQLite عشان ارفع مكتبة مكتوبة بلغة C وتنفيذ اوامر نظام مباشرة x.com
كان عندي File Upload يقبل فقط صيغ معينة مثل PDF PNG وJPEG
SQL Injection موجود لكن الداتابيس فاضي وما فيه اي بيانات مفيدة
فكرت استغل ميزة load_extension في SQLite عشان ارفع مكتبة مكتوبة بلغة C وتنفيذ اوامر نظام مباشرة x.com
كتبت سكربت بلغة C يضيف دالة جديدة لDB اسمها execute الهدف منها تسمح لي انفذ اي امر
النقطة المهمة هنا ان كل مكتبة يتم تحميلها باستخدام load_extension في SQLite تحتاج دالة init اللي تعتبر ال Entry Point
هالدالة هي اللي يستدعيها تلقائي لما تسوي Load وهذي نقطة البداية للاستغلال
النقطة المهمة هنا ان كل مكتبة يتم تحميلها باستخدام load_extension في SQLite تحتاج دالة init اللي تعتبر ال Entry Point
هالدالة هي اللي يستدعيها تلقائي لما تسوي Load وهذي نقطة البداية للاستغلال
جهزت الكود وسويتله بيلد ل ملف مكتبة (so)
وهو الامتداد اللي تعتمده المكتبات الديناميكية
وهو الامتداد اللي تعتمده المكتبات الديناميكية
زي ماقلنا فوق الابلود ترفع ملفات ب امتدادات معينه غيرت صيغة المكتبة من so الى png عشان اتجاوز الفحص
رفعت الملف وانرفع ياسلام هنا هو مايشيك على المحتوى يشيك على الامتداد بس ،
باستخدام SQL Injection نفذت استعلام لتحميل المكتبة باستخدام load_extension
لما يتم تحميل المكتبة Sqlite سوت call ل دالة init تلقائي لانها ال Entry Point وهذي ميزة مهمة جدا في
SQLite Load Extensions
باستخدام SQL Injection نفذت استعلام لتحميل المكتبة باستخدام load_extension
لما يتم تحميل المكتبة Sqlite سوت call ل دالة init تلقائي لانها ال Entry Point وهذي ميزة مهمة جدا في
SQLite Load Extensions
بعد تحميل المكتبة استخدمت الدالة الجديدة اللي اضفتها execute لتنفيذ الاوامر
هنا صار عندي rce اقدر انفذ اي امر يوصلني للفلاق
هنا صار عندي rce اقدر انفذ اي امر يوصلني للفلاق
ليش غيرت صيغة المكتبة الى PNG
لان رفع الملفات كانت محدودة وقبلت فقط صيغ معينة
SQLite نفسه ما يهتم بالصيغة الخارجية للملف اذا تحملت المكتبة عن طريق load_extension هنا يصير يعتمد على المحتوى الداخلي للمكتبة وهذا هو المفتاح للاستغلال وبس هاذي طريقة حل التحدي
لان رفع الملفات كانت محدودة وقبلت فقط صيغ معينة
SQLite نفسه ما يهتم بالصيغة الخارجية للملف اذا تحملت المكتبة عن طريق load_extension هنا يصير يعتمد على المحتوى الداخلي للمكتبة وهذا هو المفتاح للاستغلال وبس هاذي طريقة حل التحدي
جاري تحميل الاقتراحات...