خطوات إعادة التنفيد (Steps to Reproduce)

جارٍ التحميل…

01 / ملخص الدرس

خطوات إعادة التنفيد (Steps to Reproduce)

إزاي تكتب خطوات يقدر أي حد يمشي عليها ويوصل لنفس النتيجة: مرقّمة، وفيها الـ URL والـ payload والدليل.

02 / شرح الدرس مكتوبًا

نص شرح المعلم والكود الذي كتبه ونتيجة تشغيله، بنفس ترتيب الدرس.

أهلاً بيك. المطور قرا الـ Finding، وقال: مش مصدّق، أنا جرّبت ومفيش مشكلة. المشكلة غالباً مش فيه… المشكلة في الخطوات اللي إنت كتبتها. نشوف خطوات وحشة. لقيت SQLi، وخدت الـ database. طب إزاي؟ فين؟ بإيه؟ نشغّل… ولا حد يقدر يكرر ده.

main.py
steps = [
    "Found SQLi",
    "Got the database",
]

for i, s in enumerate(steps, 1):
    print(f"{i}. {s}")

المخرجات

1. Found SQLi
2. Got the database

الخطوات الكويسة ليها شروط: مرقّمة، وكل خطوة عملية واحدة. فيها الـ URL أو الـ IP بالزبط. فيها الـ payload كامل، جاهز للنسخ. وكل خطوة مهمة، معاها اسم الـ Screenshot اللي بيِتْبِتها. نفس الـ Finding، بخطوات كويسة. نشغّل… كده أي مطور يقدر يمشي وراك خطوة خطوة.

main.py
steps = [
    "Open http://10.10.10.5/login.php",
    "Intercept the login request in Burp",
    "Set username to: admin' OR 1=1-- -",
    "Forward the request",
    "You are logged in as admin (see 09-sqli-admin.png)",
]

for i, s in enumerate(steps, 1):
    print(f"{i}. {s}")

المخرجات

1. Open http://10.10.10.5/login.php
2. Intercept the login request in Burp
3. Set username to: admin' OR 1=1-- -
4. Forward the request
5. You are logged in as admin (see 09-sqli-admin.png)

واختبار سهل: ادّي الخطوات لحد تاني، ما شافكش وإنت شغال. لو قدر يوصل لنفس النتيجة، يبقى الخطوات كويسة. ولو سألك ولا سؤال، يبقى فيه حاجة ناقصة. دورك: ضيف خطوة في الأول، إن الـ Burp proxy يتشغّل على مِيّة سبعة وعشرين صفر صفر واحد، port تمانية آلاف وتمانين.

تمرين

ضيف "Start Burp proxy on 127.0.0.1:8080" كأول خطوة.

الحل: نشغّل…

main.py
steps = [
    "Start Burp proxy on 127.0.0.1:8080",
    "Open http://10.10.10.5/login.php",
    "Intercept the login request in Burp",
    "Set username to: admin' OR 1=1-- -",
    "Forward the request",
    "You are logged in as admin (see 09-sqli-admin.png)",
]

for i, s in enumerate(steps, 1):
    print(f"{i}. {s}")

المخرجات

1. Start Burp proxy on 127.0.0.1:8080
2. Open http://10.10.10.5/login.php
3. Intercept the login request in Burp
4. Set username to: admin' OR 1=1-- -
5. Forward the request
6. You are logged in as admin (see 09-sqli-admin.png)

الدرس الجاي: لقينا الثَّغْرة وعندنا الدليل… طب هي خطيرة قد إيه على البيزنس؟ ده الـ Impact. يلا بينا.

03 / دروس المسار (21)
  1. 01ليه التقرير أهم حاجة في الـ Pentest
  2. 02مين بيقرا التقرير؟
  3. 03نظام Notes من أول دقيقة
  4. 04Activity Log: كل حاجة بالوقت
  5. 05خلّي الـ Terminal يسجّل لوحده
  6. 06الأدلة: إيه اللي يعتبر دليل؟
  7. 07سلامة الأدلة: Hash و Chain of Custody
  8. 08إخفاء البيانات الحساسة (Redaction)
  9. 09خطوات إعادة التنفيد (Steps to Reproduce)انت هنا
  10. 10الـ Impact: الخطر الحقيقي على البيزنس
  11. 11CVSS: الخطورة برقم
  12. 12الـ Risk Matrix: الاحتمال في الـ Impact
  13. 13ترتيب الأولويات والـ Quick Wins
  14. 14هيكل تقرير اختبار الاختراق
  15. 15الـ Executive Summary: صفحة للإدارة
  16. 16كتابة الـ Finding التقني
  17. 17توصيات الإصلاح اللي تتنفّد فعلاً
  18. 18خلّي Python يكتب التقرير
  19. 19المراجعة قبل التسليم والـ Retest
  20. 20تقرير امتحان OSCP
  21. 21المراجعة النهائية: من الـ Note للتقرير