![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Aliance |
|
||||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 3 Всего: 137 |
Задумался, как работает SQL Injection?
Например, есть скрипт, который имеет такой код:
Пишу в поле с name="id" следующие строки:
Поидеи вернет правду, а что дальше из этого может выявить злоумышленник? Ну сделает он UNION а дальше что? Если данные выводяться все равно только их тех полей, которые запланированы? Или он как-то сохранит полученные данные файлом? Или он заменит как-то данные? Или что? В чем дырка-то? Явно туплю в концу дня |
||||
|
|||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 11 Всего: 261 |
Он может вынуть любую инфу из БД, а при очень удчном стечении обстоятельств и вывести ее в браузер
|
|||
|
||||
| SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 9 Всего: 401 |
Aliance, вот имхо неплохая статья по теме...
-------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
Aliance, а просто заслешить умным образом?
Это сообщение отредактировал(а) nerezus - 15.11.2006, 10:06 |
|||
|
||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 3 Всего: 137 |
А как он ее выведет, если вывод происходит только определенный полей? Поидеи мог бы, если сделал запрос второй с помощью union и поля во второй таблицы назывались так же как и в первой. Но такое маловероятно. А вынуть инфу как он сможет? Что-то вроде сделать дамп и сохранить в файл, так злоумышленник может поступить? Вы о чем? |
|||
|
||||
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
||||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 2 Всего: 360 |
Aliance, а так?
'; DROP mysql;-- |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 11 Всего: 261 |
mysql_query не позволит выполнить два запроса. DROP в качестве подзапроса не проходит. |
|||
|
||||
| Aliance |
|
||||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 3 Всего: 137 |
nerezus, прочтите тему внимательно! Я разве где-то српашивал, как обезопасить скрипт? Простите, но это я прекрасно знаю.
sergejzr, дело в том, что задача удаления или изменения данных не стоит. Стоит вопрос возможности выцарапывания админского пароля. Mal Hack, ну значит по идеи, в некоторых случаях можно не производить проверку безопастности? Вот структура БД и далее обрабатывающий ее код:
Тоесть, как мне кажеться, заполучить данные из другой таблицы не получиться. Кстати, почему-то ' и " в скрипте экранируються (слешем \), хотя в сорцах явно это не замечано. Меня интересует итог - дырка это или нет? |
||||
|
|||||
| SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 9 Всего: 401 |
Aliance,
В той статье как раз это приведено в качестве примера. Мое мнение - дырочка... а-ля замочная скважина.
-------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
| Mal Hack |
|
||||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 11 Всего: 261 |
Или. Применительно к данному случаю. У тебя идет выборка из таблица с админами. Проверяешь права. "Хакер" берет и пишет условие туда, такое что выборка вернет простого пользователя но с админскими правами. К примеру. SELECT `*` from `users` where user_name = $name AND `isadmin` = true Представляем себе инъекцию вида: $name = $name OR `isadmin` = false SELECT `*` from `users` where user_name = $name AND `isadmin` = true При условии, что результат запроса обрабатывается не по данным, а по mysql_num_rows = 1 Вот... Писал тупо, может и не совсем верно, но суть я думаю ты можешь понять.
Всегда надо.
Во-во.. Вырубаем из через .htaccess. |
||||
|
|||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 3 Всего: 137 |
SelenIT, ага, статью прочел, позновательно
Спасибо всем за комментарии, делаем вывод что дырка есть и скрипт написан не корректно! Пойду доложу владельцу скрипта |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Базы Данных | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |