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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
browser-pwn — مجموعة محدّثة من الموارد التي تستهدف استغلال المتصفحات. | Kitploit
أدوات/GitHubGitHub/m1ghtym0/browser-pwn
الاستغلالالاختبار العشوائيCTFالأوراق والأبحاثالتعلم والتعليمموارد منسقةاستغلال الملفات الثنائية
GitHubm1ghtym0/browser-pwn

browser-pwn

مجموعة محدّثة من الموارد التي تستهدف استغلال المتصفحات.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

Browser-Pwn

يُهيمن على عالم المتصفحات 4 لاعبون رئيسيون:

  • Chromium/Chrome (محرك Blink)
  • Firefox (محرك Gecko)
  • Safari (محرك WebKit)
  • Edge (محرك Blink (محرك EdgeHTML السابق)

ينقسم ما يلي إلى جزأين:

  • معلومات تساعد على فهم بنيتها وتنفيذها وكيفية بنائها من المصادر
  • معلومات تساعد في العثور على ميزة إظهار الآلة الحاسبة

فهرس المحتويات

  1. المحركات
    • نظرة عامة
    • Chromium
    • Firefox
    • Safari
    • Edge
  2. الاستغلال
    • نظرة عامة
    • Chromium
    • Firefox
    • Safari
    • Edge
  3. الأدوات
  4. توثيق جافاسكربت

المحركات

نظرة عامة على المحركات

  • أساسيات محرك الجافاسكربت: الجيد والسيئ والقبيح
  • أساسيات محرك الجافاسكربت: الأشكال والذاكرة المؤقتة المضمّنة (Inline Caches)
  • محركات الجافاسكربت - كيف تعمل أصلًا (فيديو)

تصفح المصادر

بالطبع يمكنك استخدام إعدادك المفضل لتصفح المصادر. ومع ذلك، فإن هذه المستودعات كبيرة نسبيًا وقد جربت عدة إعدادات مختلفة حتى وجدت ما يناسبني. لذا إذا لم يكن لديك إعداد جيد بالفعل، فإليك بعض تجاربي التي قد تساعدك:

  • CTags (+Vim): تعمل بشكل جيد مع تتبع المرجعيات والاستدعاءات. إذا كنت معتادًا على التنقل في أشجار المصادر الكبيرة بهذا الإعداد البسيط، فقد يكون خيارًا جيدًا لك. الجانب السلبي بالطبع هو نقص الميزات التي تأتي بها معظم بيئات التطوير الكبيرة هذه الأيام.
  • CLion: أستخدم منتجات JetBrains في الكثير من أنشطتي البرمجية، لكن CLion لم يعمل جيدًا معي، خاصةً فيما يتعلق بتتبع المرجعيات. بالطبع قد يكون ذلك بسبب مشكلات في الإعداد.
  • Eclipse: لم أستخدمه منذ فترة، لكنه اتضح أنه خيار جيد. لسوء الحظ، يتطلب الكثير من الموارد لكي يتمكن المفهرس من معالجة الكود.
    • هنا وصف إعداد لمشروع Chromium، لكنه يعمل بطريقة مماثلة للمشاريع الأخرى أيضًا.
  • ccls+VSCode هذا هو الخيار الأفضل بالنسبة لي حتى الآن. ccls سريع جدًا في فهرسة المستودعات ويعمل بشكل رائع مع VSCode. يمكنك أيضًا دمجه مع محررات وبيئات تطوير أخرى انظر https://github.com/MaskRay/ccls/wiki/Editor-Configuration

Chromium (Blink)

المشروع | GitHub

مقالات:

  • ما هو Chromium؟ (DE)

محرك الجافاسكربت الخاص بـ Blink هو V8.

V8

المشروع | GitHub | المصدر | How2Build

البناء (Ubuntu 18.04):

root@kitploit:~
$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
$ export PATH=$PATH:./depot_tools
$ gclient
$ mkdir ./v8 && cd ./v8
$ fetch v8 && cd v8
$ git pull
$ gclient sync
$ ./build/install-build-deps.sh
$ tools/dev/gm.py x64.release
$ out/x64.release/d8

خيارات مفيدة:

  • --print-opt-code: الكود المُنشأ بواسطة المترجم المُحسِّن
  • --print-byte-code: البايت كود المُنشأ بواسطة المفسِّر
  • --trace-ic: أنواع الكائنات المختلفة التي يواجهها موقع الاستدعاء
  • --trace-opt و--trace-deopt: توضح أي الدوال يتم تحسينها أو إلغاء تحسينها
  • --trace-turbo: تتبعات TurboFan لعرضها في أداة التصور Turbolizer

مقالات:

  • جولة في V8

مترجم JIT: TurboFan

التوثيق | المدونة

يوفر V8 أداة تصور لـ TurboFan تُسمى Turbolizer

مقالات:

  • مقدمة إلى TurboFan
استخدام Turbolizer:
  1. شغّل v8 مع --trace-turbo: d8 --trace-turbo foo.js
  2. يُنشئ ملفات json مثل turbo-foo-0.json
  3. انتقل إلى v8/tools/turbolizer وقم بالتثبيت باستخدام npm كما هو موضح في README.md
  4. قم بتشغيل خادم للدليل مثل python -m SimpleHTTPServer 8000
  5. تصفح localhost:8000 وافتح turbo-foo-0.json

Firefox (Gecko)

المشروع | GitHub

محرك الجافاسكربت الخاص بـ Gecko هو Spidermonkey.

Spidermonkey

المشروع | المصدر | How2Build

المصدر
  • builtin

البناء (Ubuntu 18.04):

root@kitploit:~
$ wget -O bootstrap.py https://hg.mozilla.org/mozilla-central/raw-file/default/python/mozboot/bin/bootstrap.py && python bootstrap.py
$ git clone https://github.com/mozilla/gecko-dev.git && cd gecko-dev
$ cd js/src
$ autoconf2.13

# This name should end with "_DBG.OBJ" to make the version control system ignore it.
$ mkdir build_DBG.OBJ
$ cd build_DBG.OBJ
$ ../configure --enable-debug --disable-optimize
# Use "mozmake" on Windows
$ make -j 6
$ js/src/js

مترجم JIT: IonMonkey

المشروع

يوفر Spidermonkey أداة تصور لـ IonMonkey تُسمى IonGraph

المصدر
  • jit

Safari (Webkit)

المشروع | GitHub

محرك الجافاسكربت الخاص بـ WebKit هو JavaScriptCore (JSC).

JavaScriptCore

المشروع | الويكي | المصدر

مقالات:

  • http://www.filpizlo.com/papers.html
المصدر
  • Runtime: Source/JavaScriptCore/runtime

البناء (Ubuntu 18.04):

root@kitploit:~
# sudo apt install libicu-dev python ruby bison flex cmake build-essential ninja-build git gperf
$ git clone git://git.webkit.org/WebKit.git && cd WebKit
$ Tools/gtk/install-dependencies
$ Tools/Scripts/build-webkit --jsc-only --debug
$ cd WebKitBuild/Release
$ LD_LIBRARY_PATH=./lib bin/jsc

مترجم JIT: LLInt+ Baseline JIT + DFG JIT + FTL JIT

يمتلك WebKit نظام مترجم JIT من 4 طبقات، يمثل المفاضلة بين تكلفة الأداء الإضافية وفائدة الأداء.

مقالات:

  • مقدمة إلى تحسينات JIT لجافاسكربت WebKit
  • تقديم مترجم B3 JIT
المصدر
  • LLInt (المفسِّر منخفض المستوى)
  • Baseline JIT
  • DFG JIT (مخطط تدفق البيانات)
  • FTL JIT (مترجم Just In Time الأسرع من الضوء)

Edge (Blink/EdgeHTML)

المشروع | GitHub

منذ أن تحول Edge إلى Blink ومشروع Chromium كمحرك عرض له، أصبح Edge يستخدم v8. في الأصل، كان لدى Edge محرك عرض خاص به يُدعى EdgeHTML، وكان يستخدم محرك الجافاسكربت ChakraCore.

ChakraCore

GitHub | How2Build

التوثيق

  • نظرة عامة على البنية

المصدر

  • Runtime: الأنواع
  • Runtime: اللغة

البناء (Ubuntu 18.04):

root@kitploit:~
# To build ChakraCore on Linux: (requires Clang 3.7+ and Python 2)
$ apt-get install -y git build-essential cmake clang libicu-dev libunwind8-dev
$ git clone https://github.com/Microsoft/ChakraCore && cd ChakraCore
$ ./build.sh --cc=/usr/bin/clang-3.9 --cxx=/usr/bin/clang++-3.9 --arch=amd64 --debug
$ out/Debug/ch

الاستغلال

نظرة عامة على الاستغلال

  • Saelo: مهاجمة محركات الجافاسكربت
  • Awesome-Browser-Exploitation
  • مهاجمة تطبيقات WebKit (شرائح)
  • Saelo: مهاجمة مترجمات JIT من جانب العميل - BlackHat 2018
    • الفيديو
    • الشرائح
  • j0nathanj: من الصفر إلى ZeroDay (اكتشاف ثغرة Zero Day في Chakra)
    • الفيديو الشرائح
  • Saelo: Fuzzili - التزويد العشوائي (الموجَّه) لمحركات الجافاسكربت
    • الفيديو
    • الشرائح

Chromium Pwn

مقالات

  • استغلال TurboFan عبر إزالة فحص الحدود
  • saelo: استغلال الأخطاء المنطقية في محركات جافاسكربت JIT
    • مقال Phrack
    • شرائح 41con 19'

تحديات CTF

  • 34c3: v9
    • المصادر
    • شرح (سكربت الاستغلال)
  • 35c3: Krautflare
    • الملفات
    • شرح
    • شرح
  • CSAW-Finals-2018: ES1337
    • الملفات + الشرح
  • Plaid CTF 2018: Roll a dice
    • الملفات
    • شرح
    • شرح
  • Google CTF Finals 2018: Just In Time
    • الملفات + الشرح
    • الشرائح
    • شرح
  • *CTF 2019: oob-v8
    • الملفات
    • شرح
    • شرح
    • شرح
  • RealWorldCTF Quals 2019: accessible
    • الملفات
    • شرح

العالم الحقيقي

  • MobilePwn2Own 2013 - Chrome على أندرويد
  • https://halbecaf.com/2017/05/24/exploiting-a-v8-oob-write/
  • niklasb: استغلال IPC في Chrome
    • الفيديو
    • الشرائح
  • شرح CVE-2019-5782
  • CVE-2019-5790
  • تحليل ثغرة تنفيذ التعليمات البرمجية عن بُعد CVE-2019-5786 في Chrome

التحصين والتخفيف

  • تحصين الكومة

Firefox Pwn

مقالات

  • التجريب مع SpiderMonkey
  • OR'LYEH؟ الظل فوق Firefox
  • رحلة في IonMonkey: تحديد السبب الجذري لـ CVE-2019-9810

تحديات CTF

  • 33c3: Feuerfuchs
    • المصادر
    • شرح
    • الشرح + البناء
  • Blaze 2018: blazefox
    • المصادر
    • شرح
    • شرح (سكربت الاستغلال)
    • شرح (سكربت الاستغلال)
    • البناء + الشرح
  • 35c3 FunFox
    • المصادر

العالم الحقيقي

  • مقدمة في استغلال SpiderMonkey
    • مقال
  • الاستخدام بعد التحرير (Use-after-free) في Spidermonkey (Beta 53)
    • مقال
    • محاضرة
    • الشرائح
  • https://saelo.github.io/posts/firefox-script-loader-overflow.html
  • الاستخدام بعد التحرير (Use-after-free) في SpiderMonkey (64.0a1)
    • مقال
  • CVE-2019-11707 الارتباك في الأنواع (Type Confusion)
    • شرح
    • التقرير
  • CVE-2019-11708 & CVE-2019-9810
    • شرح

Safari Pwn

تحديات CTF

  • RealWorldCTF 2018: محرك للمبتدئين
    • الملفات
  • 35c3: WebKid
    • المصادر
    • شرح

العالم الحقيقي

  • http://www.phrack.org/papers/attacking_javascript_engines.html
    • المصدر
    • الشرح + البناء
  • التزويد العشوائي (Fuzzing) لـ WebKit وتحليل CVE-2019-8375
  • شرح CVE-2017-2446
  • https://saelo.github.io/posts/jsc-typedarray.slice-infoleak.html
  • https://github.com/saelo/pwn2own2018/tree/master/stage0
  • https://github.com/LinusHenze/WebKit-RegEx-Exploit
  • https://github.com/W00dL3cs/exploit_playground/tree/master/JavaScriptCore

التحصين والتخفيف

  • تحصين الكومة
  • CagedPtr المصدر ومثال ArrayBuffer

Edge

مقالات

  • bkth: حكاية ثغرات Chakra
  • bkth: مهاجمة Edge من خلال مترجم الجافاسكربت
    • الفيديو
    • الشرائح

تحديات CTF

  • Plaid 2017: chakrazy
    • شرح
  • N1CTF 2018: Chakra
    • الملفات
  • RealWorldCTF Quals 2019: Appetizer
    • الملفات
  • Trend Micro CTF 2019: ChakraCore 400
    • شرح
    • شرح
    • الاستغلال

العالم الحقيقي

  • bkth, S0rryMyBad: ثغرة غير JIT، استغلال JIT

الأدوات

مكتبات:

  • pwnjs (مكتبة جافاسكربت لاستغلال المتصفحات)

أدوات مساعدة

  • int64.js
  • utils.js

التصحيح

  • shadow إطار عمل لاستغلال كومة jemalloc (مُخصِّص الذاكرة المستخدم من قبل Firefox)

توثيق جافاسكربت (ECMAScript)

  • الأنواع والقيم
  • الكائنات
  • خصائص الكائنات
تنزيل الأداة