Kiểm tra bảo mật - Tràn bộ đệm

Tràn bộ đệm phát sinh khi một chương trình cố gắng lưu trữ nhiều dữ liệu hơn trong vùng lưu trữ dữ liệu tạm thời (bộ đệm) so với dự định lưu trữ. Vì bộ đệm được tạo ra để chứa một lượng dữ liệu hữu hạn, thông tin bổ sung có thể tràn vào bộ đệm liền kề, do đó làm hỏng dữ liệu hợp lệ được giữ trong chúng.

Thí dụ

Đây là một ví dụ cổ điển về tràn bộ đệm. Nó cho thấy một sự cố tràn bộ đệm đơn giản là do tình huống đầu tiên dựa vào dữ liệu bên ngoài để kiểm soát hành vi của nó. Không có cách nào để giới hạn số lượng dữ liệu mà người dùng đã nhập và hành vi của chương trình phụ thuộc vào số lượng ký tự mà người dùng đã nhập vào bên trong.

...
   char bufr[BUFSIZE]; 
   gets(bufr);
   ...

BẬT tay

Step 1- Chúng tôi cần đăng nhập với tên và số phòng để truy cập internet. Đây là ảnh chụp nhanh kịch bản.

Step 2 - Chúng tôi cũng sẽ bật "Hiện các trường biểu mẫu ẩn" trong Burp Suite như hình dưới đây -

Step 3- Bây giờ chúng tôi gửi một đầu vào trong trường tên và số phòng. Chúng tôi cũng thử và đưa một số khá lớn vào trường số phòng.

Step 4- Các trường ẩn được hiển thị như hình dưới đây. Chúng tôi bấm chấp nhận các điều khoản.

Step 5 - Cuộc tấn công thành công như là do tràn bộ đệm, nó bắt đầu đọc các vị trí bộ nhớ liền kề và hiển thị cho người dùng như hình dưới đây.

Step 6- Bây giờ chúng ta hãy đăng nhập bằng dữ liệu được hiển thị. Sau khi ghi nhật ký, thông báo sau được hiển thị:

Cơ chế phòng ngừa

  • Đánh giá mã
  • Đào tạo nhà phát triển
  • Công cụ biên dịch
  • Phát triển các chức năng An toàn
  • Quét định kỳ