Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
exploit-writing-for-oswe — نصائح حول كيفية كتابة سكربتات الاستغلال (بشكل أسرع!) | Kitploit
أدوات/GitHubGitHub/rizemon/exploit-writing-for-oswe
البرمجة النصية والأتمتةاستغلال تطبيقات الويبأمن الويباختبار الاختراقالتعلم والتعليمموارد منسقةتطوير الحمولات
GitHubrizemon/exploit-writing-for-oswe

exploit-writing-for-oswe

نصائح حول كيفية كتابة سكربتات الاستغلال (بشكل أسرع!)

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

الأكثر شعبية

عرض الكل →

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

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

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

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

كتابة الاستغلالات لشهادة OSWE

خلفية

ما هو

يحتوي هذا المستودع على قائمة من المقتطفات والنصائح المفيدة المتعلقة بكتابة سكربتات الاستغلال في مختبرات وامتحان شهادة OSWE.

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

يُعد قسم مقتطفات برمجية مكانًا رائعًا للبدء إذا لم تكن لديك خبرة في استخدام مكتبة requests أو كنت جديدًا على Python. وإلا، فلا تتردد في الانتقال إلى قسم كود قابل لإعادة الاستخدام أو قسم نصائح.

لماذا

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

جدول المحتويات

  • كتابة الاستغلالات لشهادة OSWE
    • خلفية
      • ما هو
      • لماذا
    • جدول المحتويات
    • مقتطفات برمجية
      • قالب البداية
      • استيرادات مفيدة
      • استخدام مكتبة requests
        • إرسال أبسط طلب HTTP
        • تحديد طرق HTTP مختلفة
        • قراءة استجابة HTTP
        • إرسال البيانات كسلسلة استعلام في الرابط (باستخدام وسيط params)
        • إرسال البيانات كسلسلة استعلام في جسم الطلب (باستخدام وسيط data)
        • إرسال البيانات بصيغة JSON في جسم الطلب (باستخدام وسيط json)
        • إرسال ملف في جسم الطلب (باستخدام وسيط files)
        • تعيين ترويسات HTTP (باستخدام وسيط headers)
        • تعيين ملفات تعريف الارتباط HTTP (باستخدام وسيط cookies)
        • تعطيل تتبّع إعادة التوجيه 3XX (باستخدام وسيط allow_redirects)
        • التفاعل مع خادم HTTPS غير مُتحقَّق منه (باستخدام وسيط verify)
        • إرسال طلب عبر بروكسي HTTP (باستخدام وسيط proxies)
        • إنشاء Session
        • تعيين ملفات تعريف ارتباط دائمة
        • تعيين ترويسات دائمة
      • استكشاف الأخطاء وإصلاحها
        • استخدام Wireshark والتصفية لطلبات HTTP
        • طباعة محتويات طلب HTTP
        • تمرير طلب HTTP عبر Burp Suite وفحصه
      • كود قابل لإعادة الاستخدام
        • تقديم ملفات عبر HTTP
        • سرقة ملفات تعريف الارتباط HTTP
        • تسريع حقن SQL
    • نصائح
      • إجراء فحص سلامة بعد كل طلب HTTP باستخدام assert
      • طباعة رسائل ذات معنى بعد كل خطوة
      • فصل كل خطوة استغلال في دالة خاصة بها
      • إنشاء كائن Session عام بحيث لا يحتاج إلى تمريره صراحةً لكل استدعاء دالة
      • إنشاء سلسلة BASE_URL عامة وإنشاء الروابط المطلوبة منها
      • لإجبار جميع طلبات HTTP على المرور عبر Burp Suite دون استخدام وسيط proxies، عيّن متغير البيئة HTTP_PROXY / HTTPS_PROXY عند التشغيل
      • تطبيق مخططات ترميز/فك ترميز لتمكين النقل الآمن للحمولات
      • استخدم """ لإنشاء سلسلة الحمولة إذا كانت تحتوي على كلٍّ من علامات الاقتباس المفردة (') والمزدوجة (")
      • تسريع حقن SQL باستخدام تعدد الخيوط
      • تضمين ملف تعريف ارتباط مستخدم مُصادَق بشكل ثابت عند تطوير استغلالات للميزات التي تتطلب مصادقة
      • تجنب استخدام f-strings (f"") أو str.format إذا كانت الحمولة تحتوي على عدد كبير جدًا من الأقواس المتعرجة ({})

مقتطفات برمجية

قالب البداية

import requests

def main():
    print("Hello World!")

if __name__ == __main__:
    main()

استيرادات مفيدة

# For sending HTTP requests
import requests

# For Base64 encoding/decoding
from base64 import b64encode, b64decode, urlsafe_b64encode, urlsafe_b64decode

# For getting current time or for calculating time delays
from time import time

# For regular expressions
import re

# For running shell commands
import subprocess

# For multithreading
from concurrent.futures import ThreadPoolExecutor

# For running a HTTP server in the background
import threading
from http.server import HTTPServer, BaseHTTPRequestHandler

# For parsing HTTP cookies
from http import cookies

# For getting command-line arguments
import sys

استخدام مكتبة requests

إرسال أبسط طلب HTTP

resp_obj = requests.get("https://github.com")

تحديد طرق HTTP مختلفة

# GET method
requests.get("https://github.com")

# POST method
requests.post("https://github.com")

# PUT method
requests.put("https://github.com")

# PATCH method
requests.patch("https://github.com")

# DELETE method
requests.delete("https://github.com")

قراءة استجابة HTTP

resp_obj = requests.get("https://github.com")

# HTTP status code (e.g 404, 500, 301)
resp_obj.status_code

# HTTP response headers (e.g Location, Content-Disposition)
resp_obj.headers["Location"]

# Body as bytes
resp_obj.content

# Body as a string
resp_obj.text

# Body as a dictionary (if body is a JSON)
resp_obj.json()

إرسال البيانات كسلسلة استعلام في الرابط (باستخدام وسيط params)

params = {
    "foo": "bar"
}

requests.get("https://github.com", params=params)

إرسال البيانات كسلسلة استعلام في جسم الطلب (باستخدام وسيط data)

data = {
    "foo": "bar"
}

requests.post("https://github.com", data=data)

إرسال البيانات بصيغة JSON في جسم الطلب (باستخدام وسيط json)

data = {
    "foo": "bar"
}

requests.post("https://github.com", json=data)
تنزيل الأداة