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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
gaia — مُقيم سلامة واجهات API العالمية | Kitploit
أدوات/GitLabGitLab/functori/dev/gaia
ماسحات الثغرات الأمنيةاختبار أمان APIأمن الويبالاختبار العشوائي
GitLabfunctori/dev/gaia

gaia

مُقيم سلامة واجهات API العالمية

عرض المستودع
منذ سنة واحدةلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

Gaia: المُقيِّم العالمي لسلامة واجهات برمجة التطبيقات

التبعيات

  • قم بتثبيت opam لبناء واجهة برمجة تطبيقات الاختبارات.

  • قم بتثبيت git و python3 و pip و .NET لبناء RESTler و Schemathesis.

  • قم بتثبيت cargo لبناء Gaia.

  • قم بتثبيت docker v26.0.1 و docker compose v2.26.1 لبناء Gaia مع مكدس ELK (اختياري إن لم يكن).

  • قم بتثبيت node >= v18.0.0 و npm >= v8.6.0

  • لإنشاء مفتاح محلي opam:

root@kitploit:~
make opam-switch
  • لتثبيت جميع التبعيات:
root@kitploit:~
make deps

البناء

  • لبناء Gaia:
root@kitploit:~
make build
  • لبناء واجهة برمجة تطبيقات الاختبارات:
root@kitploit:~
make build-test

مواصفات OpenAPI

  • لتوليد مواصفات OpenAPI للاختبارات:
root@kitploit:~
make generate-swagger
  • لإزالة مواصفات OpenAPI للاختبارات:
root@kitploit:~
make clean-swagger

التنسيق

  • لتنسيق المشروع (الاختبار + المصدر):
root@kitploit:~
make format

التنظيف

  • لتنظيف ملفات البناء (الاختبار + المصدر):
root@kitploit:~
make clean-build-files
  • لتنظيف كل شيء:
root@kitploit:~
make clean

التنفيذ

  • بعد البناء، يمكنك عرض خيارات GAIA عن طريق:
root@kitploit:~
./_bin/gaia --help
  • استخدام GAIA:
root@kitploit:~
gaia --configuration <configuration> --openapi-path <openapi-path> --workdir-path <workdir-path> --verbose <verbose>

  • workdir-path: دليل العمل حيث ستجد سجلات المُختبرين المختلفة.

  • openapi-path: مسار ملف OpenAPI لواجهة برمجة التطبيقات الحقيقية. مطلوب عند استخدام الاختبار العشوائي أو المراقبة ولكن ليس للإحصائيات

  • verbose : مستوى التفصيل {NOTHING, LOW, MID, HIGH, ALL} (القيمة الافتراضية: NOTHING)

  • configuration: مسار ملف json الذي يحتوي على:

