> For the complete documentation index, see [llms.txt](https://hacking-notes.jord4n.pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hacking-notes.jord4n.pro/ar/hacking-tools/web/php-security-scanner.md).

# ماسح أمان PHP

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

استخدم أداة البحث عن الدوال كعرض الفرز الرئيسي: ابحث حسب اسم الدالة، أو الفئة، أو التأثير، أو مستوى الخطورة.

## البحث عن الدوال

<table data-view="cards" data-full-width="true" data-search="true"><thead><tr><th>الدالة / النمط</th><th>الفئة</th><th>الخطورة</th><th>الأثر</th><th>فحص الماسح</th><th>الإصلاح</th></tr></thead><tbody><tr><td><code>system()</code></td><td>تنفيذ الأوامر</td><td>حرجة</td><td>تنفيذ أوامر عن بُعد بصلاحية مستخدم الويب</td><td>ضع علامات على سلاسل الأوامر الملوثة، والاستيفاء، والدمج، والمعاملات التي يتحكم بها المستخدم.</td><td>استخدم واجهات PHP الأصلية أو أوامر ومعاملات مسموحًا بها بشكل صارم.</td></tr><tr><td><code>exec()</code></td><td>تنفيذ الأوامر</td><td>حرجة</td><td>تنفيذ أوامر عن بُعد، والتقاط مخرجات الأمر</td><td>تحقق مما إذا كان الإدخال القادم من الطلب أو ملف تعريف الارتباط أو قاعدة البيانات أو الملف أو سطر الأوامر يصل إلى الأمر.</td><td>أزل استخدام الصدفة أو اعزل الأوامر الثابتة خلف قوائم سماح.</td></tr><tr><td><code>shell_exec()</code></td><td>تنفيذ الأوامر</td><td>حرجة</td><td>تنفيذ أوامر عن بُعد مع المخرجات المُعادة</td><td>اكتشف بناء الأوامر الديناميكي والمخرجات المعروضة على الردود.</td><td>استبدله باستدعاءات مكتبة آمنة.</td></tr><tr><td><code>passthru()</code></td><td>تنفيذ الأوامر</td><td>حرجة</td><td>تنفيذ أوامر عن بُعد مع مخرجات خام</td><td>ارفع مستوى الخطورة عندما يمكن الوصول إليه من مسارات الويب أو معالجة الملفات.</td><td>تجنب استدعاءات الصدفة؛ تحقّق من مجموعات الإدخال الثابتة.</td></tr><tr><td><code>proc_open()</code></td><td>التحكم في العمليات</td><td>حرجة</td><td>تنفيذ أوامر عن بُعد، والتفاعل مع العملية</td><td>راجع الأمر، ومواصفات واصفات الإدخال/الإخراج، والبيئة، ودليل العمل.</td><td>استخدم عمالًا مقيّدين وقوالب أوامر ثابتة.</td></tr><tr><td><code>popen()</code></td><td>التحكم في العمليات</td><td>حرجة</td><td>تنفيذ أوامر عن بُعد عبر تدفق العملية</td><td>ضع علامات على سلاسل الأوامر الملوثة وعمليات قراءة التدفق.</td><td>استبدله بواجهات PHP الخاصة بالتدفقات/الملفات حيثما أمكن.</td></tr><tr><td><code>pcntl_exec()</code></td><td>التحكم في العمليات</td><td>حرجة</td><td>استبدال العملية، وخطر تصعيد الامتيازات</td><td>ارفع مستوى الخطورة في سياقات CLI وcron وSUID وsudo والعمال.</td><td>أزل مسارات تنفيذ المفسّر ذات الامتيازات.</td></tr><tr><td><code>`backticks`</code></td><td>تنفيذ الأوامر</td><td>حرجة</td><td>تنفيذ صدفة مخفي</td><td>اكتشف استيفاء المتغيرات داخل تعبيرات backtick.</td><td>استبدله بواجهات برمجة تطبيقات آمنة وصريحة.</td></tr><tr><td><code>eval()</code></td><td>تنفيذ الشيفرة</td><td>حرجة</td><td>تنفيذ PHP عشوائي</td><td>ضع علامة على كل استخدام؛ وارفع الخطورة عندما تكون السلسلة المُقيّمة ديناميكية.</td><td>استخدم الإغلاقات، أو المحللات، أو خرائط التوجيه الثابتة، أو القوالب الآمنة.</td></tr><tr><td><code>assert()</code></td><td>تنفيذ الشيفرة</td><td>عالية</td><td>خطر تنفيذ الشيفرة القديمة</td><td>ضع علامة على تأكيدات السلاسل النصية في قواعد PHP القديمة.</td><td>استخدم التأكيدات المنطقية فقط؛ وأزل السلاسل الديناميكية.</td></tr><tr><td><code>create_function()</code></td><td>تنفيذ الشيفرة</td><td>عالية</td><td>شيفرة قديمة مُقيّمة</td><td>اكتشف الإضافات القديمة وشيفرة توافق PHP 5/7.</td><td>استبدله بالدوال المجهولة.</td></tr><tr><td><code>preg_replace()</code> بـ <code>/e</code></td><td>تنفيذ الشيفرة</td><td>عالية</td><td>استبدال قديم مُقيّم</td><td>ضع علامة على تقييم الاستبدال القديم في التعبيرات النمطية.</td><td>استخدم <code>preg_replace_callback()</code>.</td></tr><tr><td><code>mb_ereg_replace()</code> بـ <code>e</code></td><td>تنفيذ الشيفرة</td><td>عالية</td><td>خطر الاستبدال المُقيّم</td><td>راجع الأنماط الديناميكية وقيم الاستبدال.</td><td>استخدم منطقًا آمنًا مع الاستدعاءات دون تقييم.</td></tr><tr><td><code>include</code></td><td>تضمين الملفات</td><td>حرجة</td><td>LFI/RFI إلى تنفيذ الشيفرة</td><td>ضع علامة على المسارات، والمغلّفات، وحيل الامتدادات التي يتحكم بها المستخدم.</td><td>اربط اختيارات المستخدم بملفات ثابتة.</td></tr><tr><td><code>include_once</code></td><td>تضمين الملفات</td><td>حرجة</td><td>LFI/RFI إلى تنفيذ الشيفرة</td><td>تحقق من مسارات التضمين الديناميكية والآثار الجانبية للتحميل التلقائي.</td><td>استخدم خرائط تضمين ثابتة ومسارات معيارية.</td></tr><tr><td><code>require</code></td><td>تضمين الملفات</td><td>حرجة</td><td>تنفيذ شيفرة التطبيق</td><td>ارفع الخطورة عندما يحتوي المسار على بيانات الطلب.</td><td>ارفض إدخال نظام الملفات الديناميكي.</td></tr><tr><td><code>require_once</code></td><td>تضمين الملفات</td><td>حرجة</td><td>تنفيذ شيفرة التطبيق</td><td>راجع محمّلات الأطر، ومحمّلات الإضافات، ومسارات القوالب.</td><td>استخدم الوحدات المسموح بها فقط.</td></tr><tr><td><code>file_get_contents()</code></td><td>قراءة الملفات / الشبكة</td><td>عالية</td><td>LFI، SSRF، كشف الأسرار</td><td>ضع علامة على المسارات وURLs <code>php://input</code> والتحليل.</td><td>وحِّد المسارات وامنع المخططات الخطرة.</td></tr><tr><td><code>readfile()</code></td><td>قراءة ملف</td><td>عالية</td><td>كشف مباشر للملف</td><td>اكتشف اجتياز المسار ومعالجات التنزيل العامة.</td><td>قدّم الملفات حسب المعرّف من أدلة معتمدة.</td></tr><tr><td><code>fopen()</code></td><td>الوصول إلى الملفات / الشبكة</td><td>عالية</td><td>LFI، SSRF، كتابة عشوائية</td><td>تتبّع الوضع، ومصدر المسار، ومغلفات URL.</td><td>تحقق من المخطط، والوضع، والمسار المعياري.</td></tr><tr><td><code>file()</code></td><td>قراءة ملف</td><td>عالية</td><td>كشف ملف يعتمد على السطور</td><td>ضع علامة على أسماء الملفات التي يتحكم بها المستخدم.</td><td>استخدم مسارات تخزين ثابتة وفحوصات لتفادي التعارض.</td></tr><tr><td><code>SplFileObject</code></td><td>الوصول إلى الملفات</td><td>عالية</td><td>LFI، اجتياز المسار</td><td>اكتشف معاملات المُنشئ الديناميكية.</td><td>تطبيق <code>realpath()</code> فرض الحدود.</td></tr><tr><td><code>file_put_contents()</code></td><td>كتابة ملف</td><td>حرجة</td><td>web shell، استبدال، تسميم الإعدادات</td><td>ارفع الخطورة عندما يكون اسم الملف والمحتوى ملوثين أو يكون المسار عامًا.</td><td>ولّد أسماء الملفات واكتب خارج جذر الويب.</td></tr><tr><td><code>fwrite()</code></td><td>كتابة ملف</td><td>عالية</td><td>تعديل عشوائي للملف</td><td>تتبّع مصدر المقبض من <code>fopen()</code>.</td><td>قَيّد الأدلة القابلة للكتابة وأنواع الملفات.</td></tr><tr><td><code>copy()</code></td><td>كتابة / نقل ملف</td><td>عالية</td><td>زرع ملف أو استبداله</td><td>تحقق من تلوّث المصدر والوجهة.</td><td>استخدم وجهات ثابتة وأسماء آمنة من التعارض.</td></tr><tr><td><code>rename()</code></td><td>نقل ملف</td><td>عالية</td><td>تجاوز الرفع، استبدال</td><td>ضع علامة على مسارات الوجهة التي يتحكم بها المستخدم.</td><td>استخدم أسماء تخزين مُولّدة.</td></tr><tr><td><code>unlink()</code></td><td>حذف ملف</td><td>عالية</td><td>حذف عشوائي للملف</td><td>اكتشف المسارات الملوثة واجتياز المسار.</td><td>احذف حسب معرّف الكائن، لا حسب المسار الخام.</td></tr><tr><td><code>chmod()</code></td><td>الأذونات</td><td>عالية</td><td>إضعاف الامتيازات</td><td>ضع علامة على الأوضاع الواسعة مثل <code>0777</code> والمسارات الملوثة.</td><td>استخدم أوضاع أقل امتيازًا ومسارات ثابتة.</td></tr><tr><td><code>chown()</code> / <code>chgrp()</code></td><td>الملكية</td><td>عالية</td><td>التلاعب بالامتيازات</td><td>راجع نصوص النشر والإدارة.</td><td>لا تعرض تغييرات الملكية لمدخلات التطبيق.</td></tr><tr><td><code>mkdir()</code></td><td>نظام الملفات</td><td>متوسطة</td><td>اجتياز المسار، أذونات ضعيفة</td><td>ضع علامة على المسارات الديناميكية والأوضاع المتساهلة.</td><td>وحِّد المسارات واضبط أذونات صارمة.</td></tr><tr><td><code>touch()</code></td><td>نظام الملفات</td><td>متوسطة</td><td>إنشاء ملف، إساءة استخدام الطابع الزمني</td><td>ارفع الخطورة في cron أو الأدلة ذات الامتيازات.</td><td>استخدم مسارات ثابتة وفحوصات الملكية.</td></tr><tr><td><code>unserialize()</code></td><td>إلغاء التسلسل</td><td>حرجة</td><td>حقن كائنات PHP</td><td>ضع علامة على كل استخدام مع بيانات الطلب أو ملف تعريف الارتباط أو الرفع أو قاعدة البيانات أو الذاكرة المؤقتة أو قائمة الانتظار.</td><td>استخدم JSON أو قيّد <code>allowed_classes</code>.</td></tr><tr><td><code>Phar</code> / <code>phar://</code></td><td>إلغاء التسلسل</td><td>عالية</td><td>حقن كائنات مُفعّل بالبيانات الوصفية</td><td>ضع علامة على <code>phar://</code> المسارات ودوال الملفات التي تتعامل مع الرفوعات.</td><td>احظر المغلفات وتجنب مسارات البيانات الوصفية التي تحتوي على كائنات.</td></tr><tr><td><code>__wakeup()</code></td><td>دالة سحرية</td><td>عالية</td><td>أداة استغلال حقن كائنات</td><td>راجع إجراءات الملفات وSQL والأوامر والشبكة.</td><td>اجعل الدوال السحرية خالية من الآثار الجانبية.</td></tr><tr><td><code>__destruct()</code></td><td>دالة سحرية</td><td>عالية</td><td>أداة استغلال حقن كائنات</td><td>ارفع الخطورة إذا كانت تحذف أو تكتب أو تتضمن أو تنفذ.</td><td>تجنب الآثار الجانبية الخطرة في المدمّر.</td></tr><tr><td><code>__toString()</code></td><td>دالة سحرية</td><td>متوسطة</td><td>تنفيذ ضمني لأداة استغلال</td><td>تحقق من مسارات عرض القوالب والتسجيل.</td><td>اجعل دوال التحويل نقية.</td></tr><tr><td><code>curl_exec()</code></td><td>الشبكة / SSRF</td><td>عالية</td><td>SSRF، الوصول إلى الخدمات الداخلية</td><td>تتبّع خيارات URL، وإعادة التوجيه، والرؤوس، والوكيل، والبروتوكول.</td><td>اسمح بالاستضافة المدرجة في القائمة وامنع النطاقات الخاصة.</td></tr><tr><td><code>fsockopen()</code></td><td>الشبكة</td><td>عالية</td><td>وصول خام إلى الشبكة الداخلية</td><td>ضع علامة على قيم المضيف والمنفذ الديناميكية.</td><td>قَيّد الوجهات وخروج البيانات.</td></tr><tr><td><code>pfsockopen()</code></td><td>الشبكة</td><td>عالية</td><td>وصول دائم إلى الشبكة الداخلية</td><td>راجع اتصالات الخدمات طويلة الأمد.</td><td>استخدم نقاط نهاية ثابتة.</td></tr><tr><td><code>stream_socket_client()</code></td><td>الشبكة</td><td>عالية</td><td>SSRF وإساءة استخدام البروتوكول</td><td>ضع علامة على المخططات والمضيفين والمنافذ الديناميكية.</td><td>استخدم أهداف شبكة مدرجة في قائمة سماح.</td></tr><tr><td><code>SoapClient</code></td><td>الشبكة</td><td>متوسطة</td><td>طلبات على نمط SSRF</td><td>راجع قيم WSDL ونقطة النهاية الديناميكية.</td><td>استخدم WSDL ثابتًا وامنع إعادة التوجيه.</td></tr><tr><td><code>mysqli_query()</code></td><td>أخطاء</td><td>عالية</td><td>حقن SQL</td><td>ضع علامة على SQL المُدمج أو المستوفى.</td><td>استخدم العبارات المُحضّرة.</td></tr><tr><td><code>mysqli_multi_query()</code></td><td>أخطاء</td><td>عالية</td><td>حقن SQL مكدّس</td><td>ارفع الخطورة في استعلامات متعددة العبارات الديناميكية.</td><td>تجنب واجهات برمجة تطبيقات الاستعلامات المتعددة للبيانات المتأثرة بالمستخدم.</td></tr><tr><td><code>PDO::query()</code></td><td>أخطاء</td><td>عالية</td><td>حقن SQL</td><td>ضع علامة على سلاسل الاستعلام الخام التي تحتوي على متغيرات.</td><td>استخدم <code>prepare()</code> والمعاملات المرتبطة.</td></tr><tr><td><code>PDO::exec()</code></td><td>أخطاء</td><td>عالية</td><td>حقن SQL أو SQL تدميري</td><td>راجع إجراءات الإدارة والترقيات.</td><td>استخدم عبارات مُعلّمة بالمعاملات.</td></tr><tr><td><code>call_user_func()</code></td><td>توجيه ديناميكي</td><td>عالية</td><td>إساءة استخدام الاستدعاءات</td><td>ضع علامة على أسماء الاستدعاءات الملوثة.</td><td>استخدم خرائط توجيه ثابتة.</td></tr><tr><td><code>call_user_func_array()</code></td><td>توجيه ديناميكي</td><td>عالية</td><td>إساءة استخدام الاستدعاءات مع معاملات ديناميكية</td><td>تتبّع مصادر الاستدعاء والمعاملات.</td><td>استخدم معالجات صريحة ومدخلات ذات أنواع محددة.</td></tr><tr><td><code>$fn()</code></td><td>دالة متغيرة</td><td>عالية</td><td>توجيه دوال عشوائي</td><td>ضع علامة على أسماء الدوال القادمة من الطلب أو من قاعدة البيانات.</td><td>اربط الأسماء بدوال ثابتة.</td></tr><tr><td><code>$object->$method()</code></td><td>طريقة ديناميكية</td><td>عالية</td><td>إساءة استخدام توجيه الطرق</td><td>ضع علامة على أسماء الطرق القادمة من الإدخال.</td><td>استخدم خرائط طرق مدرجة في قائمة سماح.</td></tr><tr><td><code>ReflectionFunction</code></td><td>الانعكاس</td><td>متوسطة</td><td>استدعاء ديناميكي</td><td>راجع الأسماء المُنعكسة والاستدعاء.</td><td>قَيّد الانعكاس بالأدوات الداخلية فقط.</td></tr><tr><td><code>register_shutdown_function()</code></td><td>استدعاء مؤجل</td><td>متوسطة</td><td>مسار تنفيذ مخفي</td><td>ضع علامة على الاستدعاءات والمعاملات الديناميكية.</td><td>استخدم استدعاءات ثابتة وصريحة.</td></tr><tr><td><code>move_uploaded_file()</code></td><td>ارفع</td><td>عالية</td><td>web shell، استبدال، اجتياز المسار</td><td>تحقق من مسار الوجهة ومنطق الامتداد والتخزين العام واستخدام اسم الملف الأصلي.</td><td>أعد تسمية الملفات، واسمح بالامتدادات المدرجة في قائمة سماح، وخزنها خارج جذر الويب.</td></tr><tr><td><code>getimagesize()</code></td><td>التحقق من الرفع</td><td>متوسطة</td><td>تحقق ضعيف من المحتوى</td><td>ضع علامة عندما يُستخدم كتحقق الرفع الوحيد.</td><td>اجمع بين ضوابط الامتداد وMIME والمحتوى والتخزين.</td></tr><tr><td><code>ZipArchive::extractTo()</code></td><td>استخراج الأرشيف</td><td>عالية</td><td>Zip slip، كتابة عشوائية</td><td>تحقق من أسماء إدخالات الأرشيف ودليل الاستخراج.</td><td>وحِّد المسار لكل ملف مُستخرج.</td></tr><tr><td><code>phpinfo()</code></td><td>كشف المعلومات</td><td>متوسطة</td><td>تسريب الإعدادات، والمسارات، والوحدات، والبيئة</td><td>ضع علامة إذا كان يمكن الوصول إليه خارج بيئة التطوير المحلية.</td><td>أزله من الإنتاج.</td></tr><tr><td><code>var_dump()</code> / <code>print_r()</code></td><td>مخرجات التصحيح</td><td>منخفض</td><td>تسريب البيانات والأسرار</td><td>ارفع الخطورة عندما يُستخدم في الردود أو مسارات الاستثناءات.</td><td>استخدم سجلات منظمة مع إخفاء البيانات الحساسة.</td></tr><tr><td><code>debug_backtrace()</code></td><td>مخرجات التصحيح</td><td>متوسطة</td><td>كشف المسار والمعاملات</td><td>راجع معالجات الأخطاء ومسارات التصحيح.</td><td>عطّل مخرجات التصحيح التفصيلية في الإنتاج.</td></tr></tbody></table>

## البحث في الإعدادات

<table data-view="cards" data-full-width="true" data-search="true"><thead><tr><th>التوجيه</th><th>الخطورة</th><th>المخاطر</th><th>فحص الماسح</th></tr></thead><tbody><tr><td><code>disable_functions</code></td><td>عالية</td><td>ما تزال دوال التنفيذ الخطيرة متاحة.</td><td>أبلغ عن أي تشديد مفقود أو غير مكتمل، خاصة عندما توجد مصارف أوامر.</td></tr><tr><td><code>open_basedir</code></td><td>متوسطة</td><td>يمكن لـ PHP الوصول إلى مسارات أوسع في نظام الملفات.</td><td>ضع علامة على القيم المفقودة أو الفارغة أو الواسعة جدًا.</td></tr><tr><td><code>allow_url_fopen</code></td><td>متوسطة</td><td>يمكن لواجهات الملفات جلب URLs.</td><td>ارفع الخطورة في قراءات الملفات المعتمدة على URL والدوال المعرضة لـ SSRF.</td></tr><tr><td><code>allow_url_include</code></td><td>حرجة</td><td>قد تقوم التضمينات الديناميكية بتحميل موارد بعيدة.</td><td>حرج عند تمكينه مع مسارات تضمين ديناميكية.</td></tr><tr><td><code>display_errors</code></td><td>متوسطة</td><td>قد تتسرب تتبعات المكدس والمسارات والأسرار.</td><td>ضع علامة على إعدادات الإنتاج المفعّلة.</td></tr><tr><td><code>expose_php</code></td><td>منخفض</td><td>كشف إصدار PHP.</td><td>يوصى بتعطيله في الإنتاج.</td></tr><tr><td><code>file_uploads</code></td><td>معلومة</td><td>توجد مساحة هجوم عبر الرفع.</td><td>اقرن ذلك بفحوصات مسار الرفع والحجم والامتداد والمحتوى.</td></tr><tr><td><code>upload_max_filesize</code></td><td>متوسطة</td><td>الرفع المفرط في الحجم وإساءة استخدام التخزين.</td><td>ضع علامة على القيم الأكبر مما يحتاجه التطبيق.</td></tr><tr><td><code>session.cookie_httponly</code></td><td>متوسطة</td><td>يصبح سرقة ملف تعريف الارتباط الخاص بالجلسة عبر نص جهة العميل أسهل.</td><td>يوصى بتمكينه.</td></tr><tr><td><code>session.cookie_secure</code></td><td>متوسطة</td><td>قد تُرسل ملفات تعريف الارتباط عبر HTTP.</td><td>يوصى بتمكينه في مواقع HTTPS.</td></tr><tr><td><code>session.cookie_samesite</code></td><td>منخفض</td><td>قد يزداد التعرض لـ CSRF.</td><td>يوصى بتحديد <code>Lax</code> أو <code>Strict</code>.</td></tr></tbody></table>

## مدخلات المصدر إلى المصب

| المصدر                         | أمثلة                                                                                  |
| ------------------------------ | -------------------------------------------------------------------------------------- |
| الطلب                          | `$_GET`, `$_POST`, `$_REQUEST`                                                         |
| ملفات تعريف الارتباط / الجلسات | `$_COOKIE`, قيم الجلسة                                                                 |
| التحميلات                      | `$_FILES`, أسماء الملفات الأصلية، ومسارات الملفات المؤقتة                              |
| الترويسات                      | `$_SERVER['HTTP_*']`, `getallheaders()`                                                |
| جسم الطلب الخام                | `php://input`, JSON/XML المفكوكة                                                       |
| CLI / العمال                   | `$argv`, `الدخل القياسي`, متغيرات البيئة                                               |
| البيانات المخزنة               | صفوف قاعدة البيانات، ومدخلات ذاكرة التخزين المؤقت، وقوائم الانتظار، والأعمدة المُسلسلة |
| الملفات المحلية                | ملفات الإعداد، واستيرادات CSV، والملفات المؤقتة                                        |

## معرّفات القواعد

| معرّف القاعدة      | الخطورة | المعنى                                                                  |
| ------------------ | ------- | ----------------------------------------------------------------------- |
| `PHP-CMD-001`      | حرجة    | تصل المدخلات الملوثة إلى تنفيذ الأوامر.                                 |
| `PHP-EVAL-001`     | حرجة    | تصل المدخلات الملوثة إلى تقييم كود PHP.                                 |
| `PHP-INCL-001`     | حرجة    | تتحكم المدخلات الملوثة في مسارات include/require.                       |
| `PHP-DESER-001`    | حرجة    | تصل المدخلات الملوثة إلى `unserialize()`.                               |
| `PHP-WRITE-001`    | حرجة    | يصل كتابة ملف يتحكم بها المستخدم إلى مسار قابل للتنفيذ أو مسار عام.     |
| `PHP-UPLOAD-001`   | عالية   | يمكن أن يسمح التحقق من التحميل أو التخزين بملفات قابلة للتنفيذ.         |
| `PHP-SSRF-001`     | عالية   | يصل عنوان URL الملوث إلى نقاط استقبال HTTP أو stream أو socket أو cURL. |
| `PHP-SQL-001`      | عالية   | تصل المدخلات الملوثة إلى SQL الخام.                                     |
| `PHP-PATH-001`     | عالية   | يصل المسار الملوث إلى منطق قراءة/كتابة/حذف/نقل الملفات.                 |
| `PHP-CALLBACK-001` | عالية   | يصل اسم دالة أو طريقة ملوث إلى الإرسال الديناميكي.                      |
| `PHP-CONFIG-001`   | عالية   | يزيد إعداد PHP الخطِر من قابلية الاستغلال.                              |
| `PHP-PRIV-001`     | حرجة    | يعمل تنفيذ PHP ضمن سياق SUID أو sudo أو cron أو سياق مميز.              |

## الفرز السريع

| السؤال                                                         | رفع الشدة                 |
| -------------------------------------------------------------- | ------------------------- |
| هل يمكن لبيانات الطلب أن تصل إلى الدالة؟                       | ارفعه إلى عالي أو حرج.    |
| هل تنفذ الدالة أوامر أو كود PHP أو include أو إلغاء التسلسل؟   | حرج.                      |
| هل يتعامل مع ملفات ضمن جذر الويب؟                              | عالي أو حرج.              |
| هل يقبل عناوين URL أو wrappers أو المضيفين أو المنافذ؟         | عالي.                     |
| هل يعمل عبر cron أو sudo أو SUID أو العمال أو خطافات النشر؟    | حرج.                      |
| هل يعتمد التحقق على قوائم الحظر أو الامتدادات فقط أو MIME فقط؟ | ارفع مستوى واحدًا.        |
| هل يتم اختيار القيمة من قائمة سماح صارمة؟                      | خفض مستوى الثقة أو الشدة. |

## مؤشرات تصعيد الامتيازات

| الإشارة                                   | المخاطر                                                    |
| ----------------------------------------- | ---------------------------------------------------------- |
| ثنائي PHP ذو SUID                         | يمكن لـ PHP التنفيذ بصلاحيات مالك الملف المرتفعة.          |
| قاعدة sudo تسمح بـ PHP                    | قد يتمكن المستخدم من تشغيل PHP كمستخدم آخر.                |
| cron مملوك للجذر يشغّل PHP قابلًا للكتابة | يمكن أن يصبح السكربت القابل للكتابة تنفيذًا مميزًا.        |
| جذر ويب قابل للكتابة                      | يمكن أن تتحول ثغرة كتابة الملفات أو التحميل إلى تنفيذ كود. |
| أسرار قابلة للقراءة من الجميع             | يمكن لبيانات اعتماد التطبيق أن تمكّن الحركة الجانبية.      |
| تعمل سكربتات Composer كمستخدم مميز        | يمكن أن يؤثر تنفيذ الاعتمادية أو السكربت على النشر.        |

## قالب التقرير

```json
{
  "id": "PHP-CMD-001",
  "severity": "critical",
  "function": "shell_exec",
  "file": "app/Controllers/ReportController.php",
  "line": 84,
  "source": "$_POST['format']",
  "impact": "تنفيذ الأوامر عن بُعد بصفتك مستخدم خادم الويب",
  "fix": "استبدل تنفيذ الأوامر بواجهة PHP أصلية أو بوسائط ضمن قائمة سماح صارمة."
}
```

## قائمة التحقق للمحلّل

* تحليل `.php`, `.inc`, `.phtml`, `.module`, `.theme`, ومسارات إطار العمل، ووحدات التحكم، والمهام، وسكريبتات سطر الأوامر.
* تتبّع مدخلات الطلب وملفات تعريف الارتباط والتحميل والرؤوس والجسم الخام وCLI والبيئة وقاعدة البيانات والتخزين المؤقت وقائمة الانتظار والمدخلات المعتمدة على الملفات.
* اكتشف نقاط الاستقبال الخاصة بتنفيذ الأوامر وتنفيذ الكود وinclude والملفات والشبكات وSQL وإلغاء التسلسل والتحميل والاستدعاء وتصحيح الأخطاء والإعدادات.
* قيّم النتائج وفقًا لقابلية الوصول، والتنقية، وإصدار PHP، والإعدادات، وجذر الويب، والأذونات، وسياق التنفيذ.
* صدّر اسم الدالة والفئة والشدة والمصدر ونقطة الاستقبال والملف والسطر والأثر والثقة والإصلاح.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://hacking-notes.jord4n.pro/ar/hacking-tools/web/php-security-scanner.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
