Phân tích lỗ hổng CVE-2023-6063 WP Fastest Cache - UNAUTHENTICATED SQLI

quachhuy1703

New Member
09/01/2023
0
4 bài viết
Phân tích lỗ hổng CVE-2023-6063 WP Fastest Cache - UNAUTHENTICATED SQLI

Cài đặt môi trường:​

Docker là gì?

1700119125724.png
  • Docker là một ứng dụng mã nguồn mở cho phép độc lập triển khai giữa các ứng dụng và cơ sở hạ tầng đối với các nhà phát triển và mở ra tiềm năng tạo nên một mô hình cho sự hợp tác tốt và đổi mới hơn.
  • Docker giải quyết vấn đề khi mà các doanh nghiệp ngày nay đang chịu áp lực phải chuyển đổi kỹ thuật số nhưng bị hạn chế bởi các ứng dụng và cơ sở hạ tầng hiện tại đồng thời hợp lý hóa danh mục cloud, trung tâm dữ liệu và kiến trúc ứng dụng ngày càng đa dạng.

Chuẩn bị máy ảo​

Một máy ảo Ubuntu server 20.04 có cấu hình như sau:

RamCpuDiskNicOs
4G4 cores50Gb1 NicUbuntu 20.04

Cài đặt môi trường Docker và tiến hành khai thác lổ hổng CVE-2023-6063:

Các bước thực hiện như sau:
Bước 1: Chạy câu lệnh apt-get update
1700119111440.png
apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
1700119111457.png
Bước 2: Add Docker’s Official GPG Key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg –dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
1700119111474.png
Bước 3: Add repo
echo \
“deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable” | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
1700119111489.png
Bước 4: Install Docker
apt-get update
1700119111503.png

apt-get install docker-ce docker-ce-cli containerd.io
Bước 5: Kiểm tra dịch vụ Docker
Kiểm tra trạng thái của Docker Service
systemctl status docker

1700119111523.png

systemctl enable docker
1700119111539.png
Bước 6: Running Test Docker Container
Sau khi cài đặt xong các bước trên. Ở bước này chúng ta đi pull image có sẵn từ docker hub về docker trên server của các bạn để chạy thử.
docker run -d nginx
1700119111560.png

docker ps
1700119111576.png

docker image ls
1700119111593.png

Build docker-compose:

Codeversion: ‘3.1’

services:
wordpress:
image: wordpress
restart: always
ports:
– “8080:80”
environment:
WORDPRESS_DB_HOST: mysql
WORDPRESS_DB_USER: wordpressuser
WORDPRESS_DB_PASSWORD: wordpresspassword
WORDPRESS_DB_NAME: wordpress
volumes:
– ./wordpress:/var/www/html

mysql:
image: mysql:5.7
restart: always
environment:
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpressuser
MYSQL_PASSWORD: wordpresspassword
MYSQL_ROOT_PASSWORD: rootpassword
volumes:
– ./mysql:/var/lib/mysql

ftp:
image: fauria/vsftpd
restart: always
ports:
– “21:21”
environment:
FTP_USER: yourftpuser
FTP_PASS: yourftppassword
PASV_ADDRESS: your_host_ip_address
volumes:
– ./ftp:/home/vsftpd/ftp

networks:
default:
external:
name: your_network_name
Ghi chúHãy thay đổi các giá trị như yourftpuser, yourftppassword, your_host_ip_address, và your_network_name để phản ánh thông tin của bạn.
1700120761682.png
Giải thíchDịch vụ wordpress sử dụng hình ảnh WordPress và được liên kết với dịch vụ MySQL. Thư mục ./wordpress trên máy host được liên kết với /var/www/html trong container WordPress để lưu trữ dữ liệu WordPress. Dịch vụ mysql sử dụng hình ảnh MySQL để lưu trữ cơ sở dữ liệu của WordPress. Thư mục ./mysql trên máy host được liên kết với /var/lib/mysql trong container MySQL. Dịch vụ ftp sử dụng hình ảnh vsftpd để cung cấp dịch vụ FTP. Thư mục ./ftp trên máy host được liên kết với /home/vsftpd/ftp trong container vsftpd để lưu trữ dữ liệu FTP. Hãy thay đổi các giá trị như yourftpuser, yourftppassword, your_host_ip_address, và your_network_name để phản ánh thông tin của bạn.
1700119111612.png
Giải thíchDịch vụ wordpress sử dụng hình ảnh WordPress và được liên kết với dịch vụ MySQL. Thư mục ./wordpress trên máy host được liên kết với /var/www/html trong container WordPress để lưu trữ dữ liệu WordPress.
Dịch vụ mysql sử dụng hình ảnh MySQL để lưu trữ cơ sở dữ liệu của WordPress. Thư mục ./mysql trên máy host được liên kết với /var/lib/mysql trong container MySQL.
Dịch vụ ftp sử dụng hình ảnh vsftpd để cung cấp dịch vụ FTP. Thư mục ./ftp trên máy host được liên kết với /home/vsftpd/ftp trong container vsftpd để lưu trữ dữ liệu FTP.
Triển khai
1700119111631.png
Kiểm tra dockerhuyqa@thegirls:~/Documents/CVE$ sudo docker ps -a
1700119111647.png
Truy cập vào đường link
1700119111669.png
Lựa chọn ngôn ngữ wordpress
1700119111692.png
1700119111711.png
Install pluginPlugins --> Add New Plugin --> Click Plugin wp-fastest-cache.1.2.0.zip
1700119111737.png
Active Plugin
1700119111763.png

