Khai thác WordPress 3.3 1 GitHub

Plugin WordPress có tên là Elementor [v. 3. 6. 0, 3. 6. 1, 3. 6. 2] có lỗ hổng cho phép bất kỳ người dùng được xác thực nào tải lên và thực thi bất kỳ tệp PHP nào

Lỗ hổng này, trong OWASP TOP 10 năm 2021, được xếp ở vị trí #1 [Kiểm soát truy cập bị hỏng]

Tệp chứa lỗ hổng này là elementor/core/app/modules/onboarding/module. php

Ở cuối tệp này, bạn có thể tìm thấy mã này

add_action[ 'admin_init', function[] {
		if [ wp_doing_ajax[] &&
			isset[ $_POST['action'] ] &&
			isset[ $_POST['_nonce'] ] &&
			wp_verify_nonce[ $_POST['_nonce'], Ajax::NONCE_KEY ]
		] {
			$this->maybe_handle_ajax[];
		}
	} ];

Mã này được kích hoạt bất cứ khi nào BẤT KỲ tài khoản người dùng nào truy cập /wp-admin

Để làm việc chúng ta cần 4 điều sau

  1. Cuộc gọi phải là "cuộc gọi ajax" [wp_doing_ajax[]] và phương thức phải là POST. Để làm điều này, chúng ta chỉ cần gọi /wp-admin/admin-ajax. php
  2. Tham số "hành động" phải là "elementor_upload_and_install_pro" [kiểm tra chức năng có tên có thể_handle_ajax[] trong cùng một tệp]
  3. Tham số "_nonce" phải được truy xuất sau khi đăng nhập bằng cách kiểm tra trang /wp-admin [lỗ hổng này thực hiện điều này trong chức năng DoLogin]
  4. Tham số "fileToUpload" phải chứa tệp lưu trữ ZIP mà chúng tôi muốn tải lên [kiểm tra chức năng có tên upload_and_install_pro[] trong cùng một tệp]

Tệp chúng tôi tải lên phải có cấu trúc sau

  1. Nó phải là một tệp ZIP. Bạn có thể đặt tên cho nó như bạn muốn
  2. Nó phải chứa một thư mục có tên "elementor-pro"
  3. Thư mục này phải chứa một tệp có tên "elementor-pro. php"

Tệp này sẽ là tải trọng của BẠN [e. g. PHP Reverse Shell hoặc bất kỳ thứ gì khác]

CẢNH BÁO. Plugin giả mạo mà chúng tôi tải lên sẽ được kích hoạt bởi Elementor, điều này có nghĩa là mỗi lần chúng tôi truy cập bất kỳ trang nào, chúng tôi sẽ kích hoạt tải trọng của mình

Khách quan. Tìm, phân tích, tạo lại và ghi lại năm lỗ hổng ảnh hưởng đến phiên bản cũ của WordPress

Báo cáo Pentesting

  1. WordPress

Chủ Đề