C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  Update World C++: Сборник GPL QT исходников
  Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Дебетовая карта Home Credit [CPS] RU

 

Шаг 23 - Что такое ошибка переполнения, второй шаг хакера

Одной из возможны ошибочных ситуаций является ошибка переполнения. Она в состоянии вывести из строя как Вашу программу, так и, например, сервис на сервере ответственный за безопасность. Когда она возникает ??? В тот момент когда необходимо ввести данные в Вашу программу или на сервер. Например, пароль. И если программа написана не очень корректно, то ввод большого массива может привести к ее отказу. А давайте попробуем. Вот пример:

// TestOver.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

void main()
{
	char buffer[2];
	printf("Enter password - ");
	gets(buffer);
}

Цель этого кода получить пароль. Так вот, если ввести больше чем два символа !! Смотрите:

gif/23_1.gif (4543 b)

Конечно буфер будет больше в реальной программе, скажем 20 символов или 50. Но можно программным путем послать и строку длиной 10000 символов. Вы скажете, что те кто пишут программы для интернета все это знают и предусмотрели ??? А вот и нет. Есть достаточное количество серверов, допустим почтовых, которые спокойно выходят из строя если им послать длинную строку вместо имени или пароля. Конечно outlook этого сделать Вам не даст. Но если Вы умеете программировать с помощью сокетов, то это пара пустяков. Кстати когда пароль или имя это понятно, но в любом случае есть еще места где это может сработать. Например, можно послать HTTP заголовок с очень длинными строками. Не факт, что сервер воспримет это нормально, иначе бы не было столько проблем и взломов. В любой программе есть буфер, и он может переполниться. Кстати с UNIX дело тоже не лучше, если не хуже. Там практически чистый С, и как раз с такими функциями ввода. Вобщем идея понятна, вместо обычных данных посылаются неразумно большие. Если программист этого не предусмотрел, то хана.


| |
Автор Каев Артем.
[AD]





Дебетовая карта Home Credit [CPS] RU