• Webmaster Tools
  • Diễn Đàn Hỏi Đáp
  • Profile
  • Ủng hộ
  • DNS Check
  • CheckIP
  • Liên Hệ
Đỗ Trung Quân
  • HƯỚNG DẪN
  • LINUX
    • Linux Tricks
    • Distro Linux
      • CentOS/RedHat
      • CloudLinux
      • Ubuntu/Debian
      • AlmaLinux
    • WebServer
      • NGINX
      • Apache
      • LiteSpeed
    • Virtualization
    • Monitoring Tool
      • Zabbix
    • DevOPS
      • Ansible
      • Docker
      • Jenkins
      • AWS
    • Mail Server
    • VPN
  • CONTROL PANEL
    • cPanel
    • DirectAdmin
    • aaPanel
    • FastPanel
    • CyberPanel
    • Easypanel
    • VestaCP
    • CloudPanel
    • HestiaCP
    • Plesk
    • Script VPS
  • DNS
    • Domain
  • CMS
    • WordPress
    • Laravel
  • SECURITY
    • SSL
    • Firewall
  • DỊCH VỤHOT
  • WEB MẪUHOT

Lỗ hổng bảo mật nghiêm trọng trên ThemeGrill Demo Importer

by ĐỖ TRUNG QUÂN 19/02/2020
Tác giả: ĐỖ TRUNG QUÂN Date: 19/02/2020Last Update 20/07/2022 0 comments 357 lượt xem
Dịch vụ xử lý mã độc WordPress
WEB MẪU WORDPRESS
Share FacebookTwitterPinterestTelegramEmail
357

Vài ngày gần đây mình gặp khá nhiều khách hàng sử dụng WordPress và có sử dụng plugin ThemeGrill Demo Importer, hoặc theme của ThemeGrill rồi “đột nhiên” mất toàn bộ Cơ sở dữ liệu và không hề hay biết. Ngay sau đó webarxsecurity đã có đưa tin về vấn đề nghiêm trọng này.

Trong các phiên bản 1.3.4 trở lên và các phiên bản 1.6.1 trở xuống, có một lỗ hổng cho phép bất kỳ người dùng không cần xác thực có thể xóa toàn bộ cơ sở dữ liệu về trạng thái mặc định sau đó họ sẽ tự động đăng nhập với tư cách quản trị viên.

ThemeGrill

Điều kiện tiên quyết là phải có một chủ đề được cài đặt và kích hoạt được xuất bản bởi ThemeGrill. Để được đăng nhập tự động với tư cách quản trị viên, phải có người dùng có tên là admin admin trong cơ sở dữ liệu. Bất kể điều kiện này, cơ sở dữ liệu vẫn sẽ bị xóa về trạng thái mặc định.

Dựa trên lịch sử cam kết của SVN, vấn đề này đã tồn tại trong mã khoảng 3 năm, kể từ phiên bản 1.3.4.

Khi Phát hiện plugin mà một chủ đề ThemeGrill được cài đặt và kích hoạt, nó tải các tập tin /includes/class-demo-importer.php mà móc reset_wizard_actions vào admin_init trên dòng 44.

admin_init chạy không chỉ trong môi trường quản trị mà còn gọi đến /wp-admin/admin-ajax.php không yêu cầu người dùng phải được xác thực.

Hàm functions reset_wizard_ilities trông giống như sau:

	public function reset_wizard_actions() {
		global $wpdb, $current_user;

		if ( ! empty( $_GET['do_reset_wordpress'] ) ) {

			///

			if ( 'admin' != $current_user->user_login ) {
				$user = get_user_by( 'login', 'admin' );
			}

			if ( empty( $user->user_level ) || $user->user_level < 10 ) {
				$user = $current_user;
			}

			// Drop tables.
			$drop_tables = $wpdb->get_col( sprintf( "SHOW TABLES LIKE '%s%%'", str_replace( '_', '\_', $wpdb->prefix ) ) );
			foreach ( $drop_tables as $table ) {
				$wpdb->query( "DROP TABLE IF EXISTS $table" );
			}

			// Installs the site.
			$result = wp_install( $blogname, $user->user_login, $user->user_email, $blog_public );

			// Updates the user password with a old one.
			$wpdb->update(
				$wpdb->users,
				array(
					'user_pass'           => $user->user_pass,
					'user_activation_key' => '',
				),
				array( 'ID' => $result['user_id'] )
			);

			// Set up the Password change nag.
			$default_password_nag = get_user_option( 'default_password_nag', $result['user_id'] );
			if ( $default_password_nag ) {
				update_user_option( $result['user_id'], 'default_password_nag', false, true );
			}

			///

			// Update the cookies.
			wp_clear_auth_cookie();
			wp_set_auth_cookie( $result['user_id'] );

			// Redirect to demo importer page to display reset success notice.
			wp_safe_redirect( admin_url( 'themes.php?page=demo-importer&browse=all&reset=true' ) );
			exit();
		}
	}

Ở đây chúng tôi thấy rằng không có kiểm tra xác thực và chỉ có tham số do_reset_wordpress cần phải có trong URL trên bất kỳ trang quản trị nào trên nền tảng WordPress của WordPress, bao gồm /wp-admin/admin-ajax.php.

Nếu chúng tôi hiện chưa đăng nhập, nó sẽ truy xuất đối tượng người dùng của quản trị viên người dùng từ WordPress và sau đó loại bỏ tất cả các bảng WordPress bắt đầu bằng tiền tố cơ sở dữ liệu WordPress đã xác định.

