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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2021-21017 | Kitploit
أدوات/GitHubGitHub/zeusbox/cve-2021-21017
تحليل الذاكرة الجنائيتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبالاختبار العشوائياستغلال الملفات الثنائية
GitHubzeusbox/cve-2021-21017

CVE-2021-21017

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2021-21017

ليست مشكلة علامة ترتيب البايت في Adobe Reader مرة أخرى :)

root@kitploit:~
# IA32 plugin, ver. 2020.013.20074.
char * __cdecl FUN_2581894c(char *base_url,LPCSTR rel_url)
{
  ............................................................
  ............................................................
  if ((base_url != (char *)0x0) && (rel_url != (LPCSTR)0x0)) {
    if ((*base_url == -2) && (base_url[1] == -1)) {
      iVar6 = bytes_len(base_url);
      pcVar7 = base_url + iVar6;
      pcVar8 = rel_url + 2;
      do {
        do {
          cVar3 = *pcVar8;
          pcVar1 = pcVar8 + 2;
          *pcVar7 = cVar3;
          pcVar2 = pcVar7 + 2;
          cVar4 = pcVar8[1];
          pcVar7[1] = cVar4;
          pcVar7 = pcVar2;
          pcVar8 = pcVar1;
        } while (cVar3 != '\0');
      } while (cVar4 != '\0');
    }
    else {
      lstrcatA(base_url,rel_url);
    }
    return base_url;
  }
  .............................................................
  .............................................................
}

عند بناء عنوان URL مطلق من عنوان نسبي إلى baseURL الخاص بمستند PDF لاستخدامه في واجهات برمجة التطبيقات مثل: app.launchURL، document.submitForm أو app.media.createPlayer، إذا كان baseURL يبدو كسلسلة UTF-16BE، فإن السلسلة النسبية تُعامل أيضاً كسلسلة UTF-16BE عند إجراء التسلسل، على الرغم من أنها في الواقع سلسلة ANSI.

قد يؤدي هذا من ناحية إلى وصول قراءة خارج الحدود. ومن ناحية أخرى، عند تخصيص الذاكرة لاحتواء المخزن المؤقت الوجهة، يتم "قياس" عنوان URL النسبي كسلسلة ANSI. وهذا بالطبع غير كافٍ إذا حدثت قراءة خارج الحدود (السلسلة + فاصل NULL تملآن كتلة كومة كاملة).

ماذا يعني هذا؟

الالتباس في النوع => قراءة خارج الحدود => تجاوز سعة الكومة => إغراق كامل!

مرفق PoC

سيؤدي هذا في أغلب الأحيان إلى تعطل، وأحياناً إلى الكتابة فوق byteLength لكائن ArrayBuffer لتُصبح 0xFF.

إذا كانت لديك أسئلة، فلا تتردد في التواصل معي على تويتر: https://twitter.com/Zeusb0x

الاكتشاف

سيتضمن كتالوج مستند PDF إدخال URI يحمل مرجعاً غير مباشر إلى كائن قاموس. وسيحتوي هذا الأخير بدوره على إدخال Base، وهو baseURL الفعلي. وسيكون غالباً موجوداً بترميز ست عشري ويبدأ بالحرفين \xFE\xFF. (انظر PoC). لحسن الحظ، هذه هي الطريقة الوحيدة لتغيير baseURL لمستند في سياق عادي غير متميز. فمحاولة القيام بذلك من JavaScript ستؤدي إلى استثناء أمني.

تنزيل الأداة