Показать сообщение отдельно

  #2  
Старый 20.12.2007, 00:53
Евгений Минаев
Познающий
Регистрация: 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  -> 
PHP код:
mysql SELECT 5 BETWEEN '1' AND '6' -> 
PHP код:
mysql SELECT 5 BETWEEN  1  AND  4  -> 
PHP код:
mysql SELECT 5 BETWEEN '1' AND '4' -> 
IN(VALUE1,VALUE2) - Вощвращает 1 , если запрос равен одному из значений в IN(),в противном случае mysql вернет 0.Если все
значения - константы,они обрабатываются в соответствии с типом запроса и сортируются с использованием бинарного дерева.То есть
запрос выполнится быстро если все переменные однотипны.Значения регистрозависимы.

PHP код:
mysql SELECT 1 IN (2,3,4,5,1)   -> 
PHP код:
mysql SELECT 1 IN (2,3,4,5,'1') -> 
PHP код:
mysql SELECT 1 IN (2,3,4,5,0)   -> 
PHP код:
mysql SELECT 1 IN (2,3,4,5,'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..
 
Ответить с цитированием