Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
haptyc — Turbo Intruder के लिए Python लाइब्रेरी जो पेलोड पोजीशन सपोर्ट और Sniper/Clusterbomb/Pitchfork अटैक प्रकारों को जोड़ती है, साथ ही HTTP फ़ज़िंग के लिए टैग-आधारित टेस्ट जनरेशन। | Kitploit
उपकरण/GitHubGitHub/defparam/haptyc
पेलोड जनरेशनवेब सुरक्षाफज़िंगपेनिट्रेशन टेस्टिंग
GitHubdefparam/haptyc

haptyc

Turbo Intruder के लिए Python लाइब्रेरी जो पेलोड पोजीशन सपोर्ट और Sniper/Clusterbomb/Pitchfork अटैक प्रकारों को जोड़ती है, साथ ही HTTP फ़ज़िंग के लिए टैग-आधारित टेस्ट जनरेशन।

रिपॉजिटरी देखें
94154 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें


Haptyc


परीक्षण निर्माण ढाँचा

tag

Haptyc क्या है?

Haptyc एक पायथन लाइब्रेरी है जिसे Turbo Intruder में पेलोड पोजीशन सपोर्ट और Sniper/Clusterbomb/Batteringram/Pitchfork अटैक प्रकार जोड़ने के लिए बनाया गया था। जबकि Haptyc इन लक्ष्यों को अच्छी तरह से पूरा करता है, यह सामान्य रूप से परीक्षण अनुक्रमों को व्यक्त करने का एक सरल तरीका भी प्रस्तुत करता है। जबकि यह लाइब्रेरी Turbo Intruder को लक्षित करने के लिए थी, इसकी Turbo Intruder पर कोई कठोर निर्भरता नहीं है और इसका उपयोग कहीं भी किया जा सकता है जहाँ पायथन संदर्भ में परीक्षण निर्माण की आवश्यकता हो। दुर्भाग्य से, इस समय Haptyc को jython इंटरप्रेटर के लिए बनाया गया था, इसलिए यह केवल Python 2.7 का समर्थन करता है (हालाँकि भविष्य में परिवर्तन इसे ठीक कर देंगे)।

Haptyc टैग क्या हैं?

Haptyc टैग वे टैग हैं जिनका उपयोग एक परीक्षक मूल इनपुट पेलोड को एनोटेट करने के लिए कर सकता है। एक परीक्षक HTTP अनुरोध में मुख्य डेटा के टुकड़ों को घेरने के लिए कई टैग का उपयोग कर सकता है ताकि इसे एक स्थितिगत पेलोड के रूप में लपेटा जा सके। जब परीक्षण उत्पन्न किए जा रहे होते हैं, Haptyc मूल पेलोड में सभी टैगों को पार्स करेगा और टैग नामों से जुड़े कार्यों के अनुसार परीक्षण उत्पन्न करेगा। जब Haptyc एक Haptyc टैग का मूल्यांकन करता है, तो वह संबंधित टैग फ़ंक्शन (इसे Haptyc Transform कहा जाता है) को एक परीक्षण पेलोड के लिए निष्पादित करेगा ताकि अनुरोध में संबंधित टैग की स्थिति में रखा जा सके। प्रत्येक टैग फ़ंक्शन को एक data तर्क और एक state तर्क प्राप्त होगा। डेटा तर्क में टैग का आंतरिक डेटा हो सकता है या कोई अन्य परीक्षण पेलोड अनुक्रम हो सकता है। State तर्क टैग से जुड़ी एक state ऑब्जेक्ट है जहाँ परीक्षण पुनरावृत्तियों के बीच state संग्रहीत की जा सकती है। आइए एक उदाहरण देखें।

उदाहरण 1: सरल सूची पुनरावृत्ति

मूल पेलोड:

root@kitploit:~
GET /animal/[+GuessAnimal]dog[+end] HTTP/1.1

Haptyc वर्ग और Haptyc Transform:

root@kitploit:~
from haptyc import *

original = "GET /animal/[+GuessAnimal]dog[+end] HTTP/1.1"

