Получаем привилегии Root из сценария suid
Изменения IFS
Если программа вызывает любые другие программы, использующие функциональный запрос к системе, ее можно обмануть, изменив IFS.
IFS — это внутренний разделитель полей (Internal Field Separator), который используется оболочкой для разграничения параметров.
Если программа содержит строку system("/bin/date") и вы изменяете IFS на /, то оболочка будет интерпретировать продолжение строки как: bin date
Теперь, если ваша собственная программа находится в вашем текущем каталоге и называется bin, то suid программа выполнит вашу программу вместо
Для того, чтобы изменить IFS, можно использовать следующую команду:
IFS=V;export IFS # Bourne Shell setenv IFS '/' И С Shell
Export IFS='/' # Korn Shell
Добавьте символическую связь - i к программе. Выполнение - і заставит оболочку интерпретатора запускаться в интерактивном режиме. Это работает только на suid-сценариях оболочки.
Например: % In suid. sh - i
X - і
#
Замените символическую связь с программой на связь с другой программой, в то время как ядро загружает/bin/sh.
Например:
Nice -19 suidprog ; In - s evilprog suidroot
Послать некорректный ввод в программу
Пропишите имя программы и отдельной команды в одной командной строке.
Например: suidprog ; id