Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2017-13253 — كود PoC لـ CVE-2017-13253 | Kitploit
أدوات/GitHubGitHub/tamirzb/cve-2017-13253
أمان أندرويدتحليل الذاكرة الجنائيتحليل الثغرات الأمنيةالاستغلالتطوير الحمولاتاستغلال الملفات الثنائية
GitHubtamirzb/cve-2017-13253

CVE-2017-13253

كود PoC لـ CVE-2017-13253

عرض المستودع
37112منذ 5 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2017-13253

كود PoC لثغرة CVE-2017-13253.

الشرح الكامل متاح هنا. لاحظ أن الأرقام مختلفة قليلاً عن مقال المدونة، حيث وجدت أن هناك فرصة أكبر لحدوث انهيار (crash) مع كومة بحجم 0x2000 (بالطبع إذا قمت بتشغيله مرات كافية فسوف ينهار على أي حال).

لأي أسئلة/مشاكل/تعليقات، يمكنك التواصل معي على تويتر (@tamir_zb).

البناء

من أجل بناء هذا:

  1. قم بتنزيل الكود المصدري لنظام Android.
  2. ضع هذا المستودع في AOSP/external.
  3. قم بتشغيل الأوامر التالية:
root@kitploit:~
    cd AOSP
    source build/envsetup.sh
    make icrypto_overflow

النتيجة

تشغيل هذا ضد إصدار غير مُصحح من Android (8.0-8.1 قبل مارس 2018) يجب أن يؤدي إلى تجاوز سعة (overflow). قد يؤدي هذا إلى انهيار (crash)، اعتماداً على ما إذا كانت البيانات المستبدلة قابلة للكتابة أم لا.

يجب أن يقوم الكود بطباعة مخرجات طريقة decrypt، والتي قد تختلف:

  • في حال تم تشغيله ضد إصدار مُصحح من Android (مارس 2018 أو أحدث)، فإن decrypt يجب أن تُرجع BAD_VALUE (22-).
  • في حال لم يحدث أي انهيار (البيانات المستبدلة قابلة للكتابة)، فإن decrypt يجب أن تُرجع مقدار البيانات التي نسختها.
  • في حال كان المُصنّع (vendor) يطبق طبقة HAL كعملية منفصلة (مثل Pixel 2)، فإن decrypt يجب أن تُرجع UNKNOWN_ERROR (32-).
  • في حال كان المُصنّع (vendor) يطبق طبقة HAL في نفس العملية (مثل Nexus 5X)، فإن decrypt يجب أن تُرجع 0.

هذا مقتطف جزئي من تقرير الانهيار (crash dump) الناتج عن تشغيل هذا الـ PoC:

root@kitploit:~
Build fingerprint: 'google/walleye/walleye:8.1.0/OPM1.171019.011/4448085:user/release-keys'
Revision: 'MP1'
ABI: 'arm'
pid: 761, tid: 5232, name: HwBinder:761_1  >>> /vendor/bin/hw/[email protected] <<<
signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0xee20f000
    r0 ee20f000  r1 ee20d021  r2 00001eff  r3 00000001
    r4 00000001  r5 00000000  r6 ed117008  r7 00000000
    r8 00000000  r9 fffff82a  sl ee20d000  fp ee20efff
    ip 08000000  sp ed2893c8  lr ed369e6b  pc edda7f0c  cpsr 20070010

backtrace:
    #00 pc 00018f0c  /system/lib/libc.so (__memcpy_base+244)
    #01 pc 00004e67  /vendor/lib/mediadrm/libdrmclearkeyplugin.so (clearkeydrm::CryptoPlugin::decrypt(bool, unsigned char const*, unsigned char const*, android::CryptoPlugin::Mode, android::CryptoPlugin::Pattern const&, void const*, android::CryptoPlugin::SubSample const*, unsigned int, void*, android::AString*)+82)
    ...

memory map (205 entries):
(fault address prefixed with --->)
    ...
    ee20d000-ee20efff rw-         0      2000  /dev/ashmem/MemoryHeapBase (deleted)
--->ee20f000-ee20ffff ---         0      1000  [anon:thread signal stack guard page]
    ...

كما ترى، عنوان الخطأ (fault address) هو الذاكرة التي تلي الذاكرة المشتركة مباشرة. وبما أن هذه الذاكرة محمية ضد الكتابة، فإن تجاوز السعة أدى إلى خطأ تجزئة (segmentation fault).

تنزيل الأداة