class TestLogic(Transform):
	@ApplyList(["snake","cat","owl","lion"])
	def test_GuessAnimal(self, data, state):
		return data + "?original=" + self.inner() + "&attempt=" + str(state.iter)

TestFactory = TestLogic(original)
for test in TestFactory:
	print(test)

उत्पन्न परीक्षण:

root@kitploit:~
GET /animal/snake?original=dog&attempt=0 HTTP/1.1
GET /animal/cat?original=dog&attempt=1 HTTP/1.1
GET /animal/owl?original=dog&attempt=2 HTTP/1.1
GET /animal/lion?original=dog&attempt=3 HTTP/1.1

ऊपर दिए गए उदाहरण में हम देखते हैं कि Haptyc का उपयोग करके परीक्षणों को सरल तरीके से कैसे व्यक्त किया जा सकता है। पहले Haptyc लाइब्रेरी को आयात किया जाता है। दूसरे, हमने अपने Haptyc टैग एनोटेशन (GuessAnimal) के साथ मूल डेटा को परिभाषित किया है। इसके बाद TestLogic वर्ग को परिभाषित किया गया है और इसे Transform वर्ग के रूप में विस्तारित किया गया है। इस वर्ग के अंदर प्रत्येक विधि जो test_ से शुरू होती है, मूल पेलोड में मूल्यांकन के लिए Haptyc टैग के रूप में पंजीकृत हो जाएगी। हम इस Haptyc transform के लिए state लॉजिक लागू करने के लिए एक लॉजिक डेकोरेटर का उपयोग करते हैं। इस मामले में हम @ApplyList(list) डेकोरेटर का उपयोग करके Haptyc को बताते हैं कि निर्दिष्ट सूची के प्रत्येक आइटम के लिए एक परीक्षण उत्पन्न करें और उस आइटम को Haptyc transform में data तर्क के रूप में रखें। Transform के अंदर हम टैग की स्थिति में वापस सम्मिलित करने के लिए data का एक उत्परिवर्तित संस्करण लौटाते हैं। इस मामले में उत्परिवर्तन data के रूप में सूची आइटम है जो टैग द्वारा घिरे डेटा (dog) से जुड़ा है और फिर state ऑब्जेक्ट में iter मान से जुड़ा है। अंत में शेष पायथन कोड TestFactory ऑब्जेक्ट बनाने और for लूप इटरेटर में सभी परीक्षण उत्पन्न करने को दर्शाता है। यह एक मानक sniper-शैली के हमले का उदाहरण है जो एकल पेलोड स्थिति को लक्षित करता है। आगे हम अन्य शैलियों के हमलों को देखते हैं।

उदाहरण 2: Clusterbomb

मूल पेलोड:

root@kitploit:~
GET /animal?type=[%type]dog[%end]&name=[%name]fido[%end] HTTP/1.1

Haptyc वर्ग और Haptyc Transform:

root@kitploit:~
from haptyc import *

original = "GET /animal?type=[%type]dog[%end]&name=[%name]fido[%end] HTTP/1.1"

class TestLogic(Transform):
	@ApplyList("snake","cat","owl","lion")
	def test_type(self, data, state):
		return data
		
	@ApplyList("Frank", "Lisa", "Jin", "Tooth")
	def test_name(self, data, state):
		return data

TestFactory = TestLogic(original)
for test in TestFactory:
	print(test)

उत्पन्न परीक्षण:

root@kitploit:~
GET /animal?type=snake&name=Frank HTTP/1.1
GET /animal?type=snake&name=Lisa HTTP/1.1
GET /animal?type=snake&name=Jin HTTP/1.1
GET /animal?type=snake&name=Tooth HTTP/1.1
GET /animal?type=cat&name=Frank HTTP/1.1
GET /animal?type=cat&name=Lisa HTTP/1.1
GET /animal?type=cat&name=Jin HTTP/1.1
GET /animal?type=cat&name=Tooth HTTP/1.1
GET /animal?type=owl&name=Frank HTTP/1.1
GET /animal?type=owl&name=Lisa HTTP/1.1
GET /animal?type=owl&name=Jin HTTP/1.1
GET /animal?type=owl&name=Tooth HTTP/1.1
GET /animal?type=lion&name=Frank HTTP/1.1
GET /animal?type=lion&name=Lisa HTTP/1.1
GET /animal?type=lion&name=Jin HTTP/1.1
GET /animal?type=lion&name=Tooth HTTP/1.1

