
मॉड्यूलर WAF बाईपास फ़ज़र, मल्टी-थ्रेडिंग, अनुरोध हेरफेर, और पेलोड एन्कोडिंग के साथ रेड टीम वेब एप्लिकेशन परीक्षण के लिए।
pFuzz एक उन्नत रेड टीमिंग फज़िंग टूल है जिसे हमने अपने शोध के लिए विकसित किया है। यह विभिन्न तरीकों का एक साथ उपयोग करके वेब एप्लिकेशन फायरवॉल को बायपास करने में हमारी मदद करता है।
pFuzz वेब एप्लिकेशन अनुसंधान के लिए विकसित एक उन्नत फज़िंग टूल है। इसे विभिन्न सुरक्षा अनुप्रयोगों पर विभिन्न हमले के तरीकों का परीक्षण करने की प्रक्रिया को गति देने के लिए विकसित किया गया है।
pFuzz एक पायथन भाषा में विकसित उपकरण है जिसमें वेब एप्लिकेशन अनुसंधान में उन्नत फज़िंग क्षमता है। चूंकि एप्लिकेशन में एक मॉड्यूलर संरचना है, इसलिए इसमें नए पाए गए / पाए जाने वाले WAF बायपास विधियों को pFuzz में तेज़ी से जोड़ने और अन्य सभी WAF पर उनका परीक्षण करने की क्षमता है। मॉड्यूलर संरचना के अलावा, टूल को अधिक लचीला बनाने के लिए मल्टी-थ्रेडिंग, मल्टी-प्रोसेसिंग और क्यू संरचनाओं का उपयोग किया गया है और भविष्य के विकास के लिए बुनियादी ढांचा तैयार किया गया है।
टूल को इस प्रकार प्रोग्राम किया गया है कि किसी दिए गए अनुरोध को पार्स किया जा सके और किसी ऑब्जेक्ट पर आसानी से बदला जा सके। इस संरचना के लिए धन्यवाद, एप्लिकेशन विकसित करने वाले लोग बिना कोर संरचना को बदले या सीखने की आवश्यकता के बिना आसानी से योगदान दे सकते हैं और अपनी आवश्यकताओं के अनुसार एप्लिकेशन विकसित कर सकते हैं।
नोट: यदि आप विकास में योगदान देना चाहते हैं, तो आप न केवल pFuzz विकसित करके बल्कि नए मॉड्यूल जोड़कर भी ऐसा कर सकते हैं। बेझिझक नए PR खोलें :)
pFuzz, वेब एप्लिकेशन अनुसंधान में उन्नत फज़िंग क्षमता प्राप्त करने के लिए पायथन भाषा में विकसित एक उपकरण है। एप्लिकेशन में मॉड्यूलर संरचना होने के कारण, यह नए पाए गए/पाए जाने वाले WAF बायपास विधियों को pFuzz में तेज़ी से जोड़ने और अन्य सभी WAF पर उनका परीक्षण करने की क्षमता रखता है। मॉड्यूलर संरचना के अलावा, मल्टी-थ्रेडिंग, मल्टी-प्रोसेसिंग, क्यू जैसी संरचनाओं का उपयोग करके टूल को अधिक लचीला बनाया गया है और भविष्य के विकास के लिए बुनियादी ढांचा तैयार किया गया है।
एप्लिकेशन को इस प्रकार प्रोग्राम किया गया है कि दिए गए अनुरोध को पार्स करके किसी ऑब्जेक्ट के माध्यम से आसानी से बदला जा सके। इस संरचना के लिए धन्यवाद, एप्लिकेशन विकसित करने वाले लोग एप्लिकेशन की मुख्य संरचना को बदले बिना और सीखने की आवश्यकता के बिना आसानी से योगदान दे सकते हैं और अपनी आवश्यकताओं के अनुसार एप्लिकेशन विकसित कर सकते हैं।
नोट: विकास में योगदान देने के लिए, आप इसे केवल कोर 'core' विकास के रूप में नहीं, बल्कि नया मॉड्यूल जोड़कर भी कर सकते हैं। हम आपके नए PR का इंतज़ार कर रहे हैं :)
_____
_ __ | ___|_ _ ____ ____
| '_ \ | |_ | | | ||_ /|_ /
| |_) || _| | |_| | / / / /
| .__/ |_| \__,_|/___|/___|
|_|

