Inyecciones HTML.Este tutorial fue escrito por rEKosPoll - PXLZ TEAM -Desgraciadamente me he dado cuenta que muy pocos programadores de los mas reconocidos y utilizados CMS (content manage system) o Foros de Internet hacen las comprobaciones correctas de sus códigos a la hora de recoger y almacenar información enviada por los clientes de dichos sitios, muchos de los sitios que utilizan estos sistemas están vulnerables a muchos tipos de ataques, ya sean inyecciones SQL o inyecciones HTML o muchas otras formas de ataque que se pueden realizar sobre ellos, pero hoy solo hablaremos de HTML Injection que es la forma mas fácil y común de encontrar estas vulnerabilidades.
Hace un tiempo el famoso PHPNuke que hizo aun mas famoso por la cantidad de vulnerabilidades en su código y permitía a casi cualquier persona tomar los rangos de administración de los sitios que lo usaban, también esta el ejemplo de las versiones anteriores a la 2.10 de phpBB, el foro mas usado en Internet donde dejaban muchas puertas abiertas a los intrusos y creo que si curioseamos un poco en los códigos de dichos programas (y muchos mas) nos daremos cuenta que aun existen vestigios de esas vulnerabilidades, también esta claro que no solo los CMS y los Foros poseen estos problemas, hay muchas paginas que los tienen y que no necesariamente tienen que estar siendo usados por miles de personas o su código estar expuesto a todos, es solo tomarse el tiempo y probar con calma y verán cuantos agujeros de seguridad saltan a la vista.
Uno de los mas antiguos, y que aun funcionan, trucos para saber si un determinado sitio es vulnerable es el envío de simples tags de javascript como el ejemplo a continuación:
Pagina del formulario:
<form action="./pagina_vulnerable.php" method="POST">
<input type="text" name="query">
<input type=submit value="Enviar">
</form>
Pagina Vulnerable:
<?php $query = $_REQUEST['query']; ?>
Su envio es <? echo ($query); ?>.
Quizás pocos vean en este ejemplo algún vestigio de vulnerabilidad, todo parece estar muy organizado y no existe ningún error, pero nada mas lejos de la verdad, el script en php de la pagina vulnerable no hace ningún saneamiento del código enviado por lo tanto si le pasamos unos tag de javascript como el siguiente:
<script>alert('Indaya TeaM')</script>
La respuesta en la pagina vulnerable seria el típico recuadro de dialogo con la inscripción Indaya TeaM en medio.
Cualquier sitio que permita una respuesta así es en todo caso un sitio vulnerable a cualquier tipo de inyección que se le quiera pasar, para aprender mas sobre que códigos pasar para tomar mas información seria mejor saber un poco mas sobre el sitio afectados y que queremos extraer de el.
Pero como podrán darse cuenta es un código muy simple, y algo que espero, la gran mayoría de los programadores tienen en cuenta por lo que muchos de los famosos CMS de los que hemos hablado ya poseen protecciones contra este tipo de ataque y se basa en buscar cualquier inscripción que contenga los tags <script> o <style> y parar el proceso para evitar la vulnerabilidad como es el caso de PHPNuke, pero el problema sigue ahí, no basta con ponerle un poco de maquillaje y tratar de aparentar que todo esta bien, pero eso se los dejo de tarea a ustedes y como me caen bien mas adelante les dejare un recuadro con los caracteres ASCII y sus códigos hexadecimales correspondientes a ver si eso les da algunas ideas ;-).
Bueno, ya sabemos, estos famosos scripts no son tan fáciles de franquear así que abra que buscar otras formulas de conseguir nuestros propósitos.
Para esto recurriremos a un método del que muy poco se ha hablado y que brinda muy buenos resultados.
[ rEKosPoll ; G3eK ; SunkWolf ; FLapERrR ; Sektor ]