Если пользователь может только читать и записывать файлы, достаточно ли этого для предотвращения выполнения?

Предполагая, что GNU grep :

$ echo 'sdffsd sfdfi -ip 192.168.1.1 sdfdf ertret' | grep -oE '[0-9.]+'
192.168.1.1

И чтобы ограничить это только действительными IP-адресами, то есть строки с 4 наборами цифр, разделенных . и где ни один из них не превышает 255 (я не имею дело с <0 , поскольку - не будут совпадать в первую очередь):

$ echo 'sdffsd sfdfi -ip 192.168.1.1 sdfdf ertret' | grep -oE '[0-9.]+' | 
    awk -F. '{for(i=1;i<=NF;i++){if(NF!=4||$i>255){next}}}1;'
192.168.1.1
2
04.12.2016, 00:39
1 ответ

Произвольные имена в произвольных местах, ограниченные только разрешениями файловой системы, вероятно, могут быть расширены для выполнения произвольного кода. Например, в $ HOME есть много файлов, которые автоматически запускаются при входе в систему. И добавляются новые (например, все материалы о пользовательских сессиях systemd появились довольно недавно). Или, может быть, $ HOME / bin по умолчанию помещается в начало $ PATH.

Другими хорошими целями для злоумышленника могут быть ~ / .ssh ; Я не предполагал, что должен иметь доступ для входа в систему, но смогу ли я после установки файла авторизованных ключей? Вы, конечно, можете отключить это через config в / etc / ssh / , но это всего лишь одна программа. Наверное, есть и другие.

Я не сомневаюсь, что вы могли бы защитить это, но это потребует много работы (и вы должны быть очень осторожны при обновлении ОС!)

Если, однако, вы можете ограничить это к произвольным файлам, но ограничено определенными каталогами (скажем, только в / srv / yourapp / и подкаталогах), что безопасно (при условии, что он правильно запрограммирован).

2
27.01.2020, 22:10

Теги

Похожие вопросы