Взлом веб-сервера
Привет, мне было поручено попытаться взломать проприетарную программу веб-сервера, которую использует моя компания, мне не особо повезло. Он построен в ц.
Он запускается с правами root, и я пытаюсь заставить его выполнять команды. Веб-сервер принимает команды, размещенные в URL, и выполняет эти команды с префиксом. Теперь я могу передать любую команду, например '&_cmd=gettimeout' или '&_cmd=rm'. Программа на самом деле будет запускать "префикс rm"
Префиксная программа попытается выполнить эту команду в наборе каталогов, из которых нет полезных команд unix, поэтому просто сообщит, что команда не найдена. Также невозможно передать пробелы в URL, такие как '&_cmd=rm%20-f', так как скрипт php преобразует пробелы в +. Есть ли способ отформатировать строку & _cmd для запуска реальных команд Unix?
Немного странная задача, но я учусь на курсах по безопасности, и моя работа пытается найти для меня какую-то работу относительно моего курса.
Спасибо за вашу помощь
1 ответ
Некоторые идеи, возможно, сработают, могут не сработать:
- Обратные Кавычки. Если повезет, они будут оценены раньше
prefix
пробеги. Без удачи они все равно могут служить вам как-то. - Если пробелы не работают, почему бы вам не попробовать другие виды пробелов? Там вкладка и многое другое.
- Вам необходимо выяснить, какие именно команды можно использовать, и выяснить, помогают ли они.
- Вы можете обнаружить переполнение буфера в одной из разрешенных команд. Обычно такие переполнения не являются угрозой безопасности (если вы берете на себя
vi
, вы не можете делать ничего, что вы не могли бы сделать в любом случае). Но в этом контексте вы можете использовать их. - Вы можете найти исполняемые файлы в
/proc/
, если вы можете туда добраться - он содержит ссылку на команду каждого процесса.