उदाहरण 1 ने दिखाया कि '+' चिन्ह एनोटेशन टैग [+tag][+end] का उपयोग करके sniper शैली में transforms का मूल्यांकन कैसे किया जाता है। उदाहरण 2 दिखाता है कि हम clusterbomb-शैली के हमले को संचालित करने के लिए 2 transforms/positions का उपयोग कैसे कर सकते हैं। जैसा कि आप देख सकते हैं, हम दो अलग-अलग transform टैग का उपयोग करते हैं जिन्हें [%type][%end] और [%name][%end] कहा जाता है। '%' चिन्ह Haptyc को बताता है कि इन transforms का मूल्यांकन clusterbomb-शैली में करें, पहले transform के प्रत्येक पेलोड के लिए दूसरे transform से पेलोड के साथ एक परीक्षण बनाएं। परीक्षणों की संख्या प्रत्येक शामिल transform के परीक्षणों की संख्या को गुणा करके प्राप्त की जाती है।

उदाहरण 3: Pitchfork/BatteringRam

समान पायथन कोड का उपयोग करके हम '%' को '#' में बदलकर हमले की शैली को clusterbomb से pitchfork में बदल सकते हैं। Pitchfork शैली के हमले स्थिति पेलोड को समानांतर में रखेंगे। परीक्षणों की संख्या सभी शामिल transforms में से सबसे कम परीक्षणों की संख्या होगी।

मूल पेलोड:

