![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Ripper |
|
|||
![]() Lonely soul... ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 30.6.2004 Где: г. Москва Репутация: 1 Всего: 23 |
Добрый вечер.
Допустим, имеется URL: site.ru/image/get/5/, где 5 - айдишник картинки. На сервере ничего не фильтруется,
Как здесь провести инъекцию? Вот почитал примеры, типа можно приписать WHERE id='5' OR 'x'='x', и можно вытащить все картинки например. Но ведь если парсится URL, то пробел заменяется на %20, и в запрос идет %20 вместо пробела, и выскакивает ошибка на получении данных ($data = $result->fetch_array(), но $data = false) Если id передавался бы как get параметр, то тогда все получается, а в случае если парсится url? Спасибо. -------------------- "Он знает: надо смеяться над тем, что тебя мучит, иначе не сохранишь равновесия, иначе мир сведет тебя с ума" - Над кукушкиным гнездом |
|||
|
||||
Arantir |
|
||||
Рыбак без удочки ![]() ![]() Профиль Группа: Участник Сообщений: 960 Регистрация: 18.11.2012 Репутация: 16 Всего: 55 |
А вы уверены? То есть, нет ли где-то там обратной конвертации ссылки в текст? Чтобы могли работать ссылки на подобии /user/Иван, ведь не во всех случаях можно заменить кириллические символы латинскими. Не каждый запрос является потенциальной дырой. Чтобы выбрать что-то из БД надо знать ее структуру. И то не факт, что даже при успешном запросе это будет выведено на экран, например, если php выводит данные по названиям полей, то надо как минимум подменить их аналогичными алиасами в злополучном запросе, иначе они просто пройдут мимо вывода. Кроме того, на СУБД есть неплохая система прав и полномочий. Обычно СУБД-пользователю, которым пользуется сайт, совершенно не нужно иметь прав на вывод списка таблиц, удаление таблиц и подобное, а уж тем более доступа к базам 'mysql' и 'information_schema'. Так что и узнать структуру БД с помощью инъекции может не представляться физически возможным. Пример явной дыры, это что-то вроде:
Тем не менее, разумным является создание запросов, в которых невозможно вообще ничего, кроме заранее предусмотренного разработчиком. Например, допустим, значение фильтруется как числовое. А что будет, если ввести туда 999999999999999? В лучшем из плохих случаев будет ошибка php, а в худшем может и ошибка SQL с куском запроса и названиями полей и таблиц. Кстати, старые добрые предподготовленные запросы спасают сразу от многих проблем. Штука, поверенная временем =) Это сообщение отредактировал(а) Arantir - 1.4.2013, 18:46 -------------------- interface Жопа { // ATTENTION: has to be implemented by every class of the project for proper project work } |
||||
|
|||||
Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 14 Всего: 137 |
Эм, точно? Ввел число 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 - ничего плохого не произошло, написало лишь что rowset не найден. |
|||
|
||||
Arantir |
|
|||
Рыбак без удочки ![]() ![]() Профиль Группа: Участник Сообщений: 960 Регистрация: 18.11.2012 Репутация: 16 Всего: 55 |
А о точности утверждения сказано во второй части процитированного вами фрагмента =) Но если бы сам не встречал подобной проблемы — не писал бы. -------------------- interface Жопа { // ATTENTION: has to be implemented by every class of the project for proper project work } |
|||
|
||||
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
-------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |