WhiteHat News #ID:2018
WhiteHat Support
-
20/03/2017
-
129
-
443 bài viết
Thực thi mã PHP mới khiến trang WordPress có nguy cơ bị tấn công
Tại Hội nghị BlackHat, chuyên gia an ninh Sam Thomas đến từ Secarma đã phát hiện một kỹ thuật khai thác mới có thể khiến hacker dễ dàng thực thi lỗ hổng deserialization nghiêm trọng trong ngôn ngữ lập trình PHP, sử dụng các hàm được cho là rủi ro thấp trước đây.
Kỹ thuật mới này khiến hàng trăm nghìn ứng dụng web có thể bị tấn công thực thi mã từ xa, bao gồm các website chạy trên một số hệ thống quản trị nội dung phổ biến như WordPress và Typo 3.
Quá trình PHP unserialization hay lỗ hổng tiêm nhiễm đối tượng được biết đến lần đầu vào năm 2009, cho phép kẻ tấn công thực hiện các hình thức tấn công khác nhau bằng cách cung cấp đầu vào chứa mã độc đến hàm unserialize() PHP.
Serialization là quá trình chuyển đổi các đối tượng dữ liệu thành một chuỗi plain và hàm unserialize giúp chương trình tái tạo lại đối tượng từ một chuỗi.
Theo Thomas, kẻ tấn công sử dụng các hàm rủi ro thấp nhắm vào định dạng Phar để khởi phát một cuốc tấn công mà không yêu cầu sử dụng hàm unserialize() trong một loạt các tình huống.
Các file Phar, một định dạng PHP, lưu trữ metadata dưới định dạng serialized, đã được unserialized bất kể khi nào hàm file operation (fopen, file_exists, file_get_contents, etc.) cố truy cập vào file lưu trữ.
Thomas đã đưa ra chi tiết cách thức thực hiện một cuộc tấn công nhắm vào WordPress đó là dùng tài khoản quản trị để có toàn quyền kiểm soát web server.
Để khai thác thành công lỗ hổng, tất cả những gì kẻ tấn công cần làm là tải lên một bộ lưu trữ Phar hợp lệ có chứa payload độc hại đến hệ thống file mục tiêu nội bộ và khiến hàm file operation truy cập nó phải sử dụng luồng stream "phar://" .
Nhà nghiên cứu Thomas cũng tiết lộ kẻ tấn công thậm chí có thể khai thác lỗ hổng này bằng cách sử dụng ảnh định dạng JPEG, ban đầu là định dạng lưu trữ Phar được chuyển thành JPEG hợp lệ bằng cách sửa 100 byte đầu tiên của mình.
Một khi thumbnail được tạo ra thủ công và được tải lên server WordPress mục tiêu, kẻ tấn công có thể sử dụng hàm khác để gọi cùng file ảnh với định dạng Phar dùng stream wrapper "phar://", thậm chí thực thi mã tùy ý khi chương trình tái thiết lại metadata.
Đội ngũ an ninh của WordPress đã được thông báo về lỗ hổng này. Tuy nhiên, bản vá công ty đưa ra chưa xử lý được triệt để vấn đề.
Thomas cũng báo cáo lỗ hổng cho Typo 3 vào tháng 6 năm 2018 và nhà cung cấp này đã vá lỗ hổng trong các phiên bản 7.6.30, 8.7.17 và 9.3.
Các nhà quản trị cần cập nhật bản vá mới nhất cho website của mình và kiểm soát chặt các tài khoản có khả năng up file lên website.
Kỹ thuật mới này khiến hàng trăm nghìn ứng dụng web có thể bị tấn công thực thi mã từ xa, bao gồm các website chạy trên một số hệ thống quản trị nội dung phổ biến như WordPress và Typo 3.
Quá trình PHP unserialization hay lỗ hổng tiêm nhiễm đối tượng được biết đến lần đầu vào năm 2009, cho phép kẻ tấn công thực hiện các hình thức tấn công khác nhau bằng cách cung cấp đầu vào chứa mã độc đến hàm unserialize() PHP.
Serialization là quá trình chuyển đổi các đối tượng dữ liệu thành một chuỗi plain và hàm unserialize giúp chương trình tái tạo lại đối tượng từ một chuỗi.
Theo Thomas, kẻ tấn công sử dụng các hàm rủi ro thấp nhắm vào định dạng Phar để khởi phát một cuốc tấn công mà không yêu cầu sử dụng hàm unserialize() trong một loạt các tình huống.
Các file Phar, một định dạng PHP, lưu trữ metadata dưới định dạng serialized, đã được unserialized bất kể khi nào hàm file operation (fopen, file_exists, file_get_contents, etc.) cố truy cập vào file lưu trữ.
Thomas đã đưa ra chi tiết cách thức thực hiện một cuộc tấn công nhắm vào WordPress đó là dùng tài khoản quản trị để có toàn quyền kiểm soát web server.
Để khai thác thành công lỗ hổng, tất cả những gì kẻ tấn công cần làm là tải lên một bộ lưu trữ Phar hợp lệ có chứa payload độc hại đến hệ thống file mục tiêu nội bộ và khiến hàm file operation truy cập nó phải sử dụng luồng stream "phar://" .
Nhà nghiên cứu Thomas cũng tiết lộ kẻ tấn công thậm chí có thể khai thác lỗ hổng này bằng cách sử dụng ảnh định dạng JPEG, ban đầu là định dạng lưu trữ Phar được chuyển thành JPEG hợp lệ bằng cách sửa 100 byte đầu tiên của mình.
Một khi thumbnail được tạo ra thủ công và được tải lên server WordPress mục tiêu, kẻ tấn công có thể sử dụng hàm khác để gọi cùng file ảnh với định dạng Phar dùng stream wrapper "phar://", thậm chí thực thi mã tùy ý khi chương trình tái thiết lại metadata.
Đội ngũ an ninh của WordPress đã được thông báo về lỗ hổng này. Tuy nhiên, bản vá công ty đưa ra chưa xử lý được triệt để vấn đề.
Thomas cũng báo cáo lỗ hổng cho Typo 3 vào tháng 6 năm 2018 và nhà cung cấp này đã vá lỗ hổng trong các phiên bản 7.6.30, 8.7.17 và 9.3.
Các nhà quản trị cần cập nhật bản vá mới nhất cho website của mình và kiểm soát chặt các tài khoản có khả năng up file lên website.
Theo The Hacker News/WhiteHat
Chỉnh sửa lần cuối: