12 KiB
पेंटेस्टिंग gRPC-Web
जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!
HackTricks का समर्थन करने के अन्य तरीके:
- अगर आप अपनी कंपनी का विज्ञापन HackTricks में देखना चाहते हैं या HackTricks को PDF में डाउनलोड करना चाहते हैं तो सब्सक्रिप्शन प्लान्स देखें!
- आधिकारिक PEASS और HackTricks स्वैग प्राप्त करें
- हमारे विशेष NFTs संग्रह The PEASS Family खोजें
- शामिल हों 💬 डिस्कॉर्ड समूह या टेलीग्राम समूह और हमें ट्विटर 🐦 @carlospolopm पर फॉलो करें।
- हैकिंग ट्रिक्स साझा करें द्वारा PRs सबमिट करके HackTricks और HackTricks Cloud github repos में।
gRPC-Web Payloads को मानिपुलेट करना
gRPC-Web अनुरोधों में Content-Type: application/grpc-web-text
का उपयोग करता है जो बेस64 एन्कोडेड फॉर्म में protobuf की तरह है, आप gprc-coder टूल का उपयोग कर सकते हैं, और आप इसका Burp Suite Extension भी इंस्टॉल कर सकते हैं।
gGRPC Coder Tool के साथ मैन्युअल
- पहले पेलोड को डिकोड करें:
echo "AAAAABYSC0FtaW4gTmFzaXJpGDY6BVhlbm9u" | python3 grpc-coder.py --decode --type grpc-web-text | protoscope > out.txt
2. संदेश का डिकोड किया गया पेलोड संशोधित करें
जब आप एक अन्तर्गत संदेश को डिकोड करते हैं, तो आप उसमें विभिन्न प्रकार की जानकारी प्राप्त कर सकते हैं जैसे कि उपयोगकर्ता नाम, पासवर्ड, या अन्य संदेश। एक बार जब आपने संदेश को सफलतापूर्वक डिकोड कर लिया है, तो आप उसमें जानकारी को संशोधित कर सकते हैं और उसे फिर से कोड करके भेज सकते हैं। इस तरह, आप अनुप्रयोगों या सिस्टमों में संदेशों को संशोधित करने और उन्हें प्रभावी ढंग से उपयोग करने की क्षमता प्राप्त कर सकते हैं।
nano out.txt
2: {"Amin Nasiri Xenon GRPC"}
3: 54
7: {"<script>alert(origin)</script>"}
- नया पेयलोड एन्कोड करें
protoscope -s out.txt | python3 grpc-coder.py --encode --type grpc-web-text
- बर्प इंटरसेप्टर में आउटपुट का उपयोग करें:
AAAAADoSFkFtaW4gTmFzaXJpIFhlbm9uIEdSUEMYNjoePHNjcmlwdD5hbGVydChvcmlnaW4pPC9zY3JpcHQ+
मैनुअल जीआरपीसी-वेब कोडर बर्प सुइट एक्सटेंशन
आप gRPC-वेब पेंटेस्ट सुइट में gRPC-वेब कोडर बर्प सुइट एक्सटेंशन का उपयोग कर सकते हैं जो आसान है। आप इसके रेपो में स्थापना और उपयोग निर्देश पढ़ सकते हैं।
जीआरपीसी-वेब जावास्क्रिप्ट फ़ाइलों का विश्लेषण
हर gRPC-वेब एप्लिकेशन में कम से कम एक जावास्क्रिप्ट फ़ाइल होती है। आप नए संदेश, एंडपॉइंट और सेवाएं खोजने के लिए फ़ाइल का विश्लेषण कर सकते हैं। gRPC-स्कैन टूल का उपयोग करने की कोशिश करें।
- जावास्क्रिप्ट gRPC-वेब फ़ाइल डाउनलोड करें
- grpc-scan.py के साथ स्कैन करें:
python3 grpc-scan.py --file main.js
- आउटपुट का विश्लेषण करें और नए एंडप्वाइंट्स और नई सेवाओं का परीक्षण करें:
Output:
Found Endpoints:
/grpc.gateway.testing.EchoService/Echo
/grpc.gateway.testing.EchoService/EchoAbort
/grpc.gateway.testing.EchoService/NoOp
/grpc.gateway.testing.EchoService/ServerStreamingEcho
/grpc.gateway.testing.EchoService/ServerStreamingEchoAbort
Found Messages:
grpc.gateway.testing.EchoRequest:
+------------+--------------------+--------------+
| Field Name | Field Type | Field Number |
+============+====================+==============+
| Message | Proto3StringField | 1 |
+------------+--------------------+--------------+
| Name | Proto3StringField | 2 |
+------------+--------------------+--------------+
| Age | Proto3IntField | 3 |
+------------+--------------------+--------------+
| IsAdmin | Proto3BooleanField | 4 |
+------------+--------------------+--------------+
| Weight | Proto3FloatField | 5 |
+------------+--------------------+--------------+
| Test | Proto3StringField | 6 |
+------------+--------------------+--------------+
| Test2 | Proto3StringField | 7 |
+------------+--------------------+--------------+
| Test3 | Proto3StringField | 16 |
+------------+--------------------+--------------+
| Test4 | Proto3StringField | 20 |
+------------+--------------------+--------------+
grpc.gateway.testing.EchoResponse:
+--------------+--------------------+--------------+
| Field Name | Field Type | Field Number |
+==============+====================+==============+
| Message | Proto3StringField | 1 |
+--------------+--------------------+--------------+
| Name | Proto3StringField | 2 |
+--------------+--------------------+--------------+
| Age | Proto3IntField | 3 |
+--------------+--------------------+--------------+
| IsAdmin | Proto3BooleanField | 4 |
+--------------+--------------------+--------------+
| Weight | Proto3FloatField | 5 |
+--------------+--------------------+--------------+
| Test | Proto3StringField | 6 |
+--------------+--------------------+--------------+
| Test2 | Proto3StringField | 7 |
+--------------+--------------------+--------------+
| Test3 | Proto3StringField | 16 |
+--------------+--------------------+--------------+
| Test4 | Proto3StringField | 20 |
+--------------+--------------------+--------------+
| MessageCount | Proto3IntField | 8 |
+--------------+--------------------+--------------+
grpc.gateway.testing.ServerStreamingEchoRequest:
+-----------------+-------------------+--------------+
| Field Name | Field Type | Field Number |
+=================+===================+==============+
| Message | Proto3StringField | 1 |
+-----------------+-------------------+--------------+
| MessageCount | Proto3IntField | 2 |
+-----------------+-------------------+--------------+
| MessageInterval | Proto3IntField | 3 |
+-----------------+-------------------+--------------+
grpc.gateway.testing.ServerStreamingEchoResponse:
+------------+-------------------+--------------+
| Field Name | Field Type | Field Number |
+============+===================+==============+
| Message | Proto3StringField | 1 |
+------------+-------------------+--------------+
grpc.gateway.testing.ClientStreamingEchoRequest:
+------------+-------------------+--------------+
| Field Name | Field Type | Field Number |
+============+===================+==============+
| Message | Proto3StringField | 1 |
+------------+-------------------+--------------+
grpc.gateway.testing.ClientStreamingEchoResponse:
+--------------+----------------+--------------+
| Field Name | Field Type | Field Number |
+==============+================+==============+
| MessageCount | Proto3IntField | 1 |
+--------------+----------------+--------------+
संदर्भ
जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!
HackTricks का समर्थन करने के अन्य तरीके:
- यदि आप अपनी कंपनी का विज्ञापन HackTricks में देखना चाहते हैं या HackTricks को PDF में डाउनलोड करना चाहते हैं तो सब्सक्रिप्शन प्लान्स देखें!
- आधिकारिक PEASS और HackTricks स्वैग प्राप्त करें
- हमारे विशेष NFTs कलेक्शन, The PEASS Family खोजें
- जुड़ें 💬 डिस्कॉर्ड समूह या टेलीग्राम समूह में या हमें ट्विटर 🐦 @carlospolopm पर फॉलो करें।
- हैकिंग ट्रिक्स साझा करें द्वारा PRs सबमिट करके HackTricks और HackTricks Cloud github repos में।