tag:blogger.com,1999:blog-74908175706521803122024-03-06T03:00:22.062-03:00Security HackSitio personal de Ariel M. Liguori De GottigAriel M. Liguori de Gottighttp://www.blogger.com/profile/02714929794781699420noreply@blogger.comBlogger7125tag:blogger.com,1999:blog-7490817570652180312.post-44696602674382810222009-01-26T10:20:00.007-02:002009-01-26T11:04:51.836-02:00RequestPolicy: Protegiéndonos de CSRF, Clickjacking y más.<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.requestpolicy.com/images/flag-large.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 128px; height: 128px;" src="http://www.requestpolicy.com/images/flag-large.png" alt="" border="0" /></a><br /><br />Hace unos días estuvimos hablando del creciente <a href="http://sechack.blogspot.com/2009/01/clickjacking-cuidado-dende-clickeas.html">problema del Clickjacking</a> y surgió entonces una pregunta básica, ante un problema siempre buscamos la solución, pero ante estos temas el camino parecía sinuoso y oscuro, ¿qué hemos conseguido entonces? <span style="font-weight: bold;">RequestPolicy</span>.<br /><br /><span style="font-style: italic;">¿Qué es RequestPolicy?</span><br />Un addon para Firefox que nos permite tener el control sobre todas las peticiones de cross-site que pasen sobre nuestro cadáver/browser.<br /><br /><span style="font-style: italic;">¿Qué logramos con ésto?</span><br />Pues tener control sobre una infinidad de peticiones que no necesariamente serán las que nosotros hacemos ;).<br /><br /><span style="font-style:italic;">¿Qué quiere decir ésto?</span><br />Que no caeremos más en la trama de enviar peticiones o consultas falsas (<a href="http://en.wikipedia.org/wiki/Cross-site_request_forgery">CSRF</a>), ni tampoco dejaremos que esos pequeñísimos iframes se carguen en la página que estamos visitando (<a href="http://www.kriptopolis.org/clickjacking">clickjacking</a>).<br /><br />Actualmente RequestPolicy nos brinda su versión 0.5.2 y es desarrollada por Justin Samuel. Aunque hay muchas mejoras en camino ya es una obra digna de tener en nuestra PC ayudándonos en la interminable tarea de la seguridad.<br /><br />Pueden descargarse RequestPolicy desde la página de <a href="https://addons.mozilla.org/en-US/firefox/addon/9727/">addons firefox</a>.<br />Pueden encontrar un breve tutorial en la <a href="http://www.requestpolicy.com/">página oficial del proyecto</a>.<br /><br />Algo más, se ve que lo que dijimos en áquel post no estaba tan errado, por lo cual seguimos insistiendo que el <a href="https://addons.mozilla.org/es-ES/firefox/addon/722">addon NoScript</a> <img src="https://addons.mozilla.org/en-US/firefox/images/addon_icon/722/1232179624" />sigue siendo más que valioso, úsenlo!Ariel M. Liguori de Gottighttp://www.blogger.com/profile/02714929794781699420noreply@blogger.com0tag:blogger.com,1999:blog-7490817570652180312.post-91521383800824759672009-01-23T11:31:00.006-02:002009-01-23T14:52:11.088-02:00Clickjacking: Cuidado dende Clickeas!Jeremiah Grossman y Robert Hansen hacé tiempo han delatado la presencia de éste nuevo tipo de...¿ataque? pues sí. <br /><br />¿Qué es el ClickJacking?<br />Si bien el nombre es intuitivo me limitaré a decir que es una técnica utilizada para disfrazar vínculos, ¿qué significa esto? simple, en una determinada pagina un link a google puede dejar de ser lo que parece y redirigirte a otros sites, e inclusive puede redirigirte al _'mismo'_sitio_alterado_(ataques de pishing a la vista), en síntesis una vez que simplemente clickeas puedes ser el culpable del fin de tu ordenador/datos/etc.<br /><br />¿Como prevenirlo o detectarlo?<br />Realmente no estoy al tanto de métodos directos de detección/evitación de este tipo de ataques, tengo entendido que el addon de Firefox NoScript puede ser de ayuda, no obstante prefiero tener cuidado y mirar bien donde clickeo (Not with my eyes, of course).<br /><br />Datos de interes:<br /><a href="http://www.sectheory.com/clickjacking.htm">SecTheory</a><br /><a href="http://www.kriptopolis.org/clickjacking">Kriptopolis</a><br /><a href="http://www.securityartwork.es/2009/01/23/ofuscacion-de-la-barra-de-estado-en-firefox-305-clickjacking-poc/">Security Art Work</a>Ariel M. Liguori de Gottighttp://www.blogger.com/profile/02714929794781699420noreply@blogger.com0tag:blogger.com,1999:blog-7490817570652180312.post-13256423836264036602009-01-09T23:45:00.000-02:002009-01-09T23:45:04.994-02:00ojo! No subestimes los XSS!Debido al post que publique recientemente, me he sentido preocupado al decir lo ineficaz que pueden resultar los XSS. Ésto me hizo recordar un post de <a href="http://blog.s21sec.com/">s21sec</a> en donde claramente nos decían que no se debe subestimar los XSS, <span style="font-style:italic;">¿porque?</span> Mírenlo <a href="http://blog.s21sec.com/2008/06/no-subestimes-tus-cross-site-scriptings.html">aquí</a> y entiendan mejor las cosas ;).<br /><br />Algo a destacar es que los XSS son las vulnerabilidades más comunes en páginas web. Algo preocupante y que además llama la atención ya que es relativamente sencillo solucionar este tipo de problemas.<br /><br />Saludos,Ariel M. Liguori de Gottighttp://www.blogger.com/profile/02714929794781699420noreply@blogger.com0tag:blogger.com,1999:blog-7490817570652180312.post-39408046739333852822009-01-09T14:13:00.002-02:002009-01-09T14:17:16.687-02:00XSS - Cross Site ScriptingHoy he vuelto a desenterrar este tema, ya por mi olvidado debido a su limitado e ineficaz uso (igualmente, siempre hay alguien a quien podremos hacer caer ¬¬ ). Sin embargo, vengo aquí solo para mostrarles un par de documentos con buena información referente al tema:<br /><br /><a href="http://www.cis.upenn.edu/~cis551/XSS.pdf">XSS - Cross Site Scripting Explained (PDF en inglés).</a><br /><a href="http://www.soulblack.com.ar/repo/papers/minituto-xss.pdf">Cross Site Scripting - By Soulblack (PDF en Español).</a><br /><br />Saludos,Ariel M. Liguori de Gottighttp://www.blogger.com/profile/02714929794781699420noreply@blogger.com0tag:blogger.com,1999:blog-7490817570652180312.post-40249995663360586112008-12-30T08:21:00.010-02:002008-12-30T10:36:49.495-02:00Análisis de Phishing en Standard Bank (30/12/2008).-Hoy por la mañana he recibido un curioso correo de Standard Bank SA:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHuwuGEOUCyDak2ejOpWkDpmor0HWEyhj5HV4Gq6BRZnhvLm-XI_zHvr9GBKJ-9A1haeyJk9iTb2YytPtfs3PhkepK5TkoCCwQjNAeRqHuCRozNnf3oh-63U9NuqBpi25SRQhfkktGiqg/s1600-h/ej_pishing01.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 241px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHuwuGEOUCyDak2ejOpWkDpmor0HWEyhj5HV4Gq6BRZnhvLm-XI_zHvr9GBKJ-9A1haeyJk9iTb2YytPtfs3PhkepK5TkoCCwQjNAeRqHuCRozNnf3oh-63U9NuqBpi25SRQhfkktGiqg/s320/ej_pishing01.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5285526660184946994" /></a><br /><br />Todo parece muy correcto, sin embargo, nadie se cree que Standard Bank necesite verificar nuestros datos. Al margen de eso, el link que aparece en el email es el correcto de Standard Bank aunque si se fijan en detalle esos links nos llevaran a otras URL's, no a las que tienen configuradas, dichas páginas son:<br /><br />http://standardbank.com.ar.webempresas.idkey26914511442100136208.secupends8.cn/ar_pers/ (para personas)<br /><br />http://standardbank.com.ar.webempresas.idkey2323415925205188159167.secupends8.cn/ar_corp/ (para empresas)<br /><br />Hemos encontrado algo interesante, estos no parecen los sitios de Standard Bank, veamos si encontramos en ellos algo interesante (explorando un poquito el código fuente):<br /><pre><code>var dummy = false;<br />var procesando = false;<br /><br /> function SetCookie (name, value) {<br /> expireDate = new Date;<br /> expireDate.setDate(expireDate.getDate()+10);<br /> document.cookie = name + '=' + value + ';expires=' + expireDate.toGMTString();<br /> }<br /><br /> function GetCookie (name) {<br /> var arg = name + "=";<br /> var alen = arg.length;<br /> var clen = document.cookie.length;<br /> var i = 0;<br /> while (i < clen) {<br /> var j = i + alen;<br /> if (document.cookie.substring(i, j) == arg)<br /> return getCookieVal (j);<br /> i = document.cookie.indexOf(" ", i) + 1;<br /> if (i == 0) break;<br /> }<br /> return null;<br /> }<br /><br /> function getCookieVal(offset) {<br /> var endstr = document.cookie.indexOf (";", offset);<br /> if (endstr == -1)<br /> endstr = document.cookie.length;<br /> return unescape(document.cookie.substring(offset, endstr));<br /> }<br /><br /><br /> function validateLogin (frmForm) {<br /> var strInput;<br /> var strError = '';<br /> var blnSucess = false;<br /> var strValidos = '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';<br /><br /> with (frmForm) {<br /> //Valido nombre de usuario<br /> strInput = usuario.value;<br /> if (strInput.length < 1) {<br /> strError += 'Debe ingresar el nombre de usuario.\n';<br /> } else if (strInput.length < 8 || strInput.length > 12) {<br /> strError += 'El nombre de usuario debe tener ente 8 y 12 caracteres.\n';<br /> }<br /> else<br /> {<br /> strIngr = strInput.split("");<br /> for(j=0; (j<strIngr.length); j++)<br /> {<br /> if (strValidos.indexOf(strIngr[j])==-1)<br /> {<br /> strError += 'Debe ingresar sólo números o letras';<br /> break;<br /> }<br /> }<br /> }<br /> //Valido clave<br /> strInput = password.value;<br /> if (strInput.length < 1)<br /> {<br /> strError += 'Debe ingresar una clave de acceso.\n';<br /> }<br /> else if (strInput.length < 8 || strInput.length > 8)<br /> {<br /> strError += 'La clave de acceso debe tener 8 caracteres.\n';<br /> }<br /> else<br /> {<br /> strIngr = strInput.split("");<br /> for(j=0; (j<strIngr.length); j++)<br /> {<br /> if (strValidos.indexOf(strIngr[j])==-1)<br /> {<br /> strError += 'Debe ingresar sólo números o letras';<br /> break;<br /> }<br /> }<br /> }<br /> }<br /><br /> if (strError) {<br /> alert (strError);<br /> blnSucess = false;<br /> } else {<br /><br /> blnSucess = true;<br /><br /> if ( dummy == false )<br /> {<br /> dummy = true;<br /> }<br /> else<br /> {<br /> alert ('Aguarde, su transaccion esta siendo procesada . . .');<br /> blnSucess = false;<br /> }<br /> }<br /> return blnSucess;<br /> }<br /><br />function validaNavegador()<br />{<br /> var valida = false;<br /> if(navigator.appName=="Netscape")<br /> {<br /> if(parseFloat(navigator.appVersion) >= 4.75)<br /> {<br /> // version correcta 4.75<br /> valida = true;<br /> }<br /> //return;<br /> }<br /> else<br /> {<br /> var version = new String(navigator.appVersion);<br /> var i = version.indexOf("MSIE ");<br /> if(i >= 0)<br /> {<br /> var fVersion = parseFloat(version.substring(i + 5))<br /> if(fVersion >= 5.5) // version correcta 5.5<br /> valida = true;<br /> //return;<br /> }<br /> }<br /> if(!valida)<br /> {<br /><br /> }<br /> else<br /> {<br /> document.frmLogin.usuario.focus();<br /> }<br />}<br /><br />function load()<br />{<br /> // document.frmLogin.usuario.focus();<br /> validaNavegador();<br />}<br /><br />function KBgo(check, link)<br />{<br /> if (check.checked == true)<br /> {<br /> this.location.href="https://www.standardbank.com.ar:443/cgi-bin/preprd.dll/bkb/access.do?" + link + "&kb=s";<br /> }<br />}<br /></code></pre>Bueno, esto habla por si solo, espera a que ingresemos nuestro user y pass, los obtiene y luego nos redirecciona a la pagina real de Standard Bank, todo típico en un ataque de Phishing, es el modus operandi que se encuentra en cualquier libro. Tengan cuidado y fijense bien adonde entran, las diferencias entre las páginas es nula.<br /><br />Saludos,Ariel M. Liguori de Gottighttp://www.blogger.com/profile/02714929794781699420noreply@blogger.com0tag:blogger.com,1999:blog-7490817570652180312.post-19526737742727388872008-12-30T01:00:00.000-02:002008-12-30T01:00:00.373-02:00Clonar ePassport.-Hoy he leído en la fabulosa <a href="http://freeworld.thc.org/">web de THC</a> una noticia publicada por vonJeek en la cual nos brinda toda la información necesaria para poder clonar <span style="font-style:italic;"><span style="font-weight:bold;">"nuestro"</span> </span>propio ePassport. Véanlo aquí:<br /><br />http://freeworld.thc.org/thc-epassport/<br /><br />Que no caiga en malas manos! ;)<br />Saludos,Ariel M. Liguori de Gottighttp://www.blogger.com/profile/02714929794781699420noreply@blogger.com0tag:blogger.com,1999:blog-7490817570652180312.post-29655007542395542352008-12-03T08:43:00.002-02:002008-12-03T09:07:37.082-02:00Uno más: Directory Traversal AttacksEsencialmente voy a describir este tipo de ataques, no porque sean complejos, efectivos o muchos menos nuevos. Simplemente tengo en mente la generacion de una buena y completa base de datos de ataques conocidos. Éste en particular vino a mi mente tras leer de él en el blog de <a href="http://www.acunetix.com/blog/">Acunetix</a>.<br /><br />¿Qué es un Directory Traversal Attack?<br />Como su nombre lo enuncia es un ataque en el cual se puede acceder a directorios (que no deberían ser visibles) mediante manipulación de las consultas que se realizan en la página víctima.<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.acunetix.com/general/images/misc/directory_traversal.gif"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 223px; height: 339px;" src="http://www.acunetix.com/general/images/misc/directory_traversal.gif" border="0" alt="" /></a><span id="fullpost"><br /><br />Supongamos que podemos ingresar a una URL de este estilo:<br />http://test.webarticles.com/show.asp?view=<span style="font-weight:bold;">oldarchive.html</span><br /><br />Como vemos se hace un referencia al archivo "oldarchive.html" que se encuentra en el directorio root en el que se ejecuta este sitio. Si cambiamos "oldarchive.html" por ../../../../../Windows/system.ini (i.e.) podremos acceder a información que debería estar oculta ante nuestro acceso.<br /><br />Otro ejemplo de ataque sería:<br />http://server.com/scripts/..%5c../Windows/System32/cmd.exe?/c+dir+c:\<br /><br />Aquí en realidad no se aprovecha un vulnerabilidad del código de la página como en el caso anterior sino que explotamos un vuln. del web server que nos permite ejecutar código remoto que pre-exista en el sistema.<br /><br />Vale la pena aclarar que el primer caso puede ser detectado alguna veces pero el segundo difícilmente se encuentre dando vueltas por la red :-)<br /><br />¿Como detectarlos?<br />Bueno, no pienso desvirtuar la idea de generar una especie de DB de ataques y demás por lo cual en breve subiré un post con esta información.<br /><br />Saludos,</span>Ariel M. Liguori de Gottighttp://www.blogger.com/profile/02714929794781699420noreply@blogger.com0