Tiến hành khai thác lổ hổng CVE-2023-6063:

Bước 1:Enable “WP Fastest Cache”.
Image 1
Bước 2:Tiến hành bắt gói tin HTTP bằng phần mềm burpsuite. Sau đó chạy câu lệnh sau:
$ python sqlmap.py –dbms=mysql -u “http:// 172.18.0.2/wp-login.php” –cookie=’wordpress_logged_in=*’ –level=2 –schema
1700119111811.png
Bước 3Check logs trên container wordpress
1700119111849.png

Phân tích lổ hổng CVE-2023-6063

Lỗ hổng CVE-2023-6063 là gì?

  • WP Fastest Cache là một plugin bộ nhớ đệm được sử dụng để tăng tốc độ tải trang, cải thiện trải nghiệm của khách truy cập và tăng thứ hạng của trang web trên công cụ tìm kiếm Google. Theo số liệu thống kê của WordPress.org, plugin này được hơn một triệu trang web sử dụng.
  • Lỗ hổng được theo dõi là CVE-2023-6063 và có điểm mức độ nghiêm trọng cao 8,6/10, ảnh hưởng đến tất cả các phiên bản plugin trước 1.2.2. WordPress cho biết, hiện có hơn 600.000 trang web vẫn chạy phiên bản plugin tồn tại lỗ hổng và có nguy cơ bị tấn công.

Phân tích lỗ hổng CVE-2023-6063

  • Lỗ hổng này ảnh hưởng đến chức năng ‘is_user_admin’ của class ‘WpFastestCacheCreateCache‘ trong plugin WP Fastest Cache, nhằm kiểm tra xem người dùng có phải là quản trị viên hay không bằng cách trích xuất giá trị ‘$username’ từ cookie.
Dịch đoạn code:

Code:
public function is_user_admin(){
global $wpdb;

foreach ((array)[imath]_COOKIE as[/imath]cookie_key => $cookie_value){
if(preg_match("/wordpress_logged_in/i", $cookie_key)){
[imath]username = preg_replace("/^([^\|]+)\|.+/", "[/imath]1", $cookie_value);
break;
}
}

if(isset([imath]username) &&[/imath]username){
[imath]res =[/imath]wpdb->get_var("SELECT `[imath]wpdb->users`.`ID`, `[/imath]wpdb->users`.`user_login`, `[imath]wpdb->usermeta`.`meta_key`, `[/imath]wpdb->usermeta`.`meta_value`
FROM `$wpdb->users`
INNER JOIN `$wpdb->usermeta`
ON `[imath]wpdb->users`.`user_login` = \"[/imath]username\" AND
`$wpdb->usermeta`.`meta_key` LIKE \"%_user_level\" AND
`$wpdb->usermeta`.`meta_value` = \"10\" AND
`[imath]wpdb->users`.`ID` = `[/imath]wpdb->usermeta`.user_id ;"
);

return $res;
}

return false;
}
1700306613519.png



Phân tích code:
Sử dụng đối tượng toàn cục $wpdb để tương tác với cơ sở dữ liệu WordPress.
Duyệt qua mảng $_COOKIE để tìm một khóa cookie chứa “wordpress_logged_in“.
Trích xuất tên người dùng từ giá trị cookie bằng cách sử dụng biểu thức chính quy.
Nếu tìm thấy tên người dùng, thực hiện một truy vấn SQL sử dụng $wpdb->get_var để kiểm tra xem người dùng có cấp độ người dùng là “10” (thường tương ứng với vai trò quản trị viên trong WordPress) hay không.
Nếu người dùng là quản trị viên, hàm trả về kết quả của truy vấn SQL, đó là ID người dùng.
Nếu không tìm thấy quản trị viên, hàm trả về giá trị false.

Kết luận và khắc phục:

Kết luận:

  • Cơ sở dữ liệu WordPress thường bao gồm thông tin nhạy cảm như dữ liệu người dùng (địa chỉ IP, email, ID), mật khẩu tài khoản, cài đặt cấu hình plugin và chủ đề cũng như các dữ liệu khác cần thiết cho các chức năng của trang web.
  • Lỗ hổng được theo dõi là CVE-2023-6063 và có điểm mức độ nghiêm trọng cao 8,6/10, ảnh hưởng đến tất cả các phiên bản plugin trước 1.2.2. WordPress cho biết, hiện có hơn 600.000 trang web vẫn chạy phiên bản plugin tồn tại lỗ hổng và có nguy cơ bị tấn công.

Khắc phục:

  • Một bản vá đã được phát hành bởi nhà phát triển WP Fastest Cache trong phiên bản 1.2.2, được phát hành ngày 13/11/2023.
  • Sử dụng WAF để ngăn chặn các cuộc tấn công.

Tài liệu tham khảo:

  • Build docker bằng script (Link)
  • Tham khảo PoC tại trang wpscan.
 
Chỉnh sửa lần cuối:
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Bên trên