sudo pip3 install virtualenv
python3 -m venv myvenv
source myvenv/bin/activate
pip3 install -r requirements.txt
python3 pfuzz.py --help
cffi==1.14.3
cryptography==3.1.1
numpy==1.19.2
pandas==1.1.3
pycparser==2.20
pyOpenSSL==19.1.0
python-dateutil==2.8.1
pytz==2020.1
six==1.15.0
xlrd==1.2.0
python3 pfuzz.py --help
python3 pfuzz.py -r request.txt -m
python3 pfuzz.py -r request.txt -cf
python3 pfuzz.py -r request.txt -f
python3 pfuzz.py -r request.txt -f --proxy 127.0.0.1:8080
python3 pfuzz.py -r request.txt -f -d 3
python3 pfuzz.py -r request.txt -f -s
python3 pfuzz.py -r request.txt -f -l
python3 pfuzz.py -r request.txt -f -e
python3 pfuzz.py -r request.txt -f -fe
python3 pfuzz.py -r request.txt -f -t 5
python3 pfuzz.py -r request.txt -f -o terminal
python3 pfuzz.py -r request.txt -f -od terminal
python3 pfuzz.py -r request.txt -f -o ~/Desktop/
python3 pfuzz.py -r request.txt -f -od ~/tmp/
_____
_ __ | ___|_ _ ____ ____
| '_ \ | |_ | | | ||_ /|_ /
| |_) || _| | |_| | / / / /
| .__/ |_| \__,_|/___|/___|
|_|
------------------------------------
@EmreOvunc | @merttasci | @xsuperbug
------------------------------------
v0.2.4
------------------------------------
usage: pfuzz.py [-h] [--request REQUEST] [--proxy PROXY] [--log] [--ssl]
[--threads THREADS] [--output OUTPUT] [--delay TIME]
[--output-details OUTPUT] [--full-encode] [--encode]
[--fuzz] [--charfuzz] [--manipulate] [--version]
optional arguments:
--help/-h यह सहायता संदेश दिखाएँ और बाहर निकलें
--proxy/-p PROXY प्रॉक्सी [IP:PORT]
--log/-l लॉगिंग सक्षम करें
--ssl/-s ssl सक्षम करें
--threads/-t NUMBER थ्रेड(स) संख्या [डिफ़ॉल्ट=1]
--version/-v प्रोग्राम का संस्करण संख्या दिखाएँ और बाहर निकलें
[अनुरोध विकल्प]:
--request/-r REQUEST अनुरोध फ़ाइल
--delay/-d TIME अनुरोधों के बीच देरी सेट करें [डिफ़ॉल्ट=0.05]
--encode/-e uri/body में स्पेस वर्ण एन्कोड करें
--full-encode/-fe uri/body में सभी वर्ण एन्कोड करें
[आउटपुट विकल्प]:
--output/-o OUTPUT महत्वपूर्ण जानकारी आउटपुट करें [terminal/folder name]
--output-details/-od OUTPUT
सभी विवरण आउटपुट करें [terminal/folder name]
[मॉड्यूल]:
--fuzz/-f फज़िंग मॉड्यूल चलाएँ
--charfuzz/-cf कैरेक्टर फज़िंग मॉड्यूल चलाएँ
--manipulate/-m हेडर हेरफेर मॉड्यूल चलाएँ
Usage: python3 pfuzz.py -r req.txt --log -s --fuzz -d 1 --encode -o terminal --threads 2
Usage: python3 pfuzz.py -r req.txt -f -l --proxy 127.0.0.1:8080 --output-details ~/output
- modules
- charfuzzer.py
- exparse.py
- fuzzer.py
- headeroperations.py
- manupilatingheaders.py
from reqparser import HTTPReq
myreq = HTTPReq.getobj()
...
myreq.uri
myreq.body
myreq.http
myreq.referer
myreq.origin
myreq.host
myreq.cookie
...
यदि आप अपने पेलोड को एक्सेल से प्राप्त करना चाहते हैं, तो आप modules.exparse से getpayloads विधियों का उपयोग कर सकते हैं।
from modules.exparse import getpayloads
getpayloads(fuzzsheetName, genericcolmnName, fuzzingpayloads)
# static/statics.py में फ़ज़िंग मॉड्यूल
fuzzsheetName = 'Fuzzing'
genericcolmnName = 'Payload'
fuzzingpayloads = []
अब, आप जो चाहें विशेषताओं को बदल/जोड़/हटा सकते हैं।
myreq.uri = tmpuri + payload
myreq.addheader(header, "127.0.0.1")
myreq.content_type = "text/html"
from modules.exparse import getpayloads
for payload in fuzzingpayloads:
if payload == '#exitme#':
statics.exitCall = True
else:
[OPERATIONS]
from reqsender import sendit
sendit(myreq)
![]() Emre Övünç | ![]() Mert Taşçı | ![]() Evren Yalçın |
| उद्देश्य | मॉड्यूल/क्लास | फ़ंक्शन | पैरामीटर(स) |
|---|
| अनुरोध भेजने के लिए | reqsender.py | sendit() | object |
| अनुरोध ऑब्जेक्ट का उपयोग करने के लिए | reqparser.py/HTTPReq | getobj() | - |
| कस्टम हेडर जोड़ने के लिए | reqparser.py/HTTPReq | OBJECT.addheader() | newHeadername,value |
| हेडर हटाने के लिए | reqparser.py/HTTPReq | OBJECT.delheader() | headerName |
| हेडर बदलने के लिए | reqparser.py/HTTPReq | OBJECT.changeheader() | headerName,newHeaderName |
| फ़ाइल से पेलोड प्राप्त करने के लिए | exparse.py | getpayloads() | sheetName,columnName |
| लॉग जानकारी/डीबग/चेतावनी लिखने के लिए | waflogger.py | loginfo/logdebug/logwarn() | logMessage |