Тестирование безопасности - переполнение буфера
Переполнение буфера возникает, когда программа пытается сохранить во временной области хранения данных (буфере) больше данных, чем было предназначено для хранения. Поскольку буферы создаются для хранения конечного количества данных, дополнительная информация может переполняться в соседние буферы, тем самым искажая действительные данные, хранящиеся в них.
пример
Вот классический пример переполнения буфера. Он демонстрирует простое переполнение буфера, вызванное первым сценарием, в котором его поведение зависит от внешних данных. Невозможно ограничить объем данных, вводимых пользователем, и поведение программы зависит от того, сколько символов пользователь ввел внутрь.
...
char bufr[BUFSIZE];
gets(bufr);
...
Руки вверх
Step 1- Нам нужно войти в систему с именем и номером комнаты, чтобы получить доступ в Интернет. Вот снимок сценария.
Step 2 - Мы также включим «Показывать скрытые поля формы» в Burp Suite, как показано ниже -
Step 3- Теперь отправляем ввод в поле имени и номера комнаты. Мы также пытаемся ввести довольно большое число в поле номера комнаты.
Step 4- Скрытые поля отображаются, как показано ниже. Нажимаем принять условия.
Step 5 - Атака успешна, так что в результате переполнения буфера она начала считывать соседние ячейки памяти и отображалась для пользователя, как показано ниже.
Step 6- Теперь давайте авторизуемся, используя отображаемые данные. После регистрации отображается следующее сообщение -
Профилактические механизмы
- Проверка кода
- Обучение разработчиков
- Инструменты компилятора
- Разработка безопасных функций
- Периодическое сканирование