
Go वेब एप्लिकेशन पेनिट्रेशन टेस्ट
GOWAPT, wfuzz का छोटा भाई है, जो WAPT का एक स्विस आर्मी नाइफ है। यह पेंटेस्टर को बिना किसी तनाव के बड़ी गतिविधि करने की अनुमति देता है, बस इसे कॉन्फ़िगर करें और यह केवल क्लिक का मामला है।
gowapt इंस्टॉल करने के लिए बस टाइप करें:
make
sudo make install
-h मेनू से
Usage of gowapt:
-H value
A list of additional headers
-a string
Basic authentication (user:password)
-c string
A list of cookies
-d string
POST data for request
-e string
A list of comma separated encoders (default "plain")
-f string
Filter the results
-from-proxy
Get the request via a proxy server
-fuzz
Use the built-in fuzzer
-p string
Use upstream proxy
-plugin-dir string
Directory containing all scanning module
-scanner
Run in scanning mode
-ssl
Use SSL
-t string
Template for request
-threads int
Number of threads (default 10)
-u string
URL to fuzz
-w string
Wordlist file
-x string
Extension file example.js
उदाहरण
http://www.example.com को स्कैन करें और सभी 200 OK अनुरोधों को फ़िल्टर करें
gowapt -u "http://www.example.com/FUZZ" -w wordlist/general/common.txt -f "code == 200"
http://www.example.com को स्कैन करें, XSS की तलाश में vuln GET पैरामीटर को फ़ज़ करें (मान लें कि इसमें एक वैध अनुरोध के साथ 200 टैग था)
gowapt -u "http://www.example.com/?vuln=FUZZ" -w wordlist/Injections/XSS.txt -f "tags > 200"
http://www.example.com को स्कैन करें, XSS की तलाश में vuln POST पैरामीटर को फ़ज़ करें (मान लें कि इसमें एक वैध अनुरोध के साथ 200 टैग था)
gowapt -u "http://www.example.com/" -d "vuln=FUZZ" -w wordlist/Injections/XSS.txt -f "tags > 200"
प्रमाणीकरण-सुरक्षित http://www.example.com को स्कैन करें और सभी 200 OK अनुरोधों को फ़िल्टर करें
gowapt -u "http://www.example.com/FUZZ" -w wordlist/general/common.txt -f "code == 200" -a "user:password"
http://www.example.com को स्कैन करें, हेडर Hello: world जोड़ें और सभी 200 OK अनुरोधों को फ़िल्टर करें
gowapt -u "http://www.example.com/FUZZ" -w wordlist/general/common.txt -f "code == 200" -H "Hello: world"
http://www.example.com को उपयोगकर्ता/पासवर्ड guest:guest के साथ बेसिक प्रमाणीकरण का उपयोग करके स्कैन करें
gowapt -u "http://www.example.com/FUZZ" -w wordlist/general/common.txt -a "guest:guest"
http://www.example.com को एक एक्सटेंशन जोड़कर स्कैन करें
gowapt -u "http://www.example.com/FUZZ" -w wordlist/general/common.txt -x myextension.js
http://www.example.com को एक प्रॉक्सी (जैसे Burp) के माध्यम से स्कैन करें:
gowapt -p "http://localhost:8080" -u "http://www.example.com/FUZZ" -w wordlist/general/common.txt
http://www.example.com (प्रॉक्सी से प्राप्त) और सभी 200 OK अनुरोधों को फ़िल्टर करें
gowapt --from-proxy -w wordlist/general/common.txt
डिफ़ॉल्ट प्लगइन्स के साथ http://www.example.com (प्रॉक्सी से प्राप्त) पर स्कैनर मोड चलाएँ
gowapt --from-proxy --scanner --plugin-dir plugin/
फिर BurpSuite खोलें, जिस अनुरोध को आप फ़ज़ करना चाहते हैं उसे रिपीटर पर भेजें और एक अपस्ट्रीम प्रॉक्सी को 127.0.0.1:31337 पर सेट करें। जब आप तैयार हों तो भेजें पर क्लिक करें, यदि सब कुछ सही था तो आपको प्रतिक्रिया के रूप में Request received by GOWAPT देखना चाहिए।
एक्सटेंशन, gowapt सुविधाओं का विस्तार करने का एक आसान तरीका है। एक JavaScript VM एक्सटेंशन फ़ाइलों को लोड करने और निष्पादित करने के लिए जिम्मेदार है।
नीचे वर्तमान में कार्यान्वित API की सूची दी गई है
* नोट: setHTTPInterceptor का उपयोग करते समय कॉलबैक विधि को 3 पैरामीटर प्राप्त होते हैं:
sendRequestSync की प्रकृति के कारण यह सिंक्रोनस अनुरोध के कारण इंजन को धीमा कर देगा, इसलिए संयम से उपयोग करें
नीचे दिए गए उदाहरण एक्सटेंशन पर अधिक जानकारी:
example.js
/*
* Create a custom encoder called helloworld
*
* This encore just add the string "_helloworld" to every payload
* coming from the wordlist
*/
addCustomEncoder("helloworld", myenc);
/*
* Define the callback method for the helloworld encoder
*/
function myenc(data) {
return data + "_helloword";
}
/*
* Create an HTTP interceptor
*
* The interceptor will hook every request / response
* is possible to modify request before send it, anyway the respose item
* it's just shadow copy of the one received from the server so no modification
* are possible
*
*
* request_response is an object which may contains both http.Request
* or http.Response , to know which on is contained check is_request flag
*
* REMEMBER! request_response is an http.* object so you must interact with
* this one just like you would do in golang!
*
* dumpResponse is a built-in function which dump full request-response to
* disk.
* result is an object filled with stats about the response it contains some fields
*
* result.tags => Number of tags in the response
* result.code => HTTP Response status
* result.words => Number of words in the response
* result.lines => Number of lines in the response
* result.chars => Number of chars in the response
* result.request => Full dump of the request
* result.response => Full dump of the response
* result.response => The injected payload
*
*/
setHTTPInterceptor(function(request_response, result, is_request){
if(is_request){
request_response.Header.Set("Hello", "world")
}else{
dumpResponse(request_response, "/tmp/dump.txt")
/*
* Send an HTTP request in a synchronous way
*
* This API accept 4 parameters:
* method => GET | POST | HEAD | PUT | PATCH | UPDATE
* url => The url of the HTTP service
* post_data => The content of request bodyBytes
* headers => A javascript dictionary {headerName => headerValue}
*
* The response object may be null or undefined or an http.Response from golang
*/
var response = sendRequestSync("GET", "http://example.com/", null, {"Fake": "Header"})
}
})
नवीनतम कमिट के साथ Scanner नामक एक नया मोड पेश किया गया है, यह उपयोगकर्ता को सक्रिय वेब स्कैनिंग करने के लिए पूरी तरह से अनुकूलन योग्य प्लगइन्स बनाने की अनुमति देता है। अधिक जानकारी के लिए विकी पढ़ें!
वर्डलिस्ट wfuzz प्रोजेक्ट से आती हैं! तो बहुत-बहुत धन्यवाद दोस्तों!
नीचे उपलब्ध एनकोडर की सूची दी गई है
आप निम्नलिखित वेरिएबल्स पर फ़िल्टर लागू कर सकते हैं
gowapt GPL 3.0 लाइसेंस के तहत जारी किया गया है और यह Daniele 'dzonerzy' Linguaglossa का कॉपीलेफ्ट है।
| विधि | पैरामीटर की संख्या | विवरण | पैरामीटर |
|---|
| addCustomEncoder | 2 | वर्डलिस्ट के साथ उपयोग करने के लिए एक कस्टम एनकोडर बनाएँ | पैराम1 -> एनकोडरनाम (स्ट्रिंग) पैराम2 -> एनकोडरलॉजिक (फंक्शन) |
| panic | 1 | डिबगिंग उद्देश्य के लिए एप्लिकेशन को क्रैश करें | पैराम1 -> पैनिकटेक्स्ट (स्ट्रिंग) |
| dumpResponse | 2 | पूरे अनुरोध/प्रतिक्रिया को डिस्क पर डंप करें, टेस्टकेस को सहेजने के लिए उपयोगी | पैराम1 -> रिस्पॉन्सऑब्जेक्ट (http.Response) पैराम2 -> पथ (स्ट्रिंग) |
| setHTTPInterceptor | 1 | आउटगोइंग HTTP अनुरोध और इनकमिंग प्रतिक्रियाओं के लिए एक इंटरसेप्टर बनाएँ | पैराम1 -> HTTPकॉलबैक (फंक्शन) * |
| sendRequestSync * | 4 | एक HTTP अनुरोध को सिंक्रोनस तरीके से भेजें | पैराम1 -> विधि (स्ट्रिंग) पैराम2 -> यूआरएल (स्ट्रिंग) पैराम3 -> पोस्टडेटा (स्ट्रिंग) पैराम4 -> हेडर (ऑब्जेक्ट{नाम:मान}) |