root@kitploit:~
{
  "configuration": {
    // One of : fuzzing or monitoring
    "fuzzing": {
      //Required
      "config_fuzzer": {
        //Required
        // In hours
        "timeout": 1,
        //Optional
        // Disable fuzzers
        "disable_fuzzers": [{
           "Restler":{
             // Bfs, BfsFast, BfsCheap or RandomWalk
             "strategy" : "Bfs" 
            }
          },
          "Schemathesis",
          {"Custom": {"id": "1"}}
        ],
        //Optional
        "custom_fuzzers": [
          "<command line that can accept `--output_dir <PATH>`, `--openapi_path <PATH>` and `--timeout <FLOAT>` as arguments>"
        ],
        //Optional
        "generation_config": {
          //optional (Required if you set a function to generate a value)
          "lib_path": "Absolute path to the dynamic library (.so, .dll, or .rs).",
          //Optional
          "generate_string": {
            //One of : Command, Value, File path or Function
            "command": "<command line that returns a string array>",
            //Or
            "value": ["fuzzstring"],
            //Or
            "function": "<function() that returns a string array>",
            //Or
            "file": "The file path to the dictionary of values"
          },
          //Optional
          "generate_datetime": {
            //One of : Command, Value, File path or Function
            "command": "<command line that returns a datetime array in a string format>",
            //Or
            "value": ["2019-06-26T20:20:39+00:00"],
            //Or
            "function": "<function() that returns a datetime array in a string format>",
            //Or
            "file": "The file path to the dictionary of values"
          },
          //Optional
          "generate_date": {
            //One of : Command, Value, File path or Function
            "command": "<command line that returns a date array in a string format>",
            //Or
            "value": ["2019-06-26"],
            //Or
            "function": "<function() that returns a date array in a string format>",
            //Or
            "file": "The file path to the dictionary of values"
          },
          //Optional
          "generate_int": {
            //One of : Command, Value, File path or Function
            "command": "<command line that returns an int array in a string format>",
            //Or
            "value": ["0"],
            //Or
            "function": "<function() that returns an int array in a string format>",
            //Or
            "file": "The file path to the dictionary of values"
          },
          //Optional
          "generate_number": {
            //One of : Command, Value, File path or Function
            "command": "<command line that returns a float array in a string format>",
            //Or
            "value": ["1.5"],
            //Or
            "function": "<function() that returns a float array in a string format>",
            //Or
            "file": "The file path to the dictionary of values"
          },
          //Optional
          "generate_object": {
            //One of : Command, Value, File path or Function
            "command": "<command line that returns a json object array in a string format>",
            //Or
            "value": ["{\"k\" : {\"v\" : \"value\" }}"],
            //Or
            "function": "<function() that returns a json object array in a string format>",
            //Or
            "file": "The file path to the dictionary of values"
          },
          //Optional
          "generate_path_parameter": {
            //One of : Command, Value, File path or Function
            "command": "<command line that returns a key-value map with a string key referring to a path parameter and a string array of values>",
            //Or
            "value": {
              "k": {
                "v": ["value"]
              }
            },
            //Or
            "function": "<function() that returns a key-value map with a string key referring to a path parameter and a string array of values>",
            //Or
            "file": "The file path to the dictionary of values"
          },
          //Optional
          "generate_query_parameter": {
            //One of : Command, Value, File path or Function
            "command": "<command line that returns a key-value map with a string key referring to a query parameter and a string array of values>",
            //Or
            "value": {
              "k": {
                "v": ["value"]
              }
            },
            //Or
            "function": "<function() that returns a key-value map with a string key referring to a query parameter and a string array of values>",
            //Or
            "file": "The file path to the dictionary of values"
          }
        }
      },
      //Required
      "config_process_manager": {
        //Optional
        "config_reset": {
          //Required
          "reset_lib": "Absolute path to the dynamic library (.so, .dll, or .rs).",
          //Required
          "function": "Function name that takes two strings as arguments and returns a unit. The first string represents the log in JSON format, and the second represents the path to the real-time log file."
        },
        //Required
        "config_proxy": {
          //Optional
          "headers_config": {
            //Optional
            "custom_headers": [
              {
                //Required
                "title": "title",
                //Required
                "header_type": {
                  //One of : Command or Value
                  "Command": {
                    //Required
                    "cmd": "<Command that returns the value of the header>",
                    //Required
                    //Refresh value in milliseconds
                    "duration": 0
                  },
                  // or
                  "Value": { "value": "Header value" }
                }
              }
            ]
          },
          //Optional
          "openapi_config": {
            //Optional
            "responses_to_string": true, // Change the type of the responses to string
            //Optional
            "requests_config": {
              //One of : Exclude or Only
              "only": {
                //Required
                "requests": [
                  {
                    //Required
                    "path": "Regex that represents a path",
                    //Required
                    "methods": [
                      "Get",
                      "Put",
                      "Post",
                      "Delete",
                      "Options",
                      "Head",
                      "Patch",
                      "Trace"
                    ]
                  }
                ]
              },
              //Or
              "Exclude": {
                //Required
                "requests": [
                  {
                    //Required
                    "path": "Regex that represents a path",
                    //Optional: Defaults to all methods if not specified.
                    "methods": [
                      "Get",
                      "Put",
                      "Post",
                      "Delete",
                      "Options",
                      "Head",
                      "Patch",
                      "Trace"
                    ]
                  }
                ]
              }
            }
          },
          //Optional
          "stream_response_services": [
            {
              //Required
              "path": "Regex that represents a path",
              //Optional: Defaults to all methods if not specified.
              "methods": [
                "Get",
                "Put",
                "Post",
                "Delete",
                "Options",
                "Head",
                "Patch",
                "Trace"
              ]
            }
          ]
        },
        //Optional
        "use_sync_requests" : true
      }
    },
    "monitoring": {
      "config_monitoring": {
        //One of : log_file_path or service
        "log_file_path": {
          //Required
          "path": "/home/log.log"
        },
        "service": {
          //Required
          "url": "http://localhost:3000/log"
        }
      }
    }
  },
  //Optional
  "config_checker": {
    //Optional
    "checkers_cmd": [
      "<command line that take a string as an argument and return unit. This string represents the log in JSON format>"
    ],
    //Optional
    "checkers_lib": [
      {
        //Required
        "checkers_lib": "Absolute path to the dynamic library (.so, .dll, or .rs).",
        //Required
        "function_names": [
          "Function names that take a string as an argument and return unit. This string represents the log in JSON format"
        ]
      }
    ]
  },
  //Optional
  "config_checker_elk_stack": {
    //Required
    "kibana_port": 5602 //Kibana url : http://localhost:{kibana_port}
  },
  //Optional
  "config_statistics": {
    //Required
    "process": {
      //One of : docker, process or service
      "docker": {
        //Required
        "container_id": "89u32eew2r"
      },
      "process": {
        //Required
        "pid": 1100293
      },
      "service": {
        //Required
        "url": "http://localhost:3000/statistics"
      }
    }
  },
  //Optional
  "scanner": true
}

