Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
hyperswitch-payout-confirm-secret — हाइपरस्विच पेआउट कन्फर्म फ्लॉ के लिए प्रूफ-ऑफ-कॉन्सेप्ट और लैब: POST /payouts/{id}/confirm में एक डमी client_secret के साथ राशि जोड़ने पर संग्रहीत पेआउट राशि बढ़ जाती है। | Kitploit
उपकरण/GitHubGitHub/abraxas/hyperswitch-payout-confirm-secret
प्रमाणीकरण और प्राधिकरणभेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणवेब सुरक्षापेनिट्रेशन टेस्टिंगAPI सुरक्षालैब और अभ्यास

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
GitHub
abraxas/hyperswitch-payout-confirm-secret

hyperswitch-payout-confirm-secret

हाइपरस्विच पेआउट कन्फर्म फ्लॉ के लिए प्रूफ-ऑफ-कॉन्सेप्ट और लैब: POST /payouts/{id}/confirm में एक डमी client_secret के साथ राशि जोड़ने पर संग्रहीत पेआउट राशि बढ़ जाती है।

रिपॉजिटरी देखें
1918 दिन पहलेअभी तक समीक्षित नहीं

Abraxas Labs - hyperswitch-payout-confirm-secret

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  hyperswitch-payout-confirm-secret

hyperswitch-payout-confirm-secret

Hyperswitch 2026.09.21.0 - Juspay

payouts_confirm check_value_present("client_secret") के माध्यम से pk_ को प्रमाणित करता है। मौजूद है। बराबर नहीं। Payments confirm अभी भी बाइंड करता है: authenticate_client_secret बेमेल होने पर IR_09 लौटाता है। confirm body एक पूर्ण PayoutCreateRequest है। update_payouts_and_payout_attempt कनेक्टर रूटिंग से पहले amount लिखता है।

payouts confirm पर डमी client_secret और amount=99900 99900 संग्रहीत करता है। उसी डमी के साथ payments confirm अभी भी IR_09 है।

IDअभी तक कोई CVE नहीं
CWECWE-863, CWE-345
CVSSHigh: 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
ProductHyperswitch
Affected2026.09.21.0 तक payouts confirm
Authpublishable pk_ और payout id; डमी secret
LicenseGNU Affero GPL v3.0
Labकेवल 127.0.0.1

हमलावर क्या कर सकता है

publishable key (सार्वजनिक, checkout) और payout id (payout link, merchant dashboard, client create response) चाहिए। डमी secret और नए amount के साथ POST /payouts/{id}/confirm करें। Retrieve बढ़ी हुई राशि दिखाता है, भले ही कनेक्टर रूटिंग 400 IR_39 (कोई योग्य payout कनेक्टर नहीं) लौटाए। लेखन पहले ही हो चुका है। जिस shop में payout processor है, वहाँ fulfillment अगला कदम है।

pk_ के बिना guest यह बग नहीं है। Secret sk_ confirm merchant-side है। यह shell नहीं है। इस lab image पर सफल कनेक्टर payout नहीं है।

unsigned Worldpayxml webhook के समान product। अलग बग।

मैंने इसे कैसे खोजा

मैंने check_value_present पढ़ा, फिर payments req_cs != pi_cs, फिर payouts_core से पहले update_payouts_and_payout_attempt। pk_ के लिए auth "checkout SDK" है। secret का उद्देश्य browser session को इस payout से बाइंड करना है। Payments समानता करता है। Payouts उपस्थिति करता है। एक गैर-रिक्त डमी पर्याप्त है। JSON अभी भी एक create request है, इसलिए confirm पर amount no-op नहीं है।

पहला client जो इसे देखेगा वह client_secret के बिना confirm भेजेगा और MissingRequiredField प्राप्त करेगा। मौजूद है। असली secret भेजें और आप payer हैं। payments confirm पर डमी भेजें और आपको IR_09 मिलेगा। यही नियंत्रण है। payouts confirm पर डमी भेजें।

पहले से दर्ज गलत मोड़: HTTP 400 IR_39 को "कुछ नहीं हुआ" मानना (payout retrieve करें); amount 1000 रहता है क्योंकि confirm ने amount छोड़ दिया (unwrap_or पुराना मान रखता है); payout पहले से terminal (Success / Failed / Cancelled); एक reverse shell। नाटक। साक्षी है डमी secret के बाद retrieve amount=99900, जबकि payments confirm अभी भी IR_09 है।

फिर: एक merchant, एक secret key, एक publishable pk_, एक worldpayxml payout कनेक्टर बनाएं, और confirm=false amount 1000 के साथ POST /payouts/create करें। RequiresConfirmation। Payments डमी-secret नियंत्रण। Payouts डमी 99900। Retrieve।

Lab

cd lab
./run.sh

लक्ष्य केवल http://127.0.0.1:18083। webhook lab के साथ compose project साझा न करें।

IOC amount_before=1000 status_before=requires_confirmation
IOC payments.confirm dummy-secret status=400 IR_09 client_secret mismatch
IOC payouts.confirm dummy-secret status=400 IR_39 no eligible connector
IOC retrieve amount=99900 status=requires_confirmation
SUCCESS Hyperswitch payout confirm unbound client_secret amount raise

समाधान

client_secret की तुलना payouts.client_secret से उसी तरह करें जैसे payments करता है, और उस जाँच के पास होने तक confirm पर PayoutCreateRequest.amount लागू न करें। डमी secret को IR_09 (या 401) होना चाहिए, और retrieve amount को 1000 रहना चाहिए।

संदर्भ

  • github.com/juspay/hyperswitch tag 2026.09.21.0
  • payouts.rs routes · authentication.rs · payouts/helpers.rs · core/payouts.rs · payments/helpers.rs
  • समान product: hyperswitch-unsigned-webhook
  • CWE-863 · CWE-345

लाइसेंस

GNU Affero GPL v3.0। देखें LICENSE। केवल loopback lab। कोई वारंटी नहीं।

टूल डाउनलोड करें