Helo mấy bạn, hôm nay mình sẽ mang đến các bạn 1 series ngắn kì về các dạng lỗi của PHP Stream Wrapper, chia sẻ là phụ, viết bài cho blog đỡ mốc là chính. Enjoy!
Tham khảo: https://www.php.net/manual/en/intro.stream.php
Đọc tiếng anh thì hiểu mà dịch ra tiếng Việt chuối cả nải, nên mình sẽ giải thích theo kiểu mình hiểu,
Stream có thể coi là sự truyền dữ liệu từ nguồn đến đích, nguồn và đích ở đây có thể là thể ở bất kì dạng nào, ví dụ như là
Mặc dù nhìn mấy cái trên có vẻ không liên quan gì nhau, nhưng có chung điểm là: ĐÓ LÀ NHỮNG PROCESS CÓ THỂ ĐỌC VÀ GHI ĐƯỢC
như vậy bạn có thể ghi dữ liệu từ nguồn vào đích, hoặc đọc dữ liệu từ nguồn đến đích, gói gọn lại như này:
Trong PHP, có nhiều hàm thực hiện các tương tác với Stream, một vài ví dụ
Một Stream cơ bản sẽ gồm 2 phần nhìn giống như này
[scheme]://[target]
Trong đó [scheme] là Wrapper, [target] là các phương thức của wrapper đó, vậy trong php có những wrapper nào?
That’s all 🙂 Mình sẽ đi vào từng wrapper, code lỗi và exploit ở những bài sau.
Wrapper mặc định trong php là file://, do đó nếu không cung cấp <scheme> thì nó tự add cái file:// vào, ví dụ:
file_get_contents(“/etc/passwd”) sẽ giống y chang file_get_contents(“file:///etc/passwd”)
What do you think?