Что означает запрос SQL-инъекции, такой как приведенный ниже? Что будет ответом на это - PullRequest
0 голосов
/ 03 июля 2018
 ' AND ascii(substring((SELECT concat(login,0x3a,password) from users limit 0,1),1,1))>96# 

Я работаю на машине для пчелиного ящика и практикую слепую инъекцию SQL. Я знаю, что делают ascii и подстрока, я также знаю, что делает concat, но почему мы объединяем логин и пароль вместе, поскольку нам нужно сгенерировать один символ ascii? Почему у нас было 1,1 в конце.

Ответы [ 2 ]

0 голосов
/ 03 июля 2018

Он попытается получить 'user' и 'password' из первой строки таблицы с именем 'users', объединит их с двоеточием в середине (dave: passw), затем примет первый символ этого, и проверяет, является ли этот первый символ строчной буквой или символы {| } ~

Не знаю, почему эта информация была бы полезна злоумышленнику, но иногда целый набор тестов складывается в информацию, даже если каждый отдельный тест не имеет значения.

0 голосов
/ 03 июля 2018

Вы можете проверить полный код ASCII здесь:

https://www.ascii -code.com /

Как видно из Интернета, код ASCII 96:

`

любой символ после этого (число ASCII больше 96) являются действительными английскими символами (в нижнем регистре) независимо от этих специальных символов, что означает, что для пользователя безопасного входа в систему по крайней мере это должно быть имя человека, начинающееся с этих символов ( в нижнем регистре).

Таким образом, вы взяли первый символ вашей объединенной строки входа в систему SUBSTRING(long_string,1,1), которая пытается проверить, начинается ли учетная запись лица, выполняющего вход, с английского символа (в нижнем регистре)

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