Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
при этом выведут что-то типа <Segmentation fault, core dumped>. Информация от Windows NT (рис. 9,2) для
Хакера более наглядна - по ней сразу понятно, что произошло именно переполнение буфера с возможностью
подмены адреса возврата, так как адрес, на котором <споткнулась> программа,
Был не чем иным, как 0х31313131. Это соответствует шестнадцатеричному коду для строки из четырех
Единиц. Если ввести строку, состоящую из неодинаковых символов, например
Abcdefghijklmnopqst, то по выведенному адресу станет ясно, в каком месте строки должен стоять
Будущий адрес возврата.
Итак, цель - передача управления - хакером достигнута. Теперь дело за малым. Нужно выполнить
следующие шаги:
Найти подходящую программу, которая не только содержит процедуру, похожую на process_data(), но и
Выполняется с большими привилегиями. Если хакеру доступны исходные тексты, то особое внимание
Надо обратить на программы, содержащие функции strcat(), strcpy(), sprintf(), vsprintf(), gets(), scanf() и т. п.
Если исходных текстов нет, то остается ручной (или автоматизированный) поиск уязвимых программ, то
Есть подача на вход длинных строк и оценка результатов.
Определить для найденной программы, какой размер буфера надо использовать, где в буфере должен
Располагаться адрес возврата и т. п.
Написать код, на который осуществится переход. Для ОС UNIX стандартный вариант - вызов оболочки
следующим образом:
char *name[2]:
name[0] = "/bin/sh":
name[1] = NULL,
execve(name[0],
name, NULL):
Дата публикования: 2014-11-04; Прочитано: 333 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!