История изменений
Исправление firkax, (текущая версия) :
функционал echo > реализовали что ли?
Разумеется.
тут накосячить в милион раз сложнее
Конкретно с echo именно сделать дыру - пожалуй, да. Но неожиданное поведение вполне возможно если забыть про то, что echo не просто выводит строку, а ещё и интерпретирует некоторые аргументы особенным способом.
А почему тогда у вас путь к файлу прямо в коде захардкожен?
Как раз затем, что он должен быть захардкожен, и юзеру не положено задавать другой. В этом главное отличие этой проги от echo. Можно было бы сделать туда поддержку разных индикаторов (caps, num, scroll) и разных номеров клавиатур, но тогда бы заодно пришлось городить конфиг (и парсер к нему) о том, какому юзеру какие именно индикаторы разрешено менять, а это всё лишнее - нам нужен только четвёртый скролллок, его и делаем без лишних ухищрений.
А уметь надо произвольный.
Ну я ж написал - chmod. Тот, кто в состоянии грамотно написать программу, точно знает и про chmod. А кто не в состоянии - лучше чтоб и не знал.
требует квалификации школьника-самоучки а не прогера
Вот именно. Сначала ты пишешь echo, потом начинаешь считать себя хакером и пишешь что-то сложнее, устраивая дыры. Нет, сначала надо научиться а потом уже писать. Простые школьные скрипты для себя запускай от своего юзера где они не создадут дыр. Причём, даже с echo нуб может устроить дыру, например он решит передавать номер или название индикатора аргументом, разумеется не проверит, что там что-то валидное:
#!/bin/sh
DEVNUM=$1
KEYNAME=$2
VALUE=$3
echo $VALUE > /sys/class/leds/input$DEVNUM::$KEYNAME/brightness
и исполнит в итоге строку вида
echo chown 0:0 /home/hacker/crack.bin ; chmod 4755 /home/hacker/crack.bin > /sys/class/leds/input4::scrolllock/../../../../../../../../../../../tmp/qwer/brightness
Исходная версия firkax, :
функционал echo > реализовали что ли?
Разумеется.
тут накосячить в милион раз сложнее
Конкретно с echo именно сделать дыру - пожалуй, да. Но неожиданное поведение вполне возможно если забыть про то, что echo не просто выводит строку, а ещё и интерпретирует некоторые аргументы особенным способом.
А почему тогда у вас путь к файлу прямо в коде захардкожен?
Как раз затем, что он должен быть захардкожен, и юзеру не положено задавать другой. В этом главное отличие этой проги от echo. Можно было бы сделать туда поддержку разных индикаторов (caps, num, scroll) и разных номеров клавиатур, но тогда бы заодно пришлось городить конфиг (и парсер к нему) о том, какому юзеру какие именно индикаторы разрешено менять, а это всё лишнее - нам нужен только четвёртый скролллок, его и делаем без лишних ухищрений.
А уметь надо произвольный.
Ну я ж написал - chmod. Тот, кто в состоянии грамотно написать программу, точно знает и про chmod. А кто не в состоянии - лучше чтоб и не знал.
требует квалификации школьника-самоучки а не прогера
Вот именно. Сначала ты пишешь echo, потом начинаешь считать себя хакером и пишешь что-то сложнее, устраивая дыры. Нет, сначала надо научиться а потом уже писать. Простые школьные скрипты для себя запускай от своего юзера где они не создадут дыр. Причём, даже с echo нуб может устроить дыру, например он решит передавать номер или название индикатора аргументом, разумеется не проверит, что там что-то валидное:
#!/bin/sh
DEVNUM=$1
KEYNAME=$2
VALUE=$3
echo $VALUE > /sys/class/leds/input$DEVNUM::$KEYNAME/brightness
и исполнит в итоге строку вида
echo chmod 4750 /home/hacker/crack.bin > /sys/class/leds/input4::scrolllock/../../../../../../../../../../../tmp/qwer/brightness