Một lỗi khá mới nhắm vào phần mềm quản trị nội dung (CMS) nổi tiếng - Joomla, được công bố từ tháng 3/2012 trên blog của Jeff Channell [1] nhưng vẫn chưa được nhiều người biết đến.
Kẻ xấu có thể khai thác lỗi bằng cách chèn thêm vào form đăng ký của Joomla trường jform[groups][] với giá trị "7" tương đương với nhóm admin và cố tình đăng nhập lỗi ( ghi sai password hay captcha ). Joomla lúc này sẽ lưu giá trị group này vào phiên làm việc và trong lần đăng ký ngay sau đó kẻ tấn công sẽ đăng ký thành công với quyền hạn cao nhất. Từ đây hắn có thể đăng nhập vào phần quản trị, upload mã độc và leo thang đặc quyền chiếm cả máy chủ.
Lỗi này nằm ở trong tập tin : /components/com_users/models/registration.php dòng số 190 trong phiên bản Joomla 2.5.2
Code:
// Get the groups the user should be added to after registration.
$this->data->groups = isset($this->data->groups) ? array_unique($this->data->groups) : array();
Thật khó hiểu lý do tại sao người thiết kế Joomla muốn để chức năng này.
Phiên bản 2.5.3 đã vá lỗi bằng cách khởi tạo 1 cách bình thường
Code:
$this->data->groups = array();
Exploit PoC được đính kèm bản tin này, viết dưới dạng chrome extension. Đã thử nghiệm trên Joomla 1.7.5 và 2.5.2.
Source Code: https://github.com/danghvu/j0wnla
[1] http://jeffchannell.com/Joomla/joomla-161725-privilege-escalation-vulnerability.html