|
Познающий
Регистрация: 12.11.2007
Сообщений: 70
Провел на форуме: 1214722
Репутация:
676
|
|
----[ NITRO ... ]
Не всегда при проведении атаки вида sql - injection возможно воспользоваться оператором union и единственным способом
получить информацию из таблицы является посимвольный перебор данных.Этот способ является универсальным для всех операторов,
будь то UPDATE,SET,DELETE или INSERT,так как даже модифицируя данные,поступаемые в таблицу,результат нас не всегда будет
устраивать из-за таблицы,не удовлетворяющей нашим потребностям.На примере всех типов запросов я покажу как быстро и грамотно
проделать перебор и получить требуемую информацию.
----[ FUNCTIONS ... ]
ASCII(STRING) - Возвращает числовое значение первого символа строки STRING или ноль в случае,если строка является пустой.
Работает в диапазоне от 0 до 2555.
PHP код:
mysql > SELECT ASCII(1) -> 49
PHP код:
mysql > SELECT ASCII('1') -> 49
PHP код:
mysql > SELECT ASCII('a') -> 97
PHP код:
mysql > SELECT ASCII('aa') -> 97
ORD(STRING) - Возвращает код первого символа строки STRING , вычисленного из числовых значений байтов,из которых он состоит.
Если же левый символ не многобайтный,работает как и функция ASCII.
(код 1 байта * 256) + (код 2 байта * 256^2) + (код 3 байта * 256^3)
PHP код:
mysql > SELECT ORD(1) -> 49
PHP код:
mysql > SELECT ORD('1') -> 49
PHP код:
mysql > SELECT ORD('a') -> 97
PHP код:
mysql > SELECT ORD('aa') -> 97
BETWEEN MIN AND MAX - Если выражение больше или равно MIN и меньше или равно MAX , то BETWEEN() возвратит 1 , иначе 0.
Если все элементы имеет один тип (например,числовой),то запрос сводится к выражению MIN <= QUERY AND QUERY <= MAX.До MySQL
4.0.5 в случае неоднотипных данных шло приведение к типу запроса.
PHP код:
mysql > SELECT 5 BETWEEN 1 AND 6 -> 1
PHP код:
mysql > SELECT 5 BETWEEN '1' AND '6' -> 1
PHP код:
mysql > SELECT 5 BETWEEN 1 AND 4 -> 0
PHP код:
mysql > SELECT 5 BETWEEN '1' AND '4' -> 0
IN(VALUE1,VALUE2) - Вощвращает 1 , если запрос равен одному из значений в IN(),в противном случае mysql вернет 0.Если все
значения - константы,они обрабатываются в соответствии с типом запроса и сортируются с использованием бинарного дерева.То есть
запрос выполнится быстро если все переменные однотипны.Значения регистрозависимы.
PHP код:
mysql > SELECT 1 IN (2,3,4,5,1) -> 1
PHP код:
mysql > SELECT 1 IN (2,3,4,5,'1') -> 1
PHP код:
mysql > SELECT 1 IN (2,3,4,5,0) -> 0
PHP код:
mysql > SELECT 1 IN (2,3,4,5,'0') -> 0
LOWER(STRING) - Возвращает строку STRING в которой все символы приведены к нижнему регистру в соответсвии с текущим набором
символов (по умолчанию ISO-8859-1 LATIN1)
PHP код:
mysql > SELECT LOWER('ITDEFENCE') -> itdefence
PHP код:
mysql > SELECT LOWER('ITDEFeNCE') -> itdefence
PHP код:
mysql > SELECT LOWER('itdefence') -> itdefence
PHP код:
mysql > SELECT LOWER(123) -> 123
SUBSTRING(STRING,POSITION,LENGTH) - Функцию копирует подстроку из строки STRING с позиции POSITION длины LENGTH
PHP код:
mysql > SELECT SUBSTRING('itdefence',4) -> efence
PHP код:
mysql > SELECT SUBSTRING('itdefence' FROM 4) -> efence
PHP код:
mysql > SELECT SUBSTRING('itdefence',4,2) -> ef
PHP код:
mysql > SELECT SUBSTRING('itdefence',1,2) -> it
SUBSTRING_INDEX(STRING,DELIMITER,LENGTH) - Возвращает подстроку строки STRING до позиции LENGTH после разделителя DELIMITER.
Если значение LENGTH положительное,возвращаетс все,что лежит слева от DELIMITER.Если значение LENGTH отрицательное,возвращаетс все,
что лежит справа от разделителя DELIMITER.
PHP код:
mysql > SELECT SUBSTRING_INDEX('itdefence.ru', '.' ,2) -> itdefence.ru
PHP код:
mysql > SELECT SUBSTRING_INDEX('itdefence.ru','.',-1) -> ru
PHP код:
mysql > SELECT SUBSTRING_INDEX('itdefence.ru','.',1) -> itdefence
Последний раз редактировалось Евгений Минаев; 20.12.2007 в 00:56..
|