Lỗ hổng cấu hình Nginx với cài đặt khối bí danh không chính xác

Một số máy chủ Nginx vẫn dễ bị tấn công bởi kỹ thuật Nginx Alias ​​​​Traversal, được đề xuất tại hội nghị Blackhat vào năm 2018 và cho phép truy cập vào các tệp và thư mục nằm bên ngoài thư mục gốc được chỉ định trong chỉ thị “bí danh”. Sự cố chỉ xuất hiện trong các cấu hình có lệnh "bí danh" được đặt bên trong khối "vị trí" có tham số không kết thúc bằng ký tự "/", trong khi "bí danh" kết thúc bằng "/".

Lỗ hổng cấu hình Nginx với cài đặt khối bí danh không chính xác

Bản chất của vấn đề là các tệp dành cho các khối có chỉ thị bí danh được cung cấp bằng cách đính kèm đường dẫn được yêu cầu, sau khi so sánh nó với mặt nạ từ chỉ thị vị trí và cắt bỏ phần đường dẫn được chỉ định trong mặt nạ này. Đối với ví dụ về cấu hình dễ bị tấn công được hiển thị ở trên, kẻ tấn công có thể yêu cầu tệp “/img../test.txt” và yêu cầu này sẽ nằm trong mặt nạ “/img” được chỉ định ở vị trí, sau đó phần đuôi còn lại “.. /test.txt” sẽ được đính kèm vào đường dẫn từ chỉ thị bí danh “/var/images/” và cuối cùng sẽ yêu cầu tệp “/var/images/../test.txt”. Do đó, kẻ tấn công có thể truy cập bất kỳ tệp nào trong thư mục “/var”, chứ không chỉ các tệp trong “/var/images/”, ví dụ: để tải xuống nhật ký nginx, bạn có thể gửi yêu cầu “/img../log/ nginx/access.log".

Trong các cấu hình trong đó giá trị của lệnh bí danh không kết thúc bằng ký tự "/" (ví dụ: "bí danh /var/images;"), kẻ tấn công không thể thay đổi thư mục mẹ nhưng có thể yêu cầu thư mục khác trong /var có tên bắt đầu bằng tên được chỉ định trong cấu hình. Ví dụ: bằng cách yêu cầu "/img.old/test.txt", bạn có thể truy cập thư mục "var/images.old/test.txt".

Phân tích các kho lưu trữ trên GitHub cho thấy các lỗi trong cấu hình nginx dẫn đến sự cố vẫn xảy ra trong các dự án thực. Ví dụ: sự cố đã được xác định trong phần phụ trợ của trình quản lý mật khẩu Bitwarden và có thể được sử dụng để truy cập tất cả các tệp trong thư mục /etc/bitwarden (/yêu cầu tệp đính kèm được phát hành từ /etc/bitwarden/attachments/), bao gồm cả “vault .db", chứng chỉ và nhật ký, để có được nó đủ để gửi yêu cầu "/attachments../vault.db", "/attachments../identity.pfx", "/attachments../logs/api.log ", v.v. .P.

Lỗ hổng cấu hình Nginx với cài đặt khối bí danh không chính xác
Lỗ hổng cấu hình Nginx với cài đặt khối bí danh không chính xác

Phương pháp này cũng hoạt động với Bộ công cụ Google HPC, bộ công cụ này đã chuyển hướng các yêu cầu /static tới thư mục "../hpc-toolkit/community/front-end/website/static/". Để có được cơ sở dữ liệu có khóa riêng và thông tin xác thực, kẻ tấn công có thể gửi yêu cầu “/static../.secret_key” và “/static../db.sqlite3”.

Lỗ hổng cấu hình Nginx với cài đặt khối bí danh không chính xác


Nguồn: opennet.ru

Thêm một lời nhận xét