
Apache JServ प्रोटोकॉल (ajp13) के लिए एक कमांड-लाइन फ़ज़र
AJPFuzzer Apache JServ Protocol (ajp13) के लिए एक प्रारंभिक फ़ज़र है।
libajp13 पर निर्मित, यह उपकरण आपको एक उपयोग में आसान कमांड लाइन इंटरफ़ेस का उपयोग करके AJP संदेश बनाने और भेजने की अनुमति देता है। AJPFuzzer सही ढंग से स्वरूपित AJP13 संदेश (सभी संदेश प्रकार) और साथ ही उत्परिवर्तन (जैसे बिट फ़्लिपिंग, प्रकार बेमेल वाले संदेश आदि) तैयार कर सकता है, जो वेब सर्वर AJP मॉड्यूल, J2EE कंटेनर और कई अन्य जैसी AJP-आधारित सेवाओं को लक्षित करने वाले सुरक्षा परीक्षण प्रयासों को सुविधाजनक बनाता है।
रिलीज़ पेज से नवीनतम AJPFuzzer jar डाउनलोड करें
डाउनलोड की गई jar को इस प्रकार निष्पादित करें:
$ java -jar ajpfuzzer_v0.7.jar
उपकरण एक शेल प्रॉम्प्ट करेगा। ?list टाइप करके, सभी उपलब्ध कमांड्स को सूचीबद्ध करना संभव है। इस बिंदु पर, आप निम्न का उपयोग करके लक्ष्य से कनेक्ट कर सकते हैं:
AJPFuzzer> connect 127.0.0.1 8009
फिर, आप केवल '10' टाइप करके CPing संदेश (प्रकार 10) भेज सकते हैं (इस संदेश के लिए किसी तर्क की आवश्यकता नहीं है)
AJPFuzzer/127.0.0.1:8009> 10
निम्नलिखित स्क्रीनशॉट पूरे निष्पादन को दर्शाता है:
जाहिर है, उपयुक्त परीक्षण मामले और तर्क निर्दिष्ट करके अधिक जटिल संदेश भेजना संभव है। किसी विशिष्ट कमांड के सभी विवरणों के लिए कृपया ?list देखें।
उदाहरण के लिए, हम निम्न का उपयोग करके पूरी तरह से अनुकूलित ForwardRequest प्रकार का संदेश भेज सकते हैं:
> forwardrequest 2 "HTTP/1.1" "/api/" 127.0.0.1 localhost porto 8009 false "Cookie:AAAA=BBBB" ""
मनमाने तत्वों को फ़ज़ करते हुए ForwardRequest संदेश भेजना भी संभव है:
> genericfuzz 2 "HTTP/1.1" "/test.html" "127.0.0.1" "127.0.0.1" "server.name.test" 8009 false "Cookie:AAAA=BBBB" "secret:FUZZ" /tmp/list.txt
आज तक, AJPFuzzer निम्नलिखित परीक्षण मामले प्रदान करता है:
AJPTestCases.java वर्ग का विस्तार करके नए परीक्षण मामले जोड़े जा सकते हैं। @Command एनोटेशन का उपयोग करके, उपकरण अतिरिक्त कमांड को पहचानेगा और इसे CLI से उपलब्ध कराएगा।
| आईडी | नाम | विवरण |
|---|
| 1 | body | वेब सर्वर से J2EE कंटेनर को एक बॉडी संदेश भेजें |
| 2 | forwardrequest | वेब सर्वर से J2EE कंटेनर तक अनुरोध प्रसंस्करण चक्र शुरू करें |
| 3 | sendbodychunk | J2EE कंटेनर से वेब सर्वर को बॉडी का एक भाग भेजें |
| 4 | sendheaders | J2EE कंटेनर से वेब सर्वर को प्रतिक्रिया हेडर भेजें |
| 5 | endresponse | J2EE कंटेनर से वेब सर्वर तक प्रतिक्रिया के अंत को चिह्नित करें |
| 6 | getbodychunk | अनुरोधकर्ता से आगे का डेटा प्राप्त करें। J2EE कंटेनर से वेब सर्वर को संदेश |
| 7 | shutdown | एक मानक शटडाउन AJP13 पैकेट भेजें |
| 8 | ping | एक ping (ping != CPing) AJP13 पैकेट भेजें |
| 9 | cpong | एक CPong AJP13 पैकेट भेजें |
| 10 | cping | एक CPing AJP13 पैकेट भेजें |
| 11 | forwardreqalltypes | सभी संभावित पैकेट प्रकारों के साथ एक ForwardRequest AJP13 पैकेट भेजें |
| 12 | verbtampering | संभावित प्रमाणीकरण बाईपास दोषों का पता लगाने के लिए AJP13 के माध्यम से कई अनुरोध भेजें और HTTP Verb Tampering करें |
| 13 | jettyleak | एक JettyLeak शैली का AJP13 पैकेट भेजें |
| 14 | hugelengthsmallbody | एक बड़े Content-Length और छोटे Body के साथ ForwardRequest+Body संदेश भेजें |
| 15 | hugeheader | हेडर लंबाई 0x9999 से अधिक (जैसे A010) वाले दो AJP13 ForwardRequest पैकेट भेजें |
| 16 | fuzzbit | एक जटिल AJP13 ForwardRequest बनाएं और बिट फ़्लिपिंग शुरू करें |
| 17 | fuzzslice | एक AJP13 ForwardRequest, SendHeaders, ShutDown, 0xFF, 0x00 बनाएं। स्लाइस करें और भेजें। |
| 18 | servletpath | मनमाने 'servlet_path' विशेषता के साथ एक AJP13 ForwardRequest बनाएं |
| 19 | bypassauthnull | 'null' पर सेट auth_type के साथ दो AJP13 ForwardRequest बनाएं |
| 20 | envars | मनमाने पर्यावरण चर सेट करने के लिए req_attribute_code (10) के साथ एक AJP13 ForwardRequest बनाएं |
| 21 | hugepacketsize | आकार > 8192 बाइट्स वाले दो AJP13 अनुरोध बनाएं |
| 22 | genericfuzz | FUZZ कीवर्ड का उपयोग करके मनमाने संदेश तत्वों को फ़ज़ करने की अनुमति देने वाला एक AJP13 ForwardRequest (GET) बनाएं |