# Level 05 ![](https://hackmd.io/_uploads/H15PaPc-a.png) Ở level 5 sẽ khá giống level 4 ở chỗ ta chỉ có thể sử dụng chức năng `backup`, kết quả của câu lệnh sẽ chỉ thông báo là `Backup thành công` nếu câu lệnh hoạt động bình thường và `Backup không thành công` nếu có lỗi xảy ra với câu lệnh như lỗi syntax. Điểm khác biệt ở challenge này là có một proxy đã chặn ở giữa, request của chúng ta sẽ được gửi tới proxy thông qua internet sau đó proxy chuyển tiếp cho local server để xử lý và server này không được kết nối mạng => cách làm ở level 4 đã bị chặn > Ta có thể biết chắc được điều này nhờ source code và docker file Hướng bypass lúc này sẽ là thử ghi thông tin ra một file ở web root và truy cập vào đó để đọc Payload: ``` $(ls / | tee /var/www/html/log.txt) ``` Trong đó: - **$()** dùng để thực thi sub-command, hoặc ta cũng có thể dùng **\`command\`, |, &, ;** nếu không bị filter - **ls /** liệt kê các file ở thư mục root (/) - **|** lấy output của command đằng trước là input của command đằng sau - **tee** đọc từ standard input sau đó ghi ra standard output hoặc file -> túm lại có thể sử dụng kèm pipeline như này **command_1 | tee file.txt** để lấy kết quả của command_1 ghi vào file.txt - **/var/www/html/** là web root của trang web này, ta biết được điều này nhờ vào source code nhưng đây cũng là một web root mặc định khá phổ biến - **log.txt** một file text để ghi dữ liệu vào Sau khi gửi payload thì truy cập đến file log.txt để xem thử ![](https://hackmd.io/_uploads/S1WnK_9ZT.png) Chỉnh sửa lại payload để ghi nội dung file secret vào log.txt Kết quả ![](https://hackmd.io/_uploads/HkxUcucZa.png)