
16.07.2008, 08:42
|
|
Участник форума
Регистрация: 28.06.2007
Сообщений: 221
Провел на форуме: 836479
Репутация:
135
|
|
Сообщение от NamahS
Всем привет!
Есть вопросы по MSSQL.
Есть рабочая уязвимость, например:
/?part=npcs&id=1+OR+1=(select+db_name(1))-- и т.д. в db_name -- получаем все базы.
В ошибках типа Syntax error converting the varchar value 'ТО ЧТО ИНТЕРЕСОВАЛО' to a column of data type int. вытаскиваются значения таблиц, полей, значений, но только типа varchar...
Все другие типы ( int,binary и т.д.) не возвращаются!!!
Мозг сломал не пойму, что сделать можно. Пробовал привести искомые значения к типу nvarchar ( чтобы была ошибка преобразования в int). Например :
/?part=items&id=1+OR+1=(select+top+1+cast(id+as+nva rchar)+from+sa_names)--
или так /?part=items&id=1+OR+1=(select+top+1+convert(nvarch ar,id)+from+sa_names)--
...значения не возвращаются...
И самое паршивое то, что запятые фильтруются даже в url encode %2C....и последний запрос интерпретируется как convert(nvarcharid)...
Как-то можно в таком случае, в запросе спровоцировать ошибку приведения типов или как еще....нужно выводить типы int и Binary....
Заранее ОГРОМНОЕ СПАСИБО !!!
У тебя условие:
/?part=npcs&id=1+OR+1=(select+db_name(1))
ошибка генерится в части OR 1=(~запрос~)
при выводе в результате запроса данных типа int или binary ошибка конвертации не генерится, просто не выполняется равенство. При выводе типов int, binary экспериментируй с типом левой части приравнивания (в данном случае замени единичку).
Последний раз редактировалось Светлый; 16.07.2008 в 08:56..
|
|
|