Trình bao bọc php là gì?
Lỗ hổng File Inclusion cho phép kẻ tấn công File Inclusion, thường khai thác cơ chế “Dynamic File Inclusion” được phát triển trong ứng dụng đích. Lỗ hổng bảo mật xảy ra do việc sử dụng dữ liệu đầu vào do người dùng cung cấp mà không được giải thích hợp lý Show Các bài viết liên quan
Điều này có thể dẫn đến việc xuất ra nội dung của tệp, nhưng tùy thuộc vào mức độ quan trọng, nó cũng có thể dẫn đến
Bao gồm tệp cục bộ (còn được gọi là LFI) là quá trình bao gồm các tệp, đã có mặt cục bộ trên máy chủ, thông qua công việc khai thác các thủ tục được đưa vào dễ bị tổn thương được triển khai trong ứng dụng. Lỗi này xảy ra, ví dụ. khi một trang nhận, bắt đầu vào, đường dẫn đến tệp phải được bao gồm và đầu vào này không được làm sạch đúng cách, cho phép các ký tự duyệt thư mục (không hạn chế như dấu chấm-chấm-gạch chéo) được đưa ra . Mặc dù hầu hết các ví dụ đều chỉ ra các tập lệnh PHP dễ bị tấn công, chúng ta nên nhớ rằng nó cũng phổ biến trong các công nghệ khác như JSP, ASP và các công nghệ khác Tóm tắt nội dung
Làm thế nào để kiểm traVì LFI xảy ra khi các đường dẫn được truyền để bao gồm các câu lệnh không được làm sạch đúng cách, trong cách tiếp cận hộp kiểm tra màu đen, chúng ta nên tìm kiếm các lệnh lấy tên tệp làm tham số Có thể bạn quan tâmHãy xem xét ví dụ sau http: //vulnerable_host/preview.php? file = example.html Có vẻ như đây là một nơi hoàn hảo để thử LFI. Nếu kẻ tấn công đủ may mắn và thay vì chọn trang thích hợp từ mảng theo tên của nó, tập lệnh bao gồm trực tiếp tham số đầu vào, thì có thể bao gồm các tùy chọn tệp trên máy chủ Ý niệm bằng chứng từ điển hình sẽ được tải xuống tệp mật khẩu http: //vulnerable_host/preview.php? file = . / . / . / . / etc / passwd Nếu các điều kiện được đề cập ở trên câu trả lời, kẻ tấn công sẽ thấy một cái gì đó giống như sau
Ngay cả khi có lỗi như vậy tồn tại, việc khai thác của nó có thể phức tạp hơn trong điều kiện thực tế. Vui lòng xem xét đoạn mã sau Thay thế đơn giản bằng một tên tệp ngẫu nhiên sẽ không hoạt động vì postfix. php was add on the head to be supply. Để vượt qua nó, người thử nghiệm có thể sử dụng một số kỹ thuật để có khả năng khai thác như mong đợi Tiêm Null ByteKý tự null (còn được gọi là ký tự kết thúc null hoặc byte rỗng) là ký tự điều khiển có giá trị bằng không trong nhiều bộ ký tự đang được sử dụng như một ký tự dành riêng để đánh dấu phần cuối của . Sau khi được sử dụng, bất kỳ ký tự nào sau byte đặc biệt này sẽ bị loại bỏ. Thông thường, cách đưa ký tự này vào chuỗi mã hóa URL %00 bằng cách thêm nó vào đường dẫn được yêu cầu. Trong mẫu trước của chúng tôi, việc thực hiện yêu cầu truy cập http. //vulnerable_host/xem trước. php? . /. /. /. /etc/passwd% 00 sẽ bỏ qua phần mở rộng. php được thêm vào tên tệp đầu vào , trả lại cho những kẻ tấn công danh sách những người sử dụng cơ bản để khai thác thành công Cắt bỏ đường dẫn và dấu chấmHầu hết các bản cài đặt PHP có giới hạn tên tệp là 4096 byte. Nếu bất kỳ tên tệp định dạng nào dài hơn độ dài đó, thì PHP chỉ cần cắt bớt tên tệp đó, loại bỏ bất kỳ ký tự bổ sung nào. This action used to make up the PHP tool remove over extension section. php by way to move it out khỏi giới hạn 4096 byte. Khi điều này xảy ra, không có lỗi nào được kích hoạt; Loại bỏ qua này thường được kết hợp với các chiến lược lược bỏ qua logic khác như mã hóa một phần đường dẫn tệp bằng mã hóa Unicode, giới thiệu mã hóa kép hoặc bất kỳ đầu vào nào khác vẫn đại diện cho tên tệp mong muốn hợp lệ Trình bao bọc PHPLỗ hổng bao gồm tệp cục bộ thường được coi là lỗi chỉ đọc mà kẻ tấn công có thể sử dụng để đọc dữ liệu nhạy cảm từ máy chủ lưu trữ ứng dụng dễ dàng bị tấn công. Tuy nhiên, trong một số công cụ phát triển có thể khai thác, lỗ hổng này có thể được sử dụng để nâng cao cuộc tấn công từ LFI thành lỗ hổng Thực thi mã từ xa có khả năng xâm phạm hoàn toàn máy chủ Quá trình cải tiến này trở nên phổ biến khi kẻ tấn công có thể kết hợp lỗ hổng LFI với một số trình bao bọc PHP nhất định Trình bao bọc là một mã bao quanh mã khác để thực hiện một số chức năng bổ sung. PHP triển khai nhiều trình bao bọc tích hợp để được sử dụng với các chức năng của tệp hệ thống. Khi việc sử dụng chúng được phát hiện trong quá trình thử nghiệm ứng dụng, bạn nên thử sử dụng nó để xác định nguyên nhân thực sự của (các) điểm yếu được phát hiện. Dưới đây, bạn có thể nhận được danh sách với các trình bao bọc được sử dụng phổ biến nhất, mặc dù bạn nên xem xét rằng nó chưa đầy đủ và đồng thời có thể đăng ký các trình bao bọc tùy chỉnh mà nếu được mục PHP filterCó thể sử dụng để truy cập hệ thống tệp cục bộ; . Trình bao bọc này có thể được sử dụng để lấy nội dung của tệp ngăn máy chủ thực thi tệp đó. Ví dụ. cho phép kẻ tấn công đọc nội dung của tệp PHP để lấy mã nguồn xác thực dự kiến thông tin nhạy cảm như thông tin xác thực hoặc các lỗ hổng có thể khai thác khác Trình bao bọc có thể được sử dụng như php. // lọc/chuyển đổi. base64-encode/resource=FILE trong đó FILE là file cần truy xuất. Do công việc sử dụng quá trình thực thi này, nội dung của tệp đích sẽ được đọc, được mã hóa thành base64 (ở đây là bước ngăn chặn máy chủ thực thi) và được trả lại cho Tác nhân người dùng PHP ZIPTrên PHP 7. 2. 0, nén. // trình bao bọc đã được giới thiệu để thao tác với các tệp nén zip. Trình bao bọc này mong đợi cấu trúc tham số sau. khóa kéo. /// filename_path # internal_filename trong đó filename_path là đường dẫn đến tệp độc hại và internal_filename là đường dẫn chứa tệp độc hại bên trong tệp ZIP đã xử lý. Trong quá trình khai thác, thông thường # sẽ được mã hóa bằng URL của nó Giá trị được mã hóa % 23 Việc sử dụng trình bao bọc này có thể cho phép kẻ tấn công thiết kế một tệp ZIP độc hại có thể tải lên máy chủ, chẳng hạn như ảnh đại diện hoặc sử dụng bất kỳ hệ thống tải lên tệp nào có sẵn trên đó . khóa kéo. // trình bao bọc thì không yêu cầu tệp zip có bất kỳ phần mở rộng tiện ích nào) được thực thi do lỗi theo dõi LFI Để kiểm tra lỗi này, quy trình sau có thể được thực hiện để tấn công ví dụ mã trước đó đã cung cấp
Vì trên mẫu của chúng tôi, phần mở rộng. php được kết nối với tải trọng của chúng tôi, nên yêu cầu truy cập http. //vulnerable_host/xem trước. php? . //. /hình đại diện/mục tiêu. jpg%23code sẽ dẫn đến việc thực thi mã tệp. php tồn tại trong tệp ZIP độc hại Data PHPCó sẵn kể từ PHP 5. 2. 0, this bao bọc mong muốn sử dụng như sau. dữ liệu. //text/trơn; . Điều quan trọng là phải xem xét rằng trình bao bọc này sẽ chỉ khả dụng nếu tùy chọn allow_url_include được bật Để kiểm tra LFI bằng cách sử dụng trình bao bọc này, mã được thực thi phải được mã hóa Base64, ví dụ:. Kỳ vọng PHPTrình bao bọc này, không được bật theo mặc định, cấp quyền truy cập vào các quy trình stdio, stdout và stderr. Mong đợi được sử dụng như mong đợi. // lệnh máy chủ sẽ thực thi lệnh được cung cấp trên BASH và trả về kết quả của nó Biện pháp giải quyết hậu quảGiải pháp hiệu quả nhất để loại bỏ lỗi bao gồm tệp bao gồm là tránh chuyển đầu vào do người dùng gửi tới bất kỳ khung API / hệ thống tệp nào. Nếu không thể, ứng dụng có thể duy trì một danh sách cho phép các tệp, có thể bao gồm trang này và sau đó sử dụng một số nhận định dạng (ví dụ:. number only) để truy cập vào tệp đã chọn. Bất kỳ yêu cầu nào có chứa mã định danh không hợp lệ đều phải bị từ chối, theo cách này sẽ không có bề mặt tấn công bất kỳ đối với người dùng độc hại thao túng đường dẫn |
Bài Viết Liên Quan
Hướng dẫn micropython unsigned int - int không dấu micropython
Sau đây là một số ví dụ về việc sử dụng trình biên dịch nội tuyến và một số thông tin về cách làm việc xung quanh các hạn chế của nó. Trong tài liệu ...
Hướng dẫn convert latex to image python - chuyển đổi latex thành hình ảnh python
Tôi có một chức năng Tôi đang tiêu thụ trả về một chuỗi mã latex. Tôi cần tạo ra một hình ảnh từ điều này. Hầu hết các phương pháp tôi đã thấy khi ...
Hướng dẫn how do you use if and function in excel with multiple conditions? - làm thế nào để bạn sử dụng if và chức năng trong excel với nhiều điều kiện?
Hướng dẫn chỉ ra cách tạo nhiều câu lệnh IF trong Excel với và cũng như hoặc logic. Ngoài ra, bạn sẽ học cách sử dụng nếu cùng với các hàm Excel khác.Trong ...
Đầu dvd fortuner 2023
Trang chủĐầu DVD GPS Toyota Innova -FortunerBạn cảm thấy bài viết hữu ích?Bài viết liên quanBài viết nổi bậtBài viết mới nhấtdanhgiaXe NewsBài viết: ...
Hướng dẫn python for genomic data science pdf - python cho khoa học dữ liệu bộ gen pdf
Python cho khoa học dữ liệu bộ gen Tin sinh họcGiới thiệu về bộ genGiới thiệu PythonThiết lập hệ thống cho khoa học dữ liệuHướng dẫn về Notebook JupyterDữ ...
Hướng dẫn how do you generate a random 16 digit number in python? - làm thế nào để bạn tạo một số gồm 16 chữ số ngẫu nhiên trong python?
Việc triển khai [159518, 160205, 159843, 159997, 160493, 160187, 160626, 159665, 159429, 160037] 5 trong Python cố gắng sử dụng trình tạo [159518, 160205, 159843, 159997, 160493, ...
Đặt lại pass mysql linux ubuntu
MySQL reset Root Password là gì?Yêu cầu khi reset Pass MySQLCách MySQL reset Root Password trên các hệ điều hànhWindowsLinuxMySQL reset Root Password là nhu cầu có thể phát sinh ...
Hướng dẫn python json get value by key - python json nhận giá trị theo khóa
Trong khi tôi đang cố gắng truy xuất các giá trị từ chuỗi JSON, nhưng nó cho tôi một lỗi:data = json.loads({lat:444, lon:555}) return data[lat] Nhưng, nếu tôi lặp ...
Hướng dẫn mysql connector-java version - phiên bản kết nối mysql-java
Configuration properties define how Connector/J will make a connection to a MySQL server. Unless otherwise noted, properties can be set for a DataSource object or for a Connection object. ...
Hướng dẫn should i learn data science first or python? - tôi nên học khoa học dữ liệu trước hay trăn?
Suy nghĩ về việc trở thành một nhà phân tích dữ liệu? Nó là một con đường sự nghiệp rất hứa hẹn, nhưng các nhà phân tích dữ liệu thường được yêu ...
Hướng dẫn create a python gui application for temperature converter from celsius to fahrenheit and vice versa - tạo một ứng dụng gui python để chuyển đổi nhiệt độ từ c sang fahrenheit và ngược lại
import tkinter as tkfrom tkinter import messageboxfrom functools import partialtkinter as tk0____11 tkinter as tk2tkinter as tk3 tkinter as tk4tkinter as tk5tkinter as tk6 tkinter as tk7tkinter as ...
Hướng dẫn what is css full form in selenium? - css dạng đầy đủ trong selen là gì?
Bộ chọn CSS là gì?Các bộ chọn CSS trong selen là các mẫu chuỗi được sử dụng để xác định một phần tử dựa trên sự kết hợp của thẻ HTML, ID, lớp và ...
What day will JUNE 28th be on in 2023?
Other CalendarsCalendar Generator – Create a calendar for any year.Custom Calendar – Make advanced customized calendarsCalendar for 2022Printable Calendar (PDF) – Calendars especially made for ...
Nghị định hướng dẫn luật đầu tư công 2023
Ảnh minh họa. Nguồn: internetChỉ quyết định chủ trương đầu tư các dự án có hiệu quảChương trình thực hành tiết kiệm, chống lãng phí giai đoạn 2021-2025 ...
Hướng dẫn modulo in python example - mô-đun trong ví dụ python
Xem bây giờ hướng dẫn này có một khóa học video liên quan được tạo bởi nhóm Python thực sự. Xem nó cùng với hướng dẫn bằng văn bản để làm sâu sắc ...
Hướng dẫn crop pdf python - cắt xén pdf trăn
How do I know the coordinates to crop?Thanks for all answers above.Step 1. Run the following code to get (x1, y1).from PyPDF2 import PdfWriter, PdfReader reader = PdfReader(test.pdf) page = ...
Hướng dẫn open xlsx file in google sheets - mở tệp xlsx trong trang tính google
Tự động xem các tệp XLSX dưới dạng Google Sheet bằng cách cài đặt trình cắm Chrome này.Các báo cáo được tải xuống dưới dạng các tệp Microsoft Excel, với ...
Hướng dẫn how to reverse a string in javascript using while loop - cách đảo ngược chuỗi trong javascript bằng vòng lặp while
Có nhiều cách bạn có thể đảo ngược một chuỗi trong JavaScript. Tôi đang chia sẻ một phương thức đơn giản ở đây, cho thấy cách đảo ngược chuỗi hoặc ...
Hướng dẫn how zip all files in folder in php? - cách nén tất cả các tệp trong thư mục trong php?
Tôi đã tìm thấy bài đăng này trong Google là kết quả hàng đầu thứ hai, đầu tiên là sử dụng Exec :(Dù sao, trong khi điều này không chính xác là nhu cầu của ...
What is the cheapest time to go to Disney World 2023?
The Cheapest Time To Go To Disney World 2022The Cheapest Time To Go To Disney World 2022Are you looking for the cheapest time to visit Disney in 2022? The truth is, who isn’t! A trip to Disney ...