
पायथन में लिखा गया फ़ज़िंग फ्रेमवर्क
| सुली: बू? | बू: किटी!
किटी एक ओपन-सोर्स मॉड्यूलर और विस्तार योग्य फज़िंग फ्रेमवर्क है जो पायथन में लिखा गया है,
जो ओपनआरसीई के सुली <https://github.com/OpenRCE/sulley>_
और माइकल एडिंगटन (और अब देजा वु सिक्योरिटी) के पीच फज़र <http://community.peachfuzzer.com/>_ से प्रेरित है।
लक्ष्य
जब हमने किटी लिखना शुरू किया, हमारा लक्ष्य असामान्य लक्ष्यों को फज़ करने में मदद करना था
--- अर्थात गैर-टीसीपी/आईपी संचार चैनलों पर मालिकाना और गूढ़ प्रोटोकॉल ---
हर बार सब कुछ शुरू से लिखे बिना। एक सामान्य और अमूर्त फ्रेमवर्क जो
हर उस फज़िंग प्रक्रिया की सामान्य कार्यक्षमता को शामिल करेगा जिसके बारे में हम सोच सकते हैं,
और उपयोगकर्ता को अपने विशिष्ट लक्ष्य का परीक्षण करने के लिए इसे आसानी से विस्तारित और उपयोग करने की अनुमति देगा।
विशेषताएं
इस लक्ष्य को ध्यान में रखते हुए, निम्नलिखित विशेषताएं हमारे लिए बहुत महत्वपूर्ण थीं:
:मॉड्यूलरिटी:
फज़र का प्रत्येक भाग अपने आप में स्वतंत्र है। इसका मतलब है कि आप विभिन्न अनुप्रयोगों के लिए समान मॉनिटरिंग कोड, या विभिन्न चैनलों पर प्राप्त समान डेटा के पार्सिंग का परीक्षण करने के लिए समान पेलोड जनरेटर (उर्फ डेटा मॉडल) का उपयोग कर सकते हैं।
:विस्तारशीलता:
यदि आपको कुछ "नया" परीक्षण करने की आवश्यकता है, तो आपको किटी के मुख्य कोड को बदलने की आवश्यकता नहीं होगी। अधिकांश, यदि सभी नहीं, तो सुविधाओं को उपयोगकर्ता कोड में लागू किया जा सकता है। इसमें फज़ किए गए लक्ष्य की निगरानी, नियंत्रण और संचार शामिल है।
:समृद्ध डेटा मॉडलिंग:
डेटा मॉडल कोर समृद्ध है और उन्नत डेटा संरचनाओं का वर्णन करने की अनुमति देता है, जिसमें स्ट्रिंग, हैश, लंबाई, शर्तें और कई और शामिल हैं। और, फ्रेमवर्क के अधिकांश भाग की तरह, इसे आवश्यकतानुसार और आगे बढ़ाने के लिए डिज़ाइन किया गया है।
:स्टेटफुल:
बहु-चरणीय फज़िंग परीक्षणों के लिए समर्थन। आप न केवल यह वर्णन कर सकते हैं कि एक व्यक्तिगत संदेश का पेलोड कैसा दिखेगा, बल्कि आप संदेशों के क्रम का भी वर्णन कर सकते हैं, और यहां तक कि अनुक्रम के क्रम पर फज़िंग भी कर सकते हैं।
:क्लाइंट और सर्वर फज़िंग:
आप सर्वर और क्लाइंट दोनों को फज़ कर सकते हैं, बशर्ते आपके पास एक मैचिंग स्टैक हो। यह एक बड़ी आवश्यकता की तरह लगता है, लेकिन ऐसा नहीं है: इसका सीधा सा मतलब है कि आपके पास लक्ष्य के साथ संवाद करने के साधन होने चाहिए, जो आपके पास ज्यादातर मामलों में वैसे भी होने चाहिए।
:क्रॉस प्लेटफॉर्म:
लिनक्स, ओएस एक्स और विंडोज पर चलता है। हम जज नहीं करते ;-)
खैर, किटी एक फज़र नहीं है। इसमें किसी विशिष्ट प्रोटोकॉल या संचार चैनल का कोई कार्यान्वयन भी शामिल नहीं है। आप इसके साथ अपना स्वयं का फज़र लिख सकते हैं, और आप दूसरों के किटी-आधारित कोड का उपयोग कर सकते हैं, लेकिन यह एक तैयार फज़र नहीं है।
किटी मॉडल के कार्यान्वयन प्राप्त करने (और जोड़ने) के लिए एक अच्छी जगह कैटनिप है।
किटी, एक फ्रेमवर्क के रूप में, फज़र मुख्य लूप को लागू करता है, और डेटा मॉडलिंग के लिए सिंटैक्स और प्रत्येक तत्व के लिए बेस क्लास प्रदान करता है जो एक पूर्ण फज़िंग सत्र बनाने के लिए उपयोग किए जाते हैं। हालांकि, क्लासेस के विशिष्ट कार्यान्वयन किटी फ्रेमवर्क का हिस्सा नहीं हैं। इसका मतलब है कि किटी किसी लक्ष्य के साथ डेटा लेन-देन करने के लिए इंटरफ़ेस और बेस क्लास को परिभाषित करता है, लेकिन यह एचटीटीपी, टीसीपी या यूएआरटी पर डेटा ट्रांसमिशन के लिए कार्यान्वयन प्रदान नहीं करता है।
सभी प्रकार की कक्षाओं के कार्यान्वयन पूरक रिपॉजिटरी - कैटनिप <https://github.com/cisco-sas/katnip>_ में पाए जा सकते हैं।
किटी स्थापित करें:
::
pip install kittyfuzzer
दस्तावेज़ीकरण का कुछ भाग रीडद डॉक्स <https://kitty.readthedocs.io>_ पर पढ़ें।
उदाहरणों पर एक नज़र डालें
अपना खुद का फज़र बनाएं :-)
#kitty ऑन फ्रीनोड <https://webchat.freenode.net/?channels=kitty>_कोई बग मिला?
एक मुद्दा <https://github.com/cisco-sas/kitty/issues/new>_ खोलें
कोई समाधान है?
बढ़िया! कृपया एक पुल रिक्वेस्ट <https://github.com/cisco-sas/kitty/compare>_ सबमिट करें
एक दिलचस्प नियंत्रक/मॉनिटर/लक्ष्य लागू किया?
कृपया कैटनिप रिपॉजिटरी <https://github.com/cisco-sas/katnip>_ में एक पुल रिक्वेस्ट सबमिट करें
किटी-आधारित फज़र का उपयोग करके कोई दिलचस्प बग मिला? हमें इसके बारे में सुनना अच्छा लगेगा! कृपया हमें एक पंक्ति भेजें
|docs| |travis| |coverage| |gitter|
.. |docs| image:: https://readthedocs.org/projects/kitty/badge/?version=latest :alt: Documentation Status :scale: 100% :target: https://kitty.readthedocs.io/en/latest/?badge=latest
.. |travis| image:: https://travis-ci.org/cisco-sas/kitty.svg?branch=master :alt: Build Status :scale: 100% :target: https://travis-ci.org/cisco-sas/kitty
.. |coverage| image:: https://coveralls.io/repos/github/cisco-sas/kitty/badge.svg?branch=master :alt: Test Coverage Status :scale: 100% :target: https://coveralls.io/github/cisco-sas/kitty?branch=master
.. |gitter| image:: https://badges.gitter.im/cisco-sas/kitty.svg :alt: Chat on Gitter :scale: 100% :target: https://gitter.im/cisco-sas/kitty?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge