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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
lightweight_static_analysis — أنشئ تحليلات ثابتة مفيدة وخفيفة الوزن باستخدام أدوات مفتوحة المصدر + القليل من الكود الخاص بك | Kitploit
أدوات/GitHubGitHub/nccgroup/lightweight_static_analysis
تحليل الشفرة الثابت (SAST)تحليل الثغرات الأمنيةتحليل الكودالبرمجة النصية والأتمتةأمن الويباختبار الاختراقالتعلم والتعليم
GitHubnccgroup/lightweight_static_analysis

الأكثر شعبية

عرض الكل →

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

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

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

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

lightweight_static_analysis

أنشئ تحليلات ثابتة مفيدة وخفيفة الوزن باستخدام أدوات مفتوحة المصدر + القليل من الكود الخاص بك

عرض المستودع
134منذ 6 سنواتلم تتم المراجعة بعد

تحليل ثابت خفيف الوزن

يحتوي هذا المستودع على كود إثبات المفهوم (PoC) لمحادثة ShellCon 2019، "بناء أداتك الخاصة: كيفية كتابة أدوات تحليل ثابت مخصصة وخفيفة الوزن " (الشرائح).

باختصار، يوضح هذا المستودع بعض الأمثلة الملموسة لكيفية بناء بعض التحليلات الثابتة المثيرة للاهتمام باستخدام أدوات مفتوحة المصدر وكمية صغيرة من الكود المخصص.

أمثلة الأكواد في هذا المستودع:

  1. استكشاف قاعدة أكواد Rails بشكل متكرر لفهم وحدات التحكم التي تعرّفها والـ before_actions التي تستخدمها.
  2. العثور على حقن الأوامر في تطبيقات NodeJS.

كيفية عمل الأمثلة

على مستوى عالٍ، يعمل تنفيذ الأمثلة على النحو التالي:

  1. ابحث عن بعض أكواد المصدر التي تريد تحليلها.
  2. حلّل الكود المصدري باستخدام أداة semantic التابعة لجيت هاب إلى شجرة النحو المجردة (AST) ثم أخرجها إلى JSON.
  3. حلّل شجرة AST بصيغة JSON باستخدام كود بايثون الخاص بنا ثم قم ببعض التحليلات المثيرة للاهتمام عليها.

الإعداد

هذا المشروع مُصمم ليُشغَّل باستخدام Docker.

للقيام بذلك، ستحتاج إلى تهيئة بعض الأشياء أولاً.

نظرًا لأن Dockerfile الخاص بنا مبني على صورة Docker الخاصة بـ semantic، والتي تستضاف على سجل حزم جيت هاب، ستحتاج إلى تهيئة Docker للاستخدام مع سجل حزم جيت هاب.

  1. أنشئ رمز وصول شخصي بالصلاحيات التي يصفها المقال أعلاه.
  2. سجّل الدخول إلى سجل حزم جيت هاب: $ docker login docker.pkg.github.com -u USERNAME -p TOKEN
  3. ابنِ حاوية Docker: docker build -t lightweight_static_analysis .
  4. شغّل صدفة bash داخل حاوية Docker ثم شغّل السكربتات الخاصة بنا.
root@kitploit:~
# Run this 
# (Make sure to run this from a terminal in this repo's project root)
$ docker run -it --rm --entrypoint /bin/bash -v $PWD:/lightweight_static_analysis lightweight_static_analysis

# cd into this project's source code within the 
# running container
$ cd /lightweight_static_analysis

# Run main.py with different config options, described further below

التشغيل

بعد الحصول على صدفة bash داخل حاوية Docker (انظر أعلاه لمعرفة الأمر docker run)، يمكنك تشغيل main.py بواحدة من عدة أوضاع ممكنة.

root@kitploit:~
/lightweight_static_analysis> $ python3 src/main.py <options>

يمكنك رؤية جميع الخيارات المتاحة بتشغيل src/main.py بدون خيارات أو بالنظر إلى قسم parser.add_argument في main.py.

استكشاف قواعد أكواد Rails

فيما يلي بعض الأوامر التي يمكن أن تساعدك في استكشاف قاعدة أكواد Rails بشكل تفاعلي.

أولاً، ستحتاج إلى استنساخ مستودع أو أكثر من مستودعات Rails ووضعها في examples/. إذا كنت بحاجة إلى بعض المستودعات المثال، يمكنك استخدام الكود المصدري لـ rubygems.org، أو أحد المستودعات المدرجة في Open Source Rails.

root@kitploit:~
# Print out the class, super class, defined methods, and before actions
# for all controllers
$ python3 src/main.py --rails-summarize-controllers examples/<repo_name>

# Print out every controller name, grouped by super class
#
# This can find examples where security protections defined in a parent class
# (e.g. ApplicationController or Api::BaseController) aren't applied because
# the vulnerable controller didn't subclass the appropriate class.
$ python3 src/main.py --rails-controllers-by-superclass examples/<repo_name>

# For every before_action used by any controller, list the controllers that
# use that before_action and the routes that it is and isn't applied to
# (e.g. handle the 'except' and 'only" keywords)
#
# This can:
# * Give you quick insight the various before_actions the application defines,
#   yielding some intuition as to the code's flow and organization.
#   * `verify_with_otp` - Hm, that sounds interesting, I probably want to
#      review how that filter is implemented.
# * Show you where a given before_action is and isn't applied across an entire
#   code base, potentially leading to bugs where it is inconsistently used
#
# For example
# * Is there a before_action that's used to protect all state0-changing API
#   routes except for 1 model? That's strange.
# * Is there an authentication or authorization before_action applied to every
#   action in a controller except one? Why?
$ python3 src/main.py --rails-controllers-by-before_action examples/<repo_name>

إذا كنت ترغب في الانتقال إلى بيئة تفاعلية ipdb بعد اكتمال التحليل بحيث يمكنك فحص كود روبي المُحلَّل بشكل تفاعلي، يمكنك ذلك أيضاً بتمرير العلم --repl إلى الأوامر أعلاه.

تعتمد هذه الأمثلة على فئات AstNode المختلفة المعرفة في ast_node.py، وكل الكود الخاص بـ Rails موجود في ruby.py.

العثور على حقن الأوامر عبر exec()s في صدفة JS

لم يتم تنظيف هذا التنفيذ أو توثيقه بعد، ولكن انظر إلى batch_parse_json() في main.py وvisit() والطرق الأخرى التي يستدعيها في visitor.py.

ابقَ على تواصل

يسعدنا التحدث عن هذا العمل بمزيد من التفاصيل، فلا تتردد في فتح مشكلة أو التواصل عبر تويتر: @clintgibler، @defreez.

إذا كنت ترغب في متابعة هذا المشروع وغيره من المشاريع التي نعمل عليها، فاطلع على نشرتنا البريدية tl;dr sec newsletter، حيث نرسل ملخصات مفصلة لأفضل المحادثات الأمنية وروابط لأفضل الأدوات والموارد الأمنية.

إنها نشرة منخفضة الحجم وعالية الإشارة تهدف إلى إبقائك على اطلاع بآخر المستجدات في مجال الأمان حتى تتمكن من أداء عملك بكفاءة وفعالية أكبر، ولديك معلومات مفيدة تشاركها في استراحة أمن المعلومات الخاصة بك.

تنزيل الأداة