Просмотр полной версии : SQL-inject в Invision Power Board
1ten0.0net1
12.09.2006, 14:35
Странно, что до меня никто не задал подобный вопрос (наверное, все читают только русский bugtraq):
mySQL query error: SELECT * FROM ibf_sessions s WHERE s.running_time > 1158056188 ORDER BY running_time desc LIMIT -999,25
Насколько я знаю синтаксис union, он не катит после LIMIT. AND вроде тоже не подставить, так что тогда делать?
Все, придумал. Драбоать только надо. Кто поможет?
sort_key=click&st=(ascii(lower(substring(USER(),1,1)))%3E100),25
Кто подскажет - как в этом запросе найти разницу (во внешнем виде страницы) между запросом, возвращающим единицу, и возвращающим нуль.
Нашел разницу - строк на одну меньше. И все равно запрос не катит. Блин.
Вопрос снят, там фильтры.
Вот и поговорил сам с собой ))
1ten0.0net1
12.09.2006, 19:09
Вот и поговорил сам с собой ))
Жаль, что только я могу ответить себе что-нибудь кроме гы.
SladerNon
13.09.2006, 00:22
там фильтруется все кроме номеров. Буквы режуться :)
да и после Limit, Union не может работать, как все знают :), конечно если ты только не нарыл какой нить секретнейший новейший способ ))))))
че то я не понял
инъекция после limit.
Довольно части возможность SQL инъекции возникает внутри параметра, передающегося к limit. Это может быть номер страницы и тд и тп.
Практика показывает, что все вышесказанное может быть применено и в этом случае.
MySQL корректно реагирует на запросы типа:
Select ... limit 1,2 union select....
Select ... limit 1 union select....
Если необходимо чтобы первый подзапрос вернул пустой результат, необходимо искусственно задать большие смещения для первого запросы:
Select ... limit 99999,1 union select.... Либо, Select ... limit 1,0 union select....
попробуй ввести AES_DECRYPT(AES_ENCRYPT(-999,25/**/union/**/select/**/null/*,0x71),0x71)
SladerNon
13.09.2006, 00:53
я не имел ввиду, а не уточнил почему не будет в данном случае работать LIMIT :)
LoFFi
думал Вы заметите, что там ORDER BY, и вот по этому после LIMIT и не будет работать UNION :)
SladerNon
13.09.2006, 00:58
SELECT * FROM ibf_skin_templates limit 1,0 union select 1,1,1,1,1,1,1,converge_email FROM ibf_members_converge
да будет канать..
там вот такой запрос: SELECT * FROM ibf_sessions s WHERE s.running_time > 1158056188 ORDER BY running_time desc LIMIT 9,25
мы к нему, если бы даже смогли что нить добавить, то добавили бы: union select 1,1,1,1,1,1,1,converge_email FROM ibf_members_converge
то есть если всё в месте, то получили бы:
SELECT * FROM ibf_sessions s WHERE s.running_time > 1158056188 ORDER BY running_time desc LIMIT 9,25 union select 1,1,1,1,1,1,1,converge_email FROM ibf_members_converge/*
ну и в ответ получили бы Incorrect usage of UNION and ORDER BY
SladerNon
13.09.2006, 01:12
Вопрос снят, там фильтры.
Да даже если бы и фильтров не было, все ровно бы не работало :)
да, не заметил order by. короче забей на багу =)
1ten0.0net1
13.09.2006, 20:43
Да даже если бы и фильтров не было, все ровно бы не работало :)
Я имел ввиду - буквы режет.
SladerNon
14.09.2006, 15:36
1ten0.0net1
Я говорю про то, что работать не будет не из-за фильтров, а из-за того что там ORDER BY :)
Даже если бы буквы не резались, все ровно бы не работало!
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot