Какое значение SQL имеет значение 0xназначB7D7E? - PullRequest
7 голосов
/ 20 октября 2010

Просматривая некоторые журналы apache, я несколько раз сталкивался со следующим шаблоном (декодированный URL):

GET /foo.php?id=1 and union select 0x5E5B7D7E,0x5E5B7D7E,0x5E5B7D7E,... --

Очевидно, что это попытка внедрения SQL. Но почему постоянная, показанная выше? Я не понимаю, как это может быть особенно значительным, хотя, кажется, оно появляется довольно часто.

Для чего стоит указанная выше константа отображается в следующие символы ASCII: "^[}~" или "~}[^", если вы измените порядок байтов. Десятичное значение равно 1,583,054,206, а в восьмеричном 013626676576. Код не соответствует полезной последовательности инструкций x86.

Поиск в Google по числу показывает просто остатки попыток использовать ту же атаку SQL-инъекцией на других сайтах - никакой информации о самой атаке.

У кого-нибудь есть понимание?

1 Ответ

8 голосов
/ 20 октября 2010

Это значение является уникальным идентификатором. Если на странице появляется значение «^[}~», то бот знает, что вы уязвимы для внедрения SQL-кода, тогда как если бы значение «0x5E5B7D7» появилось, значит, оно не было интерпретировано вашим сервером SQL. Этот sql-тест инъекций, вероятно, начинается только с одной 0x LocationB7D7E, а затем продолжается до предварительно определенного числа из них. Это связано с тем, что с помощью выбора объединения объединение должно возвращать то же количество столбцов, что и выбор, к которому он добавляется, и бот должен принудительно перебирать это значение.

Обратите внимание, что этот тест не будет работать с слепой инъекцией sql, поскольку значение "^[}~" не будет отображаться. Тест вслепую sql-инъекция для mysql будет вводить вызов sleep(30) или BENCHMARK(5000000,md5(1337)). Это заставит страницу загружаться за несколько секунд, что означает, что этот SQL-код выполняется.

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