مثال على تنسيق JSON للسجل:

root@kitploit:~
{
  "id" : 9009,
  "request": {
    "method": "GET",
    "url": "http://localhost:8080/api/data",
    "headers": [
      ["connection", "keep-alive"],
      ["accept", "*/*"],
      ["user-agent", "schemathesis/3.24.3"],
      ["host", "localhost:8081"],
      ["accept-encoding", "gzip, deflate"],
      ["authorization", "Bearer"],
      ["x-schemathesis-testcaseid", "97pK1I"],
      ["authorization", "Bearer Test"]
    ],
    "params": [],
    "body": "",
    "timestamp": "2024-06-17T12:43:21.717+00:00"
  },
  "response": {
    "status_code": 403,
    "headers": [
      ["access-control-allow-headers", "accept, content-type"],
      ["access-control-allow-origin", "*"],
      ["content-type", "application/json"],
      ["content-length", "70"]
    ],
    "body": "{\"error\":\"get_data\",\"exception\":\"sender Test should be connected\"}",
    "timestamp": "2024-06-17T12:43:21.717+00:00"
  },
  "reset": false
}
root@kitploit:~
{
  "request": {
    "method": "POST",
    "url": "http://localhost:20000/injection/block",
    "headers": [
      ["user-agent", "restler/9.2.3"],
      ["content-type", "application/json"],
      ["accept", "application/json"],
      ["x-restler-sequence-id", "20f34e2b-13e8-4861-a7aa-77df3dff5ad6"],
      ["host", "localhost:22333"],
      ["content-length", "225"]
    ],
    "params": [
      ["async", "fuzzstring"],
      ["force", "fuzzstring"],
      ["chain", "fuzzstring"]
    ],
    "body": {
      "data": "fuzzstring",
      "operations": [[{ "branch": { "fuzz": false }, "data": "fuzzstring" }]]
    },
    "timestamp": "2024-06-17T12:43:21.717+00:00"
  },
  "response": {
    "status_code": 400,
    "headers": [
      ["content-type", "text/plain"],
      ["transfer-encoding", "chunked"]
    ],
    "body": null,
    "timestamp": "2024-06-17T12:43:21.722+00:00"
  },
  "reset": false
}

الترخيص

حقوق النشر © 2024، Functori [email protected].

تنزيل الأداة