<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert) के साथ</strong></a><strong>!</strong></summary>
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)!
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
आप ViewState को MAC से सुरक्षित होने की पहचान करने के लिए BurpSuite के साथ इस पैरामीटर को शामिल एक अनुरोध को कैप्चर करके प्रयास कर सकते हैं। यदि Mac पैरामीटर को सुरक्षित करने के लिए उपयोग नहीं किया जाता है तो आप [**YSoSerial.Net**](https://github.com/pwntester/ysoserial.net) का उपयोग करके इसे उत्पीड़ित कर सकते हैं।
कोई यह मान सकता है कि यदि ViewState मौजूद नहीं है, तो उनका कार्यान्वयन ViewState डेसीरियलाइजेशन के साथ किसी भी संभावित सुरक्षा दोषों से सुरक्षित है।\
हालांकि, ऐसा नहीं है। यदि हम अनुरोध शरीर में ViewState पैरामीटर जोड़ते हैं और ysoserial का उपयोग करके बनाए गए हमारे सीरीयलाइज़ किए गए पेलोड को भेजते हैं, तो हम फिर भी कोड क्रियान्वयन हासिल कर सकेंगे जैसा कि मामला 1 में दिखाया गया है।
आप [**Blacklist3r(AspDotNetWrapper.exe)** ](https://github.com/NotSoSecure/Blacklist3r/tree/master/MachineKey/AspDotNetWrapper) का उपयोग करके कुंजी को खोजने का प्रयास कर सकते हैं।
[**Badsecrets**](https://github.com/blacklanternsecurity/badsecrets) एक औजार है जो जाने वाले machineKeys की पहचान कर सकता है। यह Python में लिखा गया है, इसलिए Blacklist3r की तरह यह Windows dependency नहीं है। .NET viewstates के लिए, एक "python blacklist3r" उपयोग करने का सबसे तेज तरीका है।
व्यूस्टेट परमीटर के वंशांकन के साथ विकल्पों की खोज करने के लिए, `badsecrets` [**BBOT**](exploiting-\_\_viewstate-parameter.md) मॉड्यूल का उपयोग किया जा सकता है:
जब सर्वर द्वारा `_VIEWSTATEGENERATOR` पैरामीटर नहीं भेजा जाता है तो आपको `--generator` पैरामीटर प्रदान करने की आवश्यकता नहीं है, लेकिन निम्नलिखित चाहिए:
इसमें यह नहीं पता चलता कि पैरामीटर MAC के साथ सुरक्षित है या नहीं। फिर, मान्यता संरक्षित हो सकती है और आपको इस सुरक्षा दोष का शोषण करने के लिए अपने पेलोड को एन्क्रिप्ट करने के लिए **मशीन कुंजी की आवश्यकता होगी**।
**.NET 4.5 से पहले**, ASP.NET **उपयोगकर्ताओं से** एक **अनएन्क्रिप्टेड** \_`__VIEWSTATE`\_पैरामीटर को **स्वीकार** कर सकता है, **भले ही****`ViewStateEncryptionMode`** को _**हमेशा**_ सेट किया गया हो। ASP.NET **केवल** अनुरोध में **`__VIEWSTATEENCRYPTED`** पैरामीटर की **उपस्थिति** की जांच करता है। **यदि कोई इस पैरामीटर को हटा देता है, और अनएन्क्रिप्टेड पेलोड भेजता है, तो फिर भी इसे प्रोसेस किया जाएगा।**
इसलिए अगर हमलावार एक तरीका ढूंढ़ लेते हैं मशीन कुंजी प्राप्त करने के लिए दूसरे दोष जैसे फ़ाइल ट्रावर्सल के माध्यम से, [**YSoSerial.Net**](https://github.com/pwntester/ysoserial.net) मामला में उपयोग किया गया कमांड, ViewState डेसीरियलाइज़ेशन दोष का उपयोग करके RCE को करने के लिए उपयोग किया जा सकता है।
* ViewState डेसीरियलाइज़ेशन दोष का शोषण करने के लिए अनुरोध से `__VIEWSTATEENCRYPTED` पैरामीटर को हटाएं, अन्यथा एक Viewstate MAC मान्यता त्रुटि लौटाएगा और दोष का शोषण विफल हो जाएगा।
आप [**Blacklist3r(AspDotNetWrapper.exe)** ](https://github.com/NotSoSecure/Blacklist3r/tree/master/MachineKey/AspDotNetWrapper)का उपयोग करके उपयोग की जा रही कुंजी खोजने का प्रयास कर सकते हैं:
[यहाँ से अधिक विस्तृत विवरण के लिए IISDirPath और TargetPagePath का संदर्भ देखें](https://soroush.secproject.com/blog/2019/04/exploiting-deserialisation-in-asp-net-via-viewstate/)
एक वैध मशीन कुंजी की पहचान होने पर, **अगला कदम है** [**YSoSerial.Net**](https://github.com/pwntester/ysoserial.net) **का उपयोग करके एक सीरीकृत पेलोड उत्पन्न करना**
यदि आपके पास `__VIEWSTATEGENERATOR` का मान है तो आप कोशिश कर सकते हैं **--generator** पैरामीटर का उपयोग उस मान के साथ करके और **--path** और **--apppath** पैरामीटर को **छोड़** सकते हैं।
ViewState डीसीरियलाइज़ेशन वलनरेबिलिटी का सफल शोषण एक हमलावर नियंत्रित सर्वर को बाहरी अनुरोध में ले जाएगा, जिसमें उपयोगकर्ता नाम शामिल है। इस प्रकार का शोषण एक प्रमाण का सिद्धांत (PoC) में प्रदर्शित किया जाता है जिसे "Exploiting ViewState Deserialization using Blacklist3r and YsoSerial.NET" शीर्षक संसाधन के माध्यम से पाया जा सकता है। शोषण प्रक्रिया काम कैसे करती है और MachineKey की पहचान के लिए Blacklist3r जैसे उपकरणों का उपयोग कैसे करें के बारे में अधिक विवरण के लिए आप [PoC of Successful Exploitation](https://www.notsosecure.com/exploiting-viewstate-deserialization-using-blacklist3r-and-ysoserial-net/#PoC) को समीक्षा कर सकते हैं।
**ViewStateUserKey** गुणवत्ता का उपयोग **CSRF हमले** के खिलाफ **रक्षा** के लिए किया जा सकता है। यदि ऐसी एक कुंजी को अनुप्रयोग में परिभाषित किया गया है और हम कोशिश करते हैं कि हम उस प्रकार का **ViewState** पेलोड उत्पन्न करें जिसे अब तक चर्चित विधियों के साथ, तो अनुप्रयोग द्वारा **पेलोड प्रसंस्कृत नहीं किया जाएगा**।\
सभी परीक्षण मामलों के लिए, यदि ViewState YSoSerial.Net payload **सफलतापूर्वक** काम करता है तो सर्वर “**500 आंतरिक सर्वर त्रुटि**” के साथ प्रतिक्रिया देता है जिसमें प्रतिक्रिया सामग्री “**इस पृष्ठ के लिए राज्य सूचना अमान्य है और यह भ्रष्ट हो सकती है**” होती है और हम OOB अनुरोध प्राप्त करते हैं।
**बग बाउंटी टिप**: **साइन अप** करें **Intigriti** के लिए, एक प्रीमियम **बग बाउंटी प्लेटफॉर्म जो हैकर्स द्वारा बनाया गया है**! हमारे साथ शामिल हों [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) आज ही, और शुरू करें बाउंटी कमाना तक **$100,000** तक!
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)!
* प्राप्त करें [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com)
* खोजें [**The PEASS Family**](https://opensea.io/collection/the-peass-family), हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह