Читаем Защита от хакеров корпоративных сетей полностью

/* lameprogram.c – Hal Flynn */

/* does not perform sufficient checks for a */

/* file before opening it and storing data */

#include

#include

int main

{

char a[] = “This is my own special junk data

storage.\n”;

char junkpath[] = “/tmp/junktmp”;

FILE *fp;

fp = fopen(junkpath, “w”);

fputs(a, fp);

fclose(fp);

unlink(junkpath);

return(0);

}

Эта программа создает файл /tmp/junktmp без первоначальной проверки его существования.

Пусть во время выполнения программы, создающей небезопасный временный файл, создаваемый файл уже существует. Тогда файл, указанный в символической связи, будет или перезаписан, или в конец этого файла будут добавлены новые данные при условии, если пользователь, выполняющий потенциально опасную программу, имеет право на запись в файл. Рисунки 3.5 и 3.6 демонстрируют пример использования подобной программы пользователем haxor для перезаписи файла пользователя ellipse.

Рис. 3.5. Пользователь haxor создает злонамеренную символическую ссылку

Перейти на страницу:
Нет соединения с сервером, попробуйте зайти чуть позже