Tấn công thực thi mã PHP đe dọa các website WordPress

09:10 | 24/08/2018
Thu Hằng (Theo Threatpost)

Tấn công này không chỉ gây ảnh hưởng tới hệ quản trị nội dung Typo3, WordPress mà còn ảnh hưởng tới thư viện TCPDF được sử dụng rộng rãi hiện nay.

Các nhà nghiên cứu tại Công ty An an ninh mạng Secarma (Anh) đã phát hiện ra một bằng chứng khai thác (proof-of-concept exploit) giúp kẻ tấn công có thể khai thác lỗ hổng website dựa vào quá trình giải tuần tự hóa trong ngôn ngữ lập trình PHP, sử dụng các hàm được xem là ít rủi ro.

Lỗ hổng PHP không tuần tự hóa và PHP object injection được ghi nhận lần đầu vào năm 2009, cho phép kẻ tấn công thực hiện nhiều loại tấn công bằng cách thêm dữ liệu đầu vào độc hại vào các hàm PHP unserialize(). Tuần tự hóa là quá trình chuyển hóa dữ liệu trở thành dạng plain string, ngược lại không tuần tự hóa là quá trình giúp tái tạo một dữ liệu từ string đó.

Đối với lỗ hổng này, nó bắt nguồn từ những hành vi của trình bao bọc luồng “phar://” được tích hợp sẵn của PHP, giúp triển khai chức năng xử lý tệp phức tạp cho các giao thức kiểu URL khác nhau. Tức là, một kẻ tấn công có thể lợi dụng những hàm rủi ro thấp để tấn công các tệp lưu trữ phar mà không cần dùng hàm unserialize().

Thông thường, các tệp định dạng lưu trữ phar trong PHP lưu trữ siêu dữ liệu theo định dạng được tuần tự hóa, những dữ liệu này sẽ không được tuần tự hóa nếu một phép toán của tệp (fopen, file_exists, file_get_contents,...) muốn truy cập tệp.

Để khai thác lỗ hổng, kẻ tấn công chỉ cần tải một tệp lưu trữ phar độc hại lên hệ thống tệp trong máy của đối tượng và khiến cho phép toán của tệp truy cập vào đó, sử dụng stream wrapper “phar://”.

Điều này được kích hoạt thông qua một loạt những sai sót được xem là có nguy cơ thấp, chẳng hạn như lỗ hổng xử lý XML External Entity (XXE). Những lỗ hổng này là lỗ hổng bảo mật yêu cầu phía máy chủ (SSRF) cho phép kẻ tấn công có thể gây ra tấn công từ chối dịch vụ (DoS) và sau đó truy cập các tệp, dịch vụ cục bộ hoặc từ xa, bằng cách lợi dụng tính năng có sẵn rộng rãi nhưng hiếm khi được sử dụng trong các trình phân tích cú pháp XML.

Ngoài ra, kẻ tấn công còn có thể dùng tệp tin hình ảnh .jpeg được chuyển hóa từ một tệp tin lưu trữ phar bằng cách thay đổi 100 byte đầu tiên của file. Một khi hình hiển thị (thumbnail) được tải lên máy chủ WordPress, kẻ tấn công có thể sử dụng các hàm khác để biến tệp tin hình ảnh đã tải lên thành file lưu trữ phar. Sau đó, thực thi mã tùy ý khi chương trình giải tuần tự hóa siêu dữ liệu.

Các nhà nghiên cứu cho biết, vấn đề này đã được báo cáo cho đội ngũ phát triển của WordPress vào tháng 2/2017. Tuy nhiên, tại thời điểm hiện tại, lỗ hổng này vẫn chưa được khắc phục triệt để. Ngày 9/6, sau khi được báo cáo lỗ hổng, các nhà phát triển của Typo3 đã cung cấp bản vá cho các phiên bản 7.6.30, 8.7.17 và 9.3.