![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
SamDark |
|
|||
![]() Добрый кот ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1424 Регистрация: 25.7.2006 Где: Voronezh Репутация: 10 Всего: 38 |
Очень похоже. Вариантов достать структуру базы (без доступа к файловой системе) не много. Так как YII_DEBUG отключен, их остаётся все-ничего:
1. phpmyadmin или аналог с дырой. 2. Очень кривой код приложения. Параметры подставляются прям в строку аля Yii::app()->db->createCommand("select * from table wher x = ".$id). При этом id не фильтруется. Так как вариант №2 ещё надо хорошо поискать (то есть относительно нерентабельно), вероятнее всего это №1. Добавлено через 1 минуту и 47 секунд Если отдали index.php, всё серьёзней (хотя для Yii он стандартный). Доступ к серверу по FTP? Уже посканили все машины с доступом к FTP антивирусом? Логи я бы всё-таки посмотрел. Туда много всего пишется. -------------------- rmcreative.ru — Это жжж неспроста... yiiframework.ru — О фреймворке Yii на русском. reggi — здесь я регистрирую домены |
|||
|
||||
Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 41 Всего: 60 |
2 вариант с дыркой мне кажется более правдоподобный учитывая историю проекта которую я знаю я за 1,5 года услышал в кратце: первый разработчик был фрелансером который обосрался и загулял и пришлось в быстрые сроки писать это за него без знаний самого Yii весь код был написан, где в модели, где во вьюхи закинута логика. Знаний с фремворком было тогда полный 0. Но проект за 1-2 недели был дописан и сдан полусырым и был запущен и набирал популярность.
Был редизайн и рефакторинг кода с оптимизацией естественно знаний появилось гораздо больше больше новые фишки появились в проекте ###код который тормозил YII был переписан полностью как надо на идеологию Yii. Да видимо не все переписали, что я и думаю первое что будем смотреть это на написанный код и прямые запросы. через Sql иньекции можно спокойно подгрузить и выдернуть пароли от сервака а дальше заходи как родной. -------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
Sentox |
|
|||
как то так ![]() ![]() Профиль Группа: Участник Сообщений: 392 Регистрация: 27.1.2009 Где: Зимбабве Репутация: 7 Всего: 7 |
Я с самого начала и предложил этим заняться, так как в YII есть простое исполнение запросов без обработки параметров. Поэтому и стоит логи посмотреть на всякие заморочки с инъекциями, особенно в день выявления. Поиск производить на недопустимые символы и экранирование по логу и ограничить пока именно датой взлома. |
|||
|
||||
Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 41 Всего: 60 |
Нашлась гадость, это оказалось обычная sql инекция через адрс. строку путем созданием временной таблицы и вытаскивание доступов от сервера через БД и выводом на страницу.
Виновный в халатности уже наказан: временным запрета к печенькам пока все не устранит). Это сообщение отредактировал(а) Sanchezzz - 28.9.2012, 19:51 -------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
SamDark |
|
|||
![]() Добрый кот ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1424 Регистрация: 25.7.2006 Где: Voronezh Репутация: 10 Всего: 38 |
SQL формировал строкой?
-------------------- rmcreative.ru — Это жжж неспроста... yiiframework.ru — О фреймворке Yii на русском. reggi — здесь я регистрирую домены |
|||
|
||||
Sentox |
|
|||
как то так ![]() ![]() Профиль Группа: Участник Сообщений: 392 Регистрация: 27.1.2009 Где: Зимбабве Репутация: 7 Всего: 7 |
Да, действительно, как сформировалась "дырка". Это действительно важно.
|
|||
|
||||
Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 41 Всего: 60 |
Да, обычная строка запроса, вот почему я всегда талдычу использовать "Подготовленные выражения (prepared statements)" со всеми людьми которыми я работаю и работал). -------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Sanchezzz, А как с помощью SQL инъекции можно получить содержимое файла index.php?
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 41 Всего: 60 |
Путем завладения полного доступа от сервера)... Если мускул работает оттого же пользователя что и вся система то в инекции можно подгрузить доступы через load_file вывести на экран и заходи как родной. -------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Вот еще одна уязвимость ;) Операции работы с файлами в mysql действительно нужны? -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 41 Всего: 60 |
ksnk, скорее всего нет. Спасибо что напомнили нужно админа наказать, введи лишения кофе утром).
-------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Это слишком жестоко. А работать кто утром тогда будет? ![]() -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
Pumbaba |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 5.10.2012 Репутация: нет Всего: нет |
Вообще очень хороший вопрос. ![]() Способ понятно что уже запоздавший - но если нет автодокументрирования - т.н. "Бортовой журнал". Кто-то может сказать что это скучно, не нужно и кто этим пользуется, но по факту - помогает очень сильно. Было пару раз "приятных ситуаций" подобного рода, и ребята в команде хорошо что подобные записки вели. За пару дней смогли поднять все нюансы 3хлетнего проекта и мы смогли определится откуда ноги растут и на каком этапе могли допустить ошибки. Вообще советую поискать инструменты автоматизации самой начальной стадии проекта (только разобрать изначально по винтику!), т. к. уже столько глупых ошибок перевидал там где его не должно быть — потом когда в голову летит как ты пишешь пачка листов - за голову хватаешься и ищешь где и откуда ветер дует. С недавних пор взяли на вооружение два дополнения под Yii - Boilerplate и backvendor. Довольно похожие штуки но, как по мне, второй — будет по интересней. Клипают админку и вэбсервис с нуля минут за 5. Потом только проверяешь сидишь и заносишь в «бортовой журнал» что, когда и где менялось. |
|||
|
||||
Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 41 Всего: 60 |
Pumbaba, У нас есть собственная электронно документированный оборот по проектам и поддержке, этого хватает, что бы обслуживать сотни клиентов и вести что мы делали по проекту а что нет.
Проект изначально был начат не нами а фрелансером с Украины, который потом пропал и досталось в наследство его костыли и незаконченный проект и крайне малый срок. Да и документирование всего кода, кроме меня некто не делает я покрываю его полностью когда пишу даже себе в убыток( было пару замечаний и споров с коллегами почему так много) ) Каждую функцию входные параметры, результат, каждый класс, каждый метод, сложные конструкции, циклы, начало вхождения условий это 20-45% покрытия кода. [ушел пить кофе] ... Я честно не перевариваю фремворки и уже не люблю Yii за его цепочки вызовов классов за длинный названия методов (не придерживались правилу названия методов в 4-6 символов, возможно и за ограниченного запаса словарного запаса). Но я пишу на Yii для того что бы легче было поддерживать проект дальше после меня. Фремворк или движок cms, это единственный способ прийти хотя бы к какому подобию стандартизованной работы в команде, конторе(фирме) Вопрос заданный в этом топике и найденная ошибка была сделана не мной, я просто помогал ее устранить. Я всегда пишу безопасный код и проверяю все что приходит и загружается, это как игра в шахматы нужно думать на пару шагов в перед и представлять проблемы и решения в голове) На ошибках чужих своих учатся. Спасибо за совет о Boilerplate и backvendor(хабр) посмотрю как будет время. -------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
Sentox |
|
|||
как то так ![]() ![]() Профиль Группа: Участник Сообщений: 392 Регистрация: 27.1.2009 Где: Зимбабве Репутация: 7 Всего: 7 |
Sanchezzz,
Охохо ![]() А какие же короткие названия. И да, правила чистого кода наоборот придерживаться более ёмких названий програмного кода не жели писанины в комментариях. "Не комментируйте плохой код - перепишите его" (Брайан У.Керниган и П.Дж.Плауэр) Комментарии в большинстве своём это "шум" повторяемый то что описывает код, при чём они (комментарии) так же начинают требовать поддержки, так как если код меняет свой алгоритм то непосредственно нужно менять и комментарий. Код должен быть читаем, как книга, а не догадываться по "4-6 символам" что хотел сказать этим разработчик. Лучший комментарий это имя переменной, метода или класса. Если измениться алгоритм изменится и код. В этом я с Р.Мартином и Макконнеллом согласен на 100% Это сообщение отредактировал(а) Sentox - 5.10.2012, 19:24 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |