Ví dụ về deserialization php không an toàn
Xin chào, bội hành động, bạn đã hạn chế thết rị hộ của popen() trong PHP. ក្រង្រ្រ្រ្រ្រង្រ្រ្រ. Cảm ơn các bạn không ghé thăm bài. com Show Làm cách nào để chạy tập lệnh PHP từ trình duyệt bằng Popen?Gọi "trình bao bọc. php" từ trình duyệt cho phép popen ($cmd,"w") trong "real. php" hoạt động như mong đợi, sao cho thiết bị xuất chuẩn của $cmd đến được trình duyệt. Nếu bạn cố bỏ qua trình bao bọc và chỉ chạy "real. php", thiết bị xuất chuẩn của $cmd bị mất thành/dev/null. Lưu ý đối với người dùng Windows sử dụng popen bắt đầu chạy tập lệnh bên ngoài mà không cần đợi php Đối số dòng lệnh trong Popen là gì?Từ hướng dẫn lập trình viên popen linux. "Đối số lệnh là một con trỏ tới một chuỗi kết thúc null chứa dòng lệnh shell. Lệnh này được chuyển tới /bin/sh bằng cờ -c. "Vì php sử dụng chức năng popen này, bạn cần chắc chắn /bin/sh tồn tại. Tệp này có thể không tồn tại trong môi trường chroot ()ed PHP sử dụng các hàm gốc 0 để tuần tự hóa và hủy tuần tự hóa một đối tượng. Ví dụ: tập lệnh sau tạo một thể hiện của đối tượng 1, sắp xếp nó theo thứ tự và sau đó in biểu diễn chuỗi của đối tượng
Sau đó, biểu diễn chuỗi có thể được giải tuần tự hóa một lần nữa để tạo lại thể hiện đối tượng và truy cập các thuộc tính của nó
ví dụ dễ bị tổn thươngViệc khai thác giải tuần tự hóa trong PHP được gọi là PHP Object Injection, xảy ra khi đầu vào do người dùng kiểm soát được chuyển làm đối số đầu tiên của hàm 0. Đây là một 3 dễ bị tổn thương 4 hoặc 0 Các phương thức ma thuật PHP, được gọi khi đối tượng bị hủy hoặc giải tuần tự hóa, để gọi các tiện ích khác thực hiện các hành động độc hại trên hệ thốngNếu lớp 1 được xác định trong đoạn trên nằm trong phạm vi, kẻ tấn công có thể gửi một yêu cầu HTTP chứa một đại diện được tuần tự hóa của một đối tượng 1 tạo tệp PHP độc hại tới 3 với một 4 tùy ý khi phương pháp ma thuật 5 được gọi khi phá hủy
Tải trọng ở trên giải mã thành 6 cho phép kẻ tấn công chạy các lệnh tùy ý trên hệ thống. Các tải trọng phức tạp hơn có thể được xây dựng bằng cách xâu chuỗi mã từ nhiều lớp hoặc sử dụng lại các chuỗi POP công khai, chẳng hạn như các chuỗi có trong các dự án PHPGCC
|