Khi tất cả các bảng đã bị hủy, nó sẽ điền vào cơ sở dữ liệu với các cài đặt và dữ liệu mặc định, sau đó nó sẽ đặt mật khẩu của người dùng admin admin thành mật khẩu đã biết trước đó.

Bản vá bạn có thể tìm thấy ở đây và đã được kiểm tra thêm current_user_can (‘Manage_options’) vào phương thức reset_wizard_ilities.

0PregDu

Đây là một lỗ hổng nghiêm trọng do đó bạn đang sử dụng sản phẩm nào của ThemeGrill thì cập nhật ngay hoặc sao lưu lại toàn bộ dữ liệu trước nhé.

Danh sách các địa chỉ IP hiện đang khai thác lỗ hổng này với 100 cuộc tấn công trở lên bị chặn.
149.202.75.164
192.169.159.241
209.251.53.192
107.180.225.158
62.76.187.179
185.45.72.159
31.207.33.10
198.12.156.154
163.44.207.54
142.44.151.107
68.183.204.202
51.68.124.88
188.166.16.17
168.63.19.216
46.105.92.10
103.221.222.179
104,238. 99.130
175.139.199.53
68.183.76.157
45.32.104.33
2001: 41d0: d: 34a4 ::
46.101.174.128
2607: 5300: 61: bd9 :: 107
159,65,20.204
84.238.108.177
188.166.176.184
165.227.48.147
2a03: b0c0: 2: d0 :: 11f0: 6001
2404: f080: 1101: 316: 163: 44: 207: 54
50.63.162.9
46.105.99.163
2001: e68 21e: 67ff: fe8c: 191f

Nguồn: https://www.webarxsecurity.com/critical-issue-in-themegrill-demo-importer/

Rate this post

Tham gia nhóm hỗ trợ WordPress

Tham gia nhóm Hỗ trợ Server - Hosting & WordPress để cùng nhau hỏi đáp và hỗ trợ các vấn đề về WordPress, tối ưu máy chủ/server.

Tham gia ngay
ĐỖ TRUNG QUÂN

Mình tên là Đỗ Trung Quân, hiện đang công tác tại AZDIGI với vị trí là SysAdmin. Mình đam mê viết Blog. Vì viết Blog giúp mình trau dồi được nhiều kỹ năng. Học hỏi thêm nhiều kiến thức mới, từ đó mình có thể chia sẻ đến các bạn các bài viết tài liệu bổ ích hơn. Hiện tại mình là admin của Blog DOTRUNGQUAN.INFO - CaiSSL.COM - QuantriVPS.COM. Mới đây mình có tạo ra nhóm Hỗ trợ Server - Hosting & WordPress | Hỗ Trợ Xử Lý Mã Độc WordPress với mục đích gây dựng một cộng đồng nhỏ để mọi người trao đổi kinh nghiệm, kiến thức quản trị VPS. Các thủ thuật, mẹo vặt khi sử dụng VPS. Rất mong nhận được sự ủng hộ của các bạn.

Author Box
Author Image

ĐỖ TRUNG QUÂN

Chuyên viên quản trị hệ thống.

Tư vấn & triển khai dịch vụ

VPS | Hosting | SSL | Mailserver | Website | Sửa lỗi WordPress

Bài viết của tác giả

Hosting/VPS khuyên dùng

Phổ Biến

  • Hướng dẫn tạo SSH Key trên macOS

  • Hướng dẫn sử dụng SSH Key

  • Hướng dẫn cài đặt v2board trên AAPANEL

  • Vấn đề IP Public liên tục bị thay đổi vì sao và cách khắc phục

  • Khắc phục lỗi không hiện hình ảnh và mô tả khi share link lên Facebook

  • Hướng dẫn kích hoạt Theme Flatsome mới nhất.

BẠN BÈ & ĐỐI TÁC

Thạch Phạm | CỔ Ý CONCEPT | Trương Quốc Cường | Đàm Trung Kiên | Web An Tâm | Phong Đinh | Học Mò | PHUNG.VN | Đăng Đạt

Bạn được quyền sao chép lại nội dung trên website Đỗ Trung Quân, miễn là có dẫn nguồn.

Hosting/VPS được tài trợ bởi AZDIGI - Nhà cung cấp Server Hosting tốt nhất hiện nay

AZDIGI - Nhà cung cấp Server Hosting tốt nhất hiện nay


Back To Top
Đỗ Trung Quân
  • HƯỚNG DẪN
  • LINUX
    • Linux Tricks
    • Distro Linux
      • CentOS/RedHat
      • CloudLinux
      • Ubuntu/Debian
      • AlmaLinux
    • WebServer
      • NGINX
      • Apache
      • LiteSpeed
    • Virtualization
    • Monitoring Tool
      • Zabbix
    • DevOPS
      • Ansible
      • Docker
      • Jenkins
      • AWS
    • Mail Server
    • VPN
  • CONTROL PANEL
    • cPanel
    • DirectAdmin
    • aaPanel
    • FastPanel
    • CyberPanel
    • Easypanel
    • VestaCP
    • CloudPanel
    • HestiaCP
    • Plesk
    • Script VPS
  • DNS
    • Domain
  • CMS
    • WordPress
    • Laravel
  • SECURITY
    • SSL
    • Firewall
  • DỊCH VỤHOT
  • WEB MẪUHOT