Что пытается сделать NV32ts и его SQL Injection Attack? - PullRequest
5 голосов
/ 12 января 2009

В последнее время я получаю несколько атак на мой сайт, используя User-Agent NV32ts.

Все они являются некоторым вариантом следующих атак внедрения на переменную строки запроса (где 99999 представляет допустимое значение строки запроса, атака добавляется к значению):

(для удобства я кодировал следующие атаки)

999999 And char(124)+(Select Cast(Count(1) as varchar(8000))+char(124) From [sysobjects] Where 1=1)>0

или

999999' And char(124)+(Select Cast(Count(1) as varchar(8000))+char(124) From [sysobjects] Where 1=1)>0 and ''='

или

999999' And char(124)+(Select Cast(Count(1) as varchar(8000))+char(124) From [sysobjects] Where 1=1)>0 and ''='

Я считаю, что sysobjects как-то связан с главной базой данных Sql Server, но я не могу понять, чего они пытаются достичь.

Edit: Теперь я видел те же вещи с двумя разными пользовательскими агентами:

  • NV32ts
  • Mozilla / 4.0 (совместимо; MSIE 7.0; Windows NT 5.1; InfoPath.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; WWTClient2 )

Ответы [ 3 ]

5 голосов
/ 13 января 2009

Я считаю, что они пытаются выяснить, является ли ваше приложение уязвимым для SQL-инъекций.

Символ (124) переводится в | символ, который заставляет весь результат запроса рассматриваться как результат запроса с двумя присоединенными каналами. Таким образом, вы получите количество таблиц в вашей базе данных с двумя подключенными каналами (например, | 1428 |). Который при сравнении с 0 в> 0 вызывает ошибку, потому что | 1428 | не является int.

Так что, если ваше приложение открыто для SQL-инъекции, они теперь знают это (потому что действительное значение параметра вызвало ошибку приложения). Они могут также знать, что у вас плохая обработка ошибок, если они ошибочно поднимают базу данных SQL. Если у вас есть плохая обработка ошибок, они также знают, сколько у вас таблиц (не знаю, какая польза от них, но чем больше информации, тем лучше).

Множество попыток внедрения SQL-кода действительно приводят к сбою приложения, чтобы узнать, что вы уязвимы. Если вы хорошо справляетесь с ошибками, они могут попытаться скрыть SQL-инъекцию.

Проверьте это , чтобы увидеть это подробно.

Я надеюсь, что вы не уязвимы, и если вам повезет!

5 голосов
/ 12 января 2009

Я прочитал это двумя способами, но я не уверен на 100%, что:

  1. На данный момент они просто ловят рыбу. Сценарий ищет веб-сайты, которые имеют как открытые инъекции, так и доступ к таблице sysobjects на сервере sql. Эта таблица предоставит список всех таблиц и столбцов (и их типов) в базе данных. Если страница на самом деле возвращает результат, а не выдает ошибку, сценарий запишет это для дальнейшей более детальной атаки. В конечном итоге вы получите вредоносный код JavaScript, добавленный к каждому текстовому столбцу (varchar, nvarchar, char, nchar, text) каждой строки каждой таблицы во всей базе данных. Я думаю, что это более вероятный вариант.
  2. Создает выражение, которое всегда будет возвращать true, возможно, позволяя им обойти вашу систему аутентификации. Это кажется менее вероятным, потому что ссылка на sysobjects делает его излишне сложным. Также: они использовали And, а не Or.
0 голосов
/ 31 мая 2009

У HP есть бесплатный инструмент, который вы можете запустить, чтобы проверить, есть ли у вашего сайта (или любого другого сайта) уязвимости SQL-инъекций, называемые sdrawlr. Вы можете скачать его здесь :

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...