J2TEAM Security: A must-have extension for Chrome users. Install now!

Lỗ hổng trong GKPlugin cho phép Hacker đọc nội dung mã nguồn của website

Trong quá trình phân tích mã nguồn GKPlugins, K-20 đã phát hiện ra lỗ hổng cho phép tải và đọc nội dung tệp tin mã nguồn bất kì của Website sử dụng plugin này.
GKPlugin hay còn có tên Gác Kiếm Player là một plugin hỗ trợ phát video, tệp tin media từ các trang lưu trữ video khác trên trang của bạn. GKPlugins được phát triển trên JWPlayer, cho phép chạy audio, video từ những máy chủ khác bởi đầu vào là một liên kết trực tiếp trên thanh địa chỉ của trình duyệt.


Với khả năng phát tệp tin đa phương tiện từ nhiều nguồn khác nhau và dễ dàng tùy biến như thêm Logo vào trình phát hay thay đổi giao diện cho phù hợp với trang, do đó GKPlugin được yêu thích và sử dụng tại nhiều trang xem phim trực tuyến hiện nay. Và việc nó được phát triển trên nền JWPlayer – là một player được ưa chuộng đã giúp GKPlugin trở nên phổ biến hơn.

Trong quá trình phân tích mã nguồn GKPlugins, K-20 đã phát hiện ra lỗ hổng cho phép tải và đọc nội dung tệp tin mã nguồn bất kì của Website sử dụng plugin này.

Video PoC


Phân tích chi tiết

Theo như video trên, chúng ta nhận thấy lỗ hổng này khá giống Local File Include (LFI). Tuy nhiên nó có tên goi là Arbitrary File Download,  cho phép kẻ tấn công có thể dễ dàng tải tệp tin mã nguồn bất kì từ trang web thay vì đọc trực tiếp trên trang thông qua hàm include như LFI.

Lỗ hổng được phát hiện tại tệp plugins_player.php trong quá trình phân tích mã nguồn GKPlugin:


Ta thấy tham số truyền vào “?f” là đường dẫn tệp tin, với việc sử dụng hàm header với “Content-Type: application/octet-stream” và dùng hàm readfile để đọc nội dung tệp thì trình duyệt sẽ hiển thị hộp thoại cho phép người dùng tải về tệp tin bất kì nằm trên máy chủ. Việc người dùng có thể tải xuống tệp tin mã nguồn là rất nguy hiểm khi có thể để lộ những thông tin nhạy cảm như tài khoản đăng nhập Cơ sở dữ liệu hay đăng nhập vào trang quản trị viên và đây thực sự là một sơ suất của lập trình viên.


Chúng ta thấy tuy tệp được tải xuống là plugins_player.php nhưng nội dung chính là từ crossdomain.xml – tham số mà chúng ta đã gửi đi:


Khắc phục lỗ hổng

Hiện tại bên GKPlugin chưa có bản cập nhật vá lỗi, vì thế J2TeaM khuyến cáo tới các quản trị viên trang xem phim trực tuyến nên cập nhật trình phát video mới để đảm bảo an toàn.
Leader at J2TEAM. Website: https://j2team.dev/

Đăng nhận xét

Cảm ơn bạn đã đọc bài viết!

- Bạn có gợi ý hoặc bình luận xin chia sẻ bên dưới.

- Hãy viết tiếng Việt có dấu nếu có thể!