Shell php là gì?
Trong thực tế chúng ta bắt gặp rất nhiều trang web cho phép chúng ta upload file từ máy lên. Đơn giản như tải lên hình nền làm hình đại diện hoặc gửi tệp video thứ cấp. Tuy nhiên, nếu chúng ta không chắc chắn rằng tệp tải lên được kiểm tra chặt chẽ, tin tặc rất có thể sẽ sử dụng trình bao giả mạo dưới dạng tệp ảnh để thực thi mã và sử dụng quyền điều khiển. Bài viết này sẽ chỉ cho bạn 1 vài cách khai thác cơ bản khi bắt đầu vào kiểm soát chưa chặt chẽ. Vì vậy chúng ta hãy đi Show a. Khai thác cơ bảnĐầu tiên cũng là đơn giản nhất. Đó là trang web tin tưởng hoàn toàn vào người dùng và không có bất kỳ biện pháp bảo vệ nào. Ta sẽ code 1 trang web đơn giản upload file như sau. Nguyễn Xuân Chiến @Chibi Theo dõi 1. 6K 45 58 Đã đăng vào ngày 15 tháng 3 năm 2021 1. 02 SA trong Nhóm An ninh mạng Sun* Hãy hack tất cả mọi thứ Người theo dõi bởi 648 người. Theo dõi Sun* Cyber Security Team6 phút đọc3. 5K 6 2 Khai báo lỗi truy cập Tải lên tệp trên php để up shellChúc mừng năm mới
1. Giới thiệu Trong thực tế chúng ta bắt gặp rất nhiều trang web cho phép chúng ta upload file từ máy lên. Đơn giản như tải lên hình nền làm hình đại diện hoặc gửi tệp video thứ cấp. Tuy nhiên, nếu chúng ta không chắc chắn rằng tệp tải lên được kiểm tra chặt chẽ, tin tặc rất có thể sẽ sử dụng trình bao giả mạo dưới dạng tệp ảnh để thực thi mã và sử dụng quyền điều khiển. Bài viết này sẽ chỉ cho bạn 1 vài cách khai thác cơ bản khi bắt đầu vào kiểm soát chưa chặt chẽ. Vì vậy chúng ta hãy đi a. Khai thác cơ bảnĐầu tiên cũng là đơn giản nhất. Đó là trang web tin tưởng hoàn toàn vào người dùng và không có bất kỳ biện pháp bảo vệ nào. Ta sẽ code 1 trang web đơn giản upload file như sau. Phần mã php khi không có kiểm soát đầu vào sẽ có định dạng Giao diện trang web sẽ cho ta 1 chỗ để tải tệp lên. Sau khi tải lên, tệp được lưu vào địa chỉ. /uploads/file_name. Ta sẽ thử gửi lên 1 ảnh 1 bất kỳ là thử nghiệm. jpg. Sau khi gửi lên thành công, ta có thể vào. /tải lên/kiểm tra. jpg to view direct image Như vậy là upload thành công. Bây giờ ta sẽ test shell php up, ở đây mình dùng tool pony shell để up Sau khi tải lên và chạy. /tải lên/vỏ. php thì đã vào bảng terminal, tại đây ta có thể khai thác để chạy lệnh linux, từ đó lấy thông tin b. Loại bỏ qua MMITiếp đến các trang web có thể giới hạn định dạng tệp, được gọi là phần mở rộng tệp MMI. Ta sẽ thêm 1 đoạn mã như sau vào trang trước. Đoạn mã trên sẽ sử dụng Đến đây ta sẽ sử dụng burpsuite để khai thác. Bắt đầu yêu cầu bằng burpsuite ta được File ta up lên là file php nên ở phần header sẽ có dạng There is up to public c. Bỏ qua getimagesize()Hàm getimagesize () sẽ đọc 1 lượng byte ban đầu được xác định rõ nhất để xác định xem định dạng tệp, chiều rộng cũng như chiều cao của tệp. Đoạn mã sẽ được thêm vào như sau. To bypass thì ta sẽ chỉnh sửa phần đầu của file php để hàm check có nghĩa là file ảnh. Hoặc ta chỉ cần thêm đoạn There is up to public. Khá tiếc là cái pony shell cách sử dụng này lại không chạy được, các bạn có thể sử dụng các shell khác như mini shell hay r57 shell đều được d. Bỏ qua thông tin đường dẫn()Hàm pathinfo() sẽ lấy thông tin về đường truyền vào. Tiện ích mở rộng sẽ được kiểm tra bởi đoạn sau dấu chấm cuối cùng. vỏ ví dụ. php. jpg thì hàm pathinfo() sẽ check đây có phải là 1 file jpg. Tuy nhiên, nếu ta để như thế thì khi truyền đoạn url chứa shell vào sẽ không chạy được. Đến đây ta có 1 cách để khai thác. Đó là sử dụng byte rỗng %00, hiểu đơn giản thì ta sẽ định dạng tệp e. Một vài cách khai thác khác nhau
Up file lên sẽ được. Như vậy, cho dù kẻ tấn công có vượt qua và up shell lên được thì vẫn không thể thực thi lệnh đã được định dạng sang tệp ảnh |