root@kitploit:~
GET /animal?type=[#type]dog[#end]&name=[#name]fido[#end] HTTP/1.1

उत्पन्न परीक्षण:

root@kitploit:~
GET /animal?type=snake&name=Frank HTTP/1.1
GET /animal?type=cat&name=Lisa HTTP/1.1
GET /animal?type=owl&name=Jin HTTP/1.1
GET /animal?type=lion&name=Tooth HTTP/1.1

उदाहरण 4: स्थायी Transform (Persistent Transforms)

मूल पेलोड:

root@kitploit:~
GET /animal?type=dog&id=[+idor]0[+end]&process=[@randbool]False[@end] HTTP/1.1

Haptyc वर्ग और Haptyc Transform:

root@kitploit:~
from haptyc import *
import random

original = "GET /animal?type=dog&id=[+idor]0[+end]&process=[@randbool]False[@end] HTTP/1.1"

class TestLogic(Transform):
        @ApplyIteration(10)
        def test_idor(self, data, state):
                return str(state.iter)

        def per_randbool(self, data):
                return random.choice(["True", "False"])

TestFactory = TestLogic(original)
for test in TestFactory:
        print(test)

उत्पन्न परीक्षण:

root@kitploit:~
GET /animal?type=dog&id=0&process=False HTTP/1.1
GET /animal?type=dog&id=1&process=True HTTP/1.1
GET /animal?type=dog&id=2&process=False HTTP/1.1
GET /animal?type=dog&id=3&process=True HTTP/1.1
GET /animal?type=dog&id=4&process=False HTTP/1.1
GET /animal?type=dog&id=5&process=True HTTP/1.1
GET /animal?type=dog&id=6&process=False HTTP/1.1
GET /animal?type=dog&id=7&process=True HTTP/1.1
GET /animal?type=dog&id=8&process=False HTTP/1.1
GET /animal?type=dog&id=9&process=False HTTP/1.1

स्थायी transforms को '@' चिन्ह से दर्शाया जाता है और transform फ़ंक्शन हमेशा per_ से शुरू होते हैं क्योंकि ये transforms पुनरावृत्त नहीं होते हैं, वे परीक्षण नहीं बनाते हैं या state नहीं रखते हैं। ये transforms केवल सरल रूपांतरण हैं जिन्हें आप पेलोड में कहीं भी स्थितिहीन रूपांतरण के लिए लागू कर सकते हैं, बिना स्थितिगत transforms को प्रभावित किए। चूँकि वे कोई परीक्षण निर्धारित नहीं करते हैं, आप केवल स्थायी transforms के साथ परीक्षण उत्पन्न नहीं कर सकते हैं, वे पुनरावृत्त transforms के साथ मिश्रित होने के लिए होते हैं। ऊपर दिए गए उदाहरण में हमारे पास 10-परीक्षण snipe शैली का transform है जो बढ़ती हुई id रखता है। साथ ही हमारे पास एक स्थायी transform है जो अपनी स्थिति में एक यादृच्छिक बूलियन रखता है।

उदाहरण 5: state और state.init का उपयोग

ऐसे मामले हो सकते हैं जहाँ परीक्षण अनुक्रम शुरू होने से पहले परीक्षक कुछ प्रसंस्करण/आरंभीकरण करना चाहे। इसका समर्थन करने के लिए Haptyc परीक्षण निर्माण के लिए transform को निष्पादित करने से पहले आरंभीकरण चरण के लिए सभी शामिल transforms को निष्पादित करता है। इस आरंभीकरण चरण का उपयोग परीक्षक जो भी आरंभीकरण आवश्यक है उसे करने और उसे state ऑब्जेक्ट में रखने के लिए किया जा सकता है। इसके लिए परीक्षक state.init का उपयोग बूलियन के रूप में यह निर्धारित करने के लिए कर सकता है कि निष्पादन आरंभीकरण में है या नहीं। आरंभीकरण चरण से लौटाया गया कोई भी डेटा अनदेखा कर दिया जाएगा।

मूल पेलोड:

root@kitploit:~
GET /animal?data=[+b64mutate]SGVsbG8gSGFja2VyIQ==[+end] HTTP/1.1

Haptyc वर्ग और Haptyc Transform:

root@kitploit:~
from haptyc import *
import base64

original = "GET /animal?data=[+b64mutate]SGVsbG8gSGFja2VyIQ==[+end] HTTP/1.1"

class TestLogic(Transform):
        @ApplyIteration(10)
        def test_b64mutate(self, data, state):
                if state.init:
                        state.decoded = base64.b64decode(data)
                        return
                return base64.b64encode(random_insert(state.decoded, ["'"]))

TestFactory = TestLogic(original)
for test in TestFactory:
        print(test)

उत्पन्न परीक्षण:

root@kitploit:~
GET /animal?data=SGVsbG8gSCdhY2tlciE= HTTP/1.1
GET /animal?data=SGVsbG8gSGFja2VyISc= HTTP/1.1
GET /animal?data=SGVsbG8gSGFjaydlciE= HTTP/1.1
GET /animal?data=SGVsbG8gSGEnY2tlciE= HTTP/1.1
GET /animal?data=SCdlbGxvIEhhY2tlciE= HTTP/1.1
GET /animal?data=SGVsbG8gSGFjaydlciE= HTTP/1.1
GET /animal?data=SGVsbG8gSGFja2VyISc= HTTP/1.1
GET /animal?data=SCdlbGxvIEhhY2tlciE= HTTP/1.1
GET /animal?data=SGVsbG8gSGFjJ2tlciE= HTTP/1.1
GET /animal?data=SGVsbG8gSGFjJ2tlciE= HTTP/1.1

ऊपर दिए गए उदाहरण में परीक्षण state.init का उपयोग करता है ताकि परीक्षण अनुक्रम की शुरुआत में केवल एक बार लिपटे आंतरिक पेलोड को base64 डीकोड किया जा सके और उस परिणाम को state.decoded में संग्रहीत किया जा सके। फिर सभी सामान्य परीक्षण निर्माण निष्पादन के लिए state.decoded का उपयोग संसाधित किए जाने वाले डीकोड किए गए आंतरिक डेटा के रूप में किया जाता है। इस प्रकार का पैटर्न आपके transform के प्रदर्शन को बेहतर बनाने के लिए उपयोगी है क्योंकि प्रारंभ में केवल 1 डीकोड होता है (प्रत्येक परीक्षण के निर्माण पर समान पेलोड को डीकोड करने के विपरीत)।

दस्तावेज़ीकरण

टैग प्रकार

  1. [+tag]inner[+end] - Sniper शैली पुनरावृत्त transform
  2. [%tag]inner[%end] - Clusterbomb शैली पुनरावृत्त transform
  3. [#tag]inner[#end] - Batteringram/Pitchfork शैली पुनरावृत्त transform
  4. [@tag]inner[@end] - स्थितिहीन स्थायी transform (Stateless persistent transform)

लॉजिक डेकोरेटर

Haptyc वर्ग डेकोरेटर

नामतर्कविवरण
@CloneTransform(srcname, destname)srcname = किसी transform विधि को कॉपी करने का स्ट्रिंग नाम, destname = किसी मौजूदा transform विधि में कॉपी करने का स्ट्रिंग नामCloneTransform का उपयोग एक transform के कार्यान्वयन को दूसरे नामस्थान में कॉपी करने के लिए किया जाता है बिना कॉपी/पेस्ट की आवश्यकता के। यह '%' और '#' शैली के हमलों में उपयोगी है जब आपको एक ही transform कार्यान्वयन को कई स्थानों पर पुन: उपयोग करने की आवश्यकता होती है

Transform वर्ग सहायक विधियाँ

नामविवरण
self.inner()टैग के आंतरिक पेलोड को पुनर्प्राप्त करता है

Transform सहायक State विशेषताएँ

नामविवरण
state.itertransform की वर्तमान पुनरावृत्ति गणना (0-आधारित)
state.initबूलियन जो इंगित करता है कि क्या आरंभीकरण चरण में है

सहायक उत्परिवर्तन फ़ंक्शन

नामविवरण
radamsa(data)यह फ़ंक्शन इनपुट डेटा पर radamsa निष्पादित करेगा और उसका परिणाम लौटाएगा (radamsa को स्थापित करना आवश्यक है)
index_insert(data, list, index)यह फ़ंक्शन प्रदान किए गए डेटा में प्रदान किए गए सूचकांक पर सूची से एक पेलोड सम्मिलित करेगा
random_insert(data, list)यह फ़ंक्शन प्रदान किए गए डेटा में एक यादृच्छिक सूचकांक पर सूची से एक पेलोड सम्मिलित करेगा

अंतर्निर्मित शब्दसूचियाँ

  • @ApplyPayloads("0-9")
  • @ApplyPayloads("10 letter words")
  • @ApplyPayloads("11 letter words")
  • @ApplyPayloads("12 letter words")
  • @ApplyPayloads("3 letter words")
  • @ApplyPayloads("4 letter words")
  • @ApplyPayloads("5 letter words")
  • @ApplyPayloads("6 letter words")
  • @ApplyPayloads("7 letter words")
  • @ApplyPayloads("8 letter words")
  • @ApplyPayloads("9 letter words")
  • @ApplyPayloads("a-z")
  • @ApplyPayloads("CGI scripts")
  • @ApplyPayloads("Directories - long")
  • @ApplyPayloads("Directories - short")
  • @ApplyPayloads("dirsearch")
  • @ApplyPayloads("Extensions - long")
  • @ApplyPayloads("Extensions - short")
  • @ApplyPayloads("Filenames - long")
  • @ApplyPayloads("Filenames - short")
  • @ApplyPayloads("Format strings")
  • @ApplyPayloads("Form field names - long")
  • @ApplyPayloads("Form field names - short")
  • @ApplyPayloads("Form field values")
  • @ApplyPayloads("Fuzzing - full")
  • @ApplyPayloads("Fuzzing - JSON_XML injection")
  • @ApplyPayloads("Fuzzing - out-of-band")
  • @ApplyPayloads("Fuzzing - path traversal")
  • @ApplyPayloads("Fuzzing - path traversal (single file)")
  • @ApplyPayloads("Fuzzing - quick")
  • @ApplyPayloads("Fuzzing - SQL injection")
  • @ApplyPayloads("Fuzzing - template injection")
  • @ApplyPayloads("Fuzzing - XSS")
  • @ApplyPayloads("HTTP headers")
  • @ApplyPayloads("HTTP verbs")
  • @ApplyPayloads("IIS files and directories")
  • @ApplyPayloads("Interesting files and directories")
  • @ApplyPayloads("Local files - Java")
  • @ApplyPayloads("Local files - Linux")
  • @ApplyPayloads("Local files - Windows")
  • @ApplyPayloads("Passwords")
  • @ApplyPayloads("Server-side variable names")
  • @ApplyPayloads("Short words")
  • @ApplyPayloads("SSRF targets")
  • @ApplyPayloads("User agents - long")
  • @ApplyPayloads("User agents - short")
  • @ApplyPayloads("Usernames")

कैसे स्थापित करें

Haptyc को स्थापित करने के 2 तरीके हैं

  1. इस रिपॉजिटरी से जुड़ी रिलीज़ turbo-intruder-all_w_haptyc.jar का उपयोग करके आसान तरीका
  2. मैन्युअल तरीका

आप जो भी तरीका चुनें, इन रिलीज़ में radamsa शामिल नहीं है और यदि आप radamsa समर्थन चाहते हैं तो आपको इसे इस रिपॉजिटरी से स्थापित करना होगा: (वैकल्पिक) radamsa को https://gitlab.com/akihe/radamsa से स्थापित करें

कैसे स्थापित करें - पूर्व-पैकेज्ड (आसान)

  1. इस रिपॉजिटरी को क्लोन करें और release निर्देशिका में turbo-intruder-all_w_haptyc.jar नोट करें
  2. Burp खोलें
  3. Extender टैब पर जाएँ
  4. Add बटन पर क्लिक करें
  5. Select File ... बटन पर क्लिक करें और turbo-intruder-all_w_haptyc.jar चुनें

कैसे स्थापित करें - मैन्युअल (turbo-intruder-all.jar को पैच करना)

  1. इस रिपॉजिटरी को क्लोन करें
  2. bash में ./install.sh <turbo-intruder-all.jar वाला निरपेक्ष निर्देशिका> निष्पादित करें
  3. Burp में Turbo Intruder को पुनः लोड करें
टूल डाउनलोड करें
नामतर्कdata इनपुटविवरण
@ApplyIteration(n)n = पुनरावृत्तियों की संख्याhaptyc टैग का आंतरिक मानआंतरिक डेटा के साथ N परीक्षण उत्पन्न करने का तर्क
@ApplyRange(b,e,s=1)b = प्रारंभ मान, e = अधिकतम मान, s = चरणश्रेणी का उत्पन्न मानप्रत्येक चरणित मान के लिए डेटा के रूप में दिए गए मान के साथ परीक्षण उत्पन्न करने का तर्क
@ApplyList(L)L = पायथन सूचीसूची का आइटमसूची में प्रत्येक मान के लिए डेटा के रूप में दिए गए मान के साथ परीक्षण उत्पन्न करने का तर्क
@ApplyFilelist(path)path = फ़ाइल सिस्टम पथसूची का आइटमफ़ाइल सूची में प्रत्येक मान के लिए डेटा के रूप में दिए गए मान के साथ परीक्षण उत्पन्न करने का तर्क
@ApplyPayloads(name)name = अंतर्निर्मित सूची नामसूची का आइटमअंतर्निर्मित सूची में प्रत्येक मान के लिए डेटा के रूप में दिए गए मान के साथ परीक्षण उत्पन्न करने का तर्क
self.stop()
उस transform का परीक्षण निर्माण तुरंत रोक देगा
self.me()वर्तमान transform संदर्भ का नाम लौटाएगा
self.set_label(label)इस वर्तमान परीक्षण के लिए लेबल सेट करेगा
self.get_label(label)इस वर्तमान परीक्षण के लिए लेबल प्राप्त करेगा