Liferay TunnelServlet Deserialization Remote Code Execution (LPE-15538) {{ .Resources.Match “images/*”}}
Mô tả và ảnh hưởng
Liferay TunnelServlet bị lỗ hổng insecure deserialization do cấu hình sai, có thể bị truy cập bởi attacker (theo mặc định, nó chỉ bị giới hạn truy cập từ localhost). Tùy thuộc vào phiên bản của Liferay Portal, attacker có thể khai thác lỗ hổng này bằng cách sử dụng dữ liệu đã được serialized để thực thi mã tùy ý trên hệ thống.
Description Lỗ hổng phát sinh khi tính năng xác thực chính (spark.authenticate) được bật bằng cách sử dụng shared secret. Thông thường, tính năng này yêu cầu người dùng cung cấp shared secret để khởi động tài nguyên của ứng dụng trên Spark cluster. Tuy nhiên, lệnh gọi thủ tục từ xa (RPC) có thể bỏ qua quá trình xác thực và bắt đầu thực thi lệnh thành công, ngay cả khi không có shared secret.
Description CVE-2018-11770 được phát hiện bởi nhà nghiên cứu Trung Quốc Fengwei Zhang (Alibaba Cloud Security Team), API REST CreateSubmissionRequest có thể bị khai thác khi ở chế độ standalone cho phép hacker gửi mã độc và thực thi mã từ xa. Nguyên nhân xảy ra Từ phiên bản 1.3.0 trở đi, Spark's standalone master cung cấp một REST API để gửi công việc từ xa, bên cạnh việc sử dụng spark-submit.
Description Challenge này là một proxy giữa ta và một trang web khác. Ở đây là Reddit
. Lần đầu tiên khi truy cập vào challenge, ta sẽ được chuyển hướng đến một subreddit ngẫu nhiên về mèo:
Tuy nhiên, ta có thể thấy url của trang web vẫn nằm ở proxy chứ không hoàn toàn chuyển hướng đến reddit.
Exploitaion Đầu tiên, kiểm tra source code của challenge. Ứng dụng web được chạy trên cổng 1337.
Description Link challenge tại đây
Step Đây là giao diện chính của challenge:
Vì chương trình sử dụng hàm eval() để tính toán nên ta có thể tiêm vào một payload XSS:
100*10-3+340 +'<img src=abc onerror="alert(123)">' Kiểm tra source code, đọc file package.json, nhận thấy challenge sử dụng node.js => Có thể execute JavaScript code
ở back-end.
Chương trình sử dụng API api/calculate. Từ web_jscalc/challenge/routes/computerHelper.js, hàm calculate() trả về kết quả từ hàm eval() và đưa ra một ngoại lệ chỉ khi có lỗi cú pháp.
Description Link lab tại đây
This lab has a “Check stock” feature that parses XML input and returns any unexpected values in the response. To solve the lab, inject an XML external entity to retrieve the contents of the /etc/passwd file.
Exploitation Ứng dụng có chức năng kiểm tra hàng tồn kho tại mỗi post của sản phẩm
Khi click Check stock, một POST request gửi đến /product/stock với body là một dạng XML gồm 2 trường query chính là productId và storeId.