Regular expression Denial of Service - ReDoS
Regular Expression Denial of Service - ReDoS
Regular Expression Denial of Service (ReDoS)
नियमित अभिव्यक्ति सेवा (ReDoS) उस समय होती है जब कोई व्यक्ति नियमित अभिव्यक्तियों (टेक्स्ट में पैटर्न खोजने और मिलान करने का एक तरीका) के काम करने के तरीके में कमजोरियों का फायदा उठाता है। कभी-कभी, जब नियमित अभिव्यक्तियों का उपयोग किया जाता है, तो वे बहुत धीमे हो सकते हैं, खासकर अगर वे काम कर रहे टेक्स्ट का टुकड़ा बड़ा हो। यह धीमापन इतना बुरा हो सकता है कि यह टेक्स्ट के आकार में छोटी वृद्धि के साथ बहुत तेजी से बढ़ जाता है। हमलावर इस समस्या का उपयोग करके एक कार्यक्रम को बना सकते हैं जो नियमित अभिव्यक्तियों का उपयोग लंबे समय तक सही ढंग से काम नहीं करने देता है।
समस्यापूर्ण रेजेक्स नैव एल्गोरिदम
विवरण की जांच करें https://owasp.org/www-community/attacks/Regular_expression_Denial_of_Service_-_ReDoS
शैतानी रेजेक्स
एक शैतानी नियमित अभिव्यक्ति पैटर्न वह है जो क्राफ्टेड इनपुट पर अटक जाता है और डीओएस का कारण बनता है। शैतानी रेजेक्स पैटर्न आम तौर पर पुनरावृत्ति और पुनरावृत्ति या पुनरावृत्ति के साथ समूहबद्धता शामिल करते हैं। कुछ शैतानी पैटर्न के उदाहरण हैं:
(a+)+
([a-zA-Z]+)*
(a|aa)+
(a|a?)+
(.*a){x} जहां x > 10
इन सभी को इनपुट aaaaaaaaaaaaaaaaaaaaaaaa!
के लिए संक्रमित किया जा सकता है।
ReDoS पेलोड
ReDoS के माध्यम से स्ट्रिंग एक्सफिल्ट्रेशन
एक CTF (या बग बाउंटी) में शायद आप नियमित अभिव्यक्ति (ध्वज) के साथ मिलान किए जाने वाले संवेदनशील जानकारी को नियंत्रित करते हैं। फिर, यदि एक नियमित अभिव्यक्ति मिलता है और अगर नहीं मिलता है तो पृष्ठ जम जाएगा (समय समाप्ति या लंबी प्रसंस्करण समय) तो यह उपयोगी हो सकता है। इस तरह आप स्ट्रिंग एक्सफिल्ट्रेट कर सकेंगे अक्षर द्वारा अक्षर:
इस पोस्ट में आप इस ReDoS नियम को पा सकते हैं:
^(?=<flag>)((.*)*)*salt$
उदाहरण:
^(?=HTB{sOmE_fl§N§)((.*)*)*salt$
इस व्रिटअप में आप इसे पा सकते हैं:
<flag>(((((((.*)*)*)*)*)*)*)!
इस व्रिटअप में उन्होंने इस्तेमाल किया:
^(?=${flag_prefix}).*.*.*.*.*.*.*.*!!!!$
इनपुट और रेजेक्स को नियंत्रित करने वाले ReDoS
निम्नलिखित ReDoS उदाहरण हैं जहां आप इनपुट और रेजेक्स दोनों को नियंत्रित करते हैं:
उपकरण
संदर्भ
Last updated