Heoanchayyy
New Member
-
20/08/2025
-
0
-
1 bài viết
CVE-2025-31324: Lỗ hổng tải file không xác thực trên SAP NetWeaver và hướng nghiên cứu sandbox
Vào giữa tháng 8/2025, một lỗ hổng zero-day nghiêm trọng đã xuất hiện trên SAP NetWeaver, cụ thể ở thành phần Visual Composer Metadata Uploader. Lỗ hổng này cho phép kẻ tấn công tải lên file mà không cần xác thực, dẫn đến khả năng thực thi mã từ xa trên server. PoC CVE-2025-31324 đã được nhóm ShinyHunters công khai, làm tăng rủi ro đối với các hệ thống SAP chưa được vá. Bài viết này phân tích kỹ thuật lỗ hổng và hướng dẫn nghiên cứu trong môi trường sandbox an toàn.
Mô hình luồng dữ liệu: client gửi HTTP POST chứa file, server lưu file vào thư mục tạm, sau đó phản hồi trạng thái. Nếu file chứa mã Java thực thi, server có thể thực thi đoạn code đó.
Tạo thư mục tạm để lưu file và kiểm tra cơ chế upload:
Tạo file JSP thử nghiệm:
Giải thích: file này chỉ in ra “Hello World” khi được server xử lý, giúp quan sát cơ chế upload mà không thực thi mã nguy hiểm.
Bước 2: Upload file và quan sát log
Bước 3: Phân tích luồng dữ liệu và hành vi server
Bước 4: Biện pháp phòng ngừa và thử nghiệm an toàn
Lưu ý: Bài viết này được thực hiện hoàn toàn trong môi trường sandbox, chỉ nhằm mục đích nghiên cứu và học thuật, không hướng dẫn khai thác trên hệ thống thực tế.
Phân tích kỹ thuật lỗ hổng CVE-2025-31324
Vấn đề cốt lõi của lỗ hổng nằm ở việc Metadata Uploader không kiểm tra xác thực người dùng trước khi upload file. Đồng thời, hệ thống không kiểm soát chặt chẽ loại file, nên các file .jsp hoặc .war có thể được server chấp nhận. Khi file được lưu và gọi ra, nó có thể thực thi mã Java trực tiếp trên server, từ đó kẻ tấn công có thể truy cập dữ liệu nhạy cảm hoặc chiếm quyền điều khiển ứng dụng.Mô hình luồng dữ liệu: client gửi HTTP POST chứa file, server lưu file vào thư mục tạm, sau đó phản hồi trạng thái. Nếu file chứa mã Java thực thi, server có thể thực thi đoạn code đó.
Khai thác lỗ hổng CVE-2025-31324 trong môi trường nghiên cứu
Môi trường kiểm thử:
- Hệ điều hành: Parrot OS (hoặc VM Linux tương thích)
- SAP NetWeaver phiên bản có Visual Composer Metadata Uploader
- Các công cụ: Java JDK, Maven, quyền tạo thư mục, sandbox hoàn toàn offline
Chuẩn bị:
- Tạo file thử nghiệm .jsp đơn giản chỉ in “Hello World” để quan sát hành vi upload và phản hồi của server
- Tạo thư mục sandbox riêng, đảm bảo không ảnh hưởng tới hệ thống thực
Thực hiện:
Bước 1: Tạo file thử nghiệm và chuẩn bị sandboxTạo thư mục tạm để lưu file và kiểm tra cơ chế upload:
Mã:
SANDBOX_DIR=$(mktemp -d /tmp/sap_exploit.XXXXXX) || { echo "Failed to create temp dir"; exit 1; }
cd "$SANDBOX_DIR" || { echo "Cannot access $SANDBOX_DIR"; exit 1; }
Tạo file JSP thử nghiệm:
Mã:
cat > test_upload.jsp <<'EOF'
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<body>
<%
out.println("Hello World from sandbox test!");
%>
</body>
</html>
EOF
Giải thích: file này chỉ in ra “Hello World” khi được server xử lý, giúp quan sát cơ chế upload mà không thực thi mã nguy hiểm.
Bước 2: Upload file và quan sát log
- Sử dụng HTTP POST gửi file lên Metadata Uploader trong sandbox
- Quan sát log server để ghi nhận: tên file, vị trí lưu, phản hồi HTTP
- File thử nghiệm nên được lưu trong thư mục riêng, không tác động tới dữ liệu thật
Mã:
curl -X POST -F "file=@test_upload.jsp" http://localhost:8080/visualcomposer/uploader
Bước 3: Phân tích luồng dữ liệu và hành vi server
- Server nhận request, xác định đường dẫn lưu file
- Kiểm tra loại file (nếu có cơ chế kiểm tra, sẽ từ chối file .jsp/.war)
- Lưu file và phản hồi trạng thái thành công
- File JSP được tải có thể được gọi ra trong sandbox để quan sát kết quả “Hello World”
Bước 4: Biện pháp phòng ngừa và thử nghiệm an toàn
- Cập nhật ngay SAP Security Note 3594142 để vá lỗ hổng
- Hạn chế quyền upload chỉ cho user được ủy quyền
- Giám sát upload và execution file, cảnh báo khi phát hiện file lạ
- Mọi thử nghiệm PoC nên thực hiện trong sandbox, hoàn toàn tách biệt với hệ thống sản xuất
Kết quả nghiên cứu
Qua quá trình thử nghiệm, Metadata Uploader cho thấy cơ chế upload thiếu kiểm soát. Log server ghi lại đầy đủ tên file và vị trí lưu, luồng dữ liệu từ client đến server được minh họa rõ ràng, giúp rút ra bài học về xác thực, kiểm soát loại file và hạn chế quyền thực thi.Khuyến nghị
- Áp dụng bản vá mới nhất từ SAP cho Visual Composer Metadata Uploader
- Tạm thời vô hiệu hóa hoặc giới hạn chức năng tải file nếu không cần thiết
- Theo dõi log server để phát hiện các hành vi tải file hoặc thực thi mã bất thường
- Chỉ thử nghiệm PoC trong môi trường tách biệt, không ảnh hưởng hệ thống sản xuất
- Áp dụng MFA và cơ chế kiểm tra upload để giảm nguy cơ khai thác
Lưu ý: Bài viết này được thực hiện hoàn toàn trong môi trường sandbox, chỉ nhằm mục đích nghiên cứu và học thuật, không hướng dẫn khai thác trên hệ thống thực tế.