Regular expression Denial of Service - ReDoS
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
एक Regular Expression Denial of Service (ReDoS) तब होता है जब कोई व्यक्ति नियमित अभिव्यक्तियों (पाठ में पैटर्न खोजने और मेल करने का एक तरीका) के काम करने के तरीके में कमजोरियों का लाभ उठाता है। कभी-कभी, जब नियमित अभिव्यक्तियों का उपयोग किया जाता है, तो वे बहुत धीमी हो सकती हैं, विशेष रूप से यदि जिस पाठ के साथ वे काम कर रहे हैं वह बड़ा हो जाता है। यह धीमापन इतना बुरा हो सकता है कि यह पाठ के आकार में छोटे परिवर्तनों के साथ भी तेजी से बढ़ता है। हमलावर इस समस्या का उपयोग करके एक ऐसा कार्यक्रम बना सकते हैं जो नियमित अभिव्यक्तियों का उपयोग करता है, लंबे समय तक सही तरीके से काम करना बंद कर देता है।
Check the details in https://owasp.org/www-community/attacks/Regular_expression_Denial_of_Service_-_ReDoS
एक बुरी नियमित अभिव्यक्ति पैटर्न वह है जो निर्मित इनपुट पर अटक सकता है जिससे DoS होता है। बुरी regex पैटर्न आमतौर पर समूह के साथ पुनरावृत्ति और पुनरावृत्ति या ओवरलैपिंग के साथ वैकल्पिकता को शामिल करते हैं। बुरी पैटर्न के कुछ उदाहरण हैं:
(a+)+
([a-zA-Z]+)*
(a|aa)+
(a|a?)+
(.*a){x} for x > 10
ये सभी इनपुट aaaaaaaaaaaaaaaaaaaaaaaa!
के प्रति संवेदनशील हैं।
एक CTF (या बग बाउंटी) में, शायद आप Regex को नियंत्रित करते हैं जिससे संवेदनशील जानकारी (ध्वज) मेल खाती है। फिर, यदि एक Regex मेल खाता है और यदि यह मेल नहीं खाता है तो नहीं तो पृष्ठ को फ्रीज (टाइमआउट या लंबे प्रोसेसिंग समय) करना उपयोगी हो सकता है। इस तरह आप एक-एक करके स्ट्रिंग निकालने में सक्षम होंगे:
In this post you can find this ReDoS rule: ^(?=<flag>)((.*)*)*salt$
Example: ^(?=HTB{sOmE_fl§N§)((.*)*)*salt$
In this writeup you can find this one:<flag>(((((((.*)*)*)*)*)*)*)!
In this writeup he used: ^(?=${flag_prefix}).*.*.*.*.*.*.*.*!!!!$
निम्नलिखित ReDoS उदाहरण हैं जहाँ आप इनपुट और regex दोनों को नियंत्रित करते हैं:
सीखें और AWS हैकिंग का अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE) सीखें और GCP हैकिंग का अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)