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

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Hacking
| | |-+  Bugs y Exploits
| | | |-+  Nivel Web (Moderadores: sirdarckcat, WHK)
| | | | |-+  ASP vulnerable a SQLi por IIS
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] 3 Ir Abajo Respuesta Imprimir
Autor Tema: ASP vulnerable a SQLi por IIS  (Leído 12,375 veces)
RicRed

Desconectado Desconectado

Mensajes: 66



Ver Perfil WWW
Re: ASP vulnerable a SQLi por IIS
« Respuesta #10 en: 15 Febrero 2010, 00:11 am »

Pero eso seria de un login no de una pagina asp normal esta bien porque se pueden ejecutar comandos por el login en las cajas de texto

Pero lo que quiero es una pagina en ASP normal como por ejemplo:

.asp?id=1 pase a .asp?id=2 y que cuando inserte como por ejemplo:

.asp?id=convert(int,@@version)--

Me devuelva error y con la version de MSSQL ETC...

Un ejemplo es este:

http://r3martinelli.com.br/telas/pagina.asp?id=1 and 1=convert(int,@@version)--

Devuelve eror y su version

Un codigo por localhost en asp

Espero me ayuden

Saludos a todos....
« Última modificación: 15 Febrero 2010, 00:14 am por asasasaq » En línea

^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: ASP vulnerable a SQLi por IIS
« Respuesta #11 en: 15 Febrero 2010, 00:15 am »

No quisiera movilizar el tema hacia otro angulo.

Yoyahack, siempre he tenido la duda si es posible enviar una inyeccion SQL usando procedimientos almacenados dentro del motor  :rolleyes:  estaba intentando sacarle esta info a Napk pero no llegue a ninguna conclusion... y incluso se hablo de las magic quotes.. yo desconozco si es efectivo o no las magic quotes, pero me gustaria saber hacia el lado de los procedimientos almacenados dentro del motor... si pudieras conversar conmigo del tema lo apreciaria.

Un saludo  ;)
En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.605


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: ASP vulnerable a SQLi por IIS
« Respuesta #12 en: 15 Febrero 2010, 00:38 am »

Las magic quotes no te salvan de una inyección SQL ya que depende mucho el caso de como esté construida la query y como se realiza la consulta desde el motor interpretador del lenguaje WEB y el servidor SQL.

Por ejemplo si un campo es numérico y tienes magic quotes activado o utilizas htmlentities entonces sucede esto:

Código
  1. $sql = 'select * from noticias where id = '.$_GET['id'];

En este caso no se necesitan comillas para realizar una query y sucede de forma muy similar en asp, también cuando insertas strings sin encerrarlos en comillas entonces puedes inyectar código SQL con tan solo escribir un espacio en blanco.

La función en php mysql_real_escape_string() filtra varios carácteres dependiendo de la configuración del mismo servidor y el charset por defecto:
Citar
Escapes special characters in the unescaped_string , taking into account the current character set of the connection so that it is safe to place it in a mysql_query(). If binary data is to be inserted, this function must be used.

mysql_real_escape_string() calls MySQL's library function mysql_real_escape_string, which prepends backslashes to the following characters: \x00, \n, \r, \, ', " and \x1a.

This function must always (with few exceptions) be used to make data safe before sending a query to MySQL.

Magic quotes puede salvar en el caso de que el valor esté encerrado en comillas pero en el caso de ser numérico es inutil porque si le pones comillas te lanza error al buscar en una columna de tipo numérico.

http://foro.elhacker.net/nivel_web/como_evitar_la_inyeccion_sql-t252384.0.html

La inyección SQL se produce porque php envía la query en forma de string al servidor, no la estructura internamente como lo hace la clase mysqli.

No se que tipo de protecciones nativas tenga asp, supongo que debe haber alguna.
En línea

^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: ASP vulnerable a SQLi por IIS
« Respuesta #13 en: 15 Febrero 2010, 00:49 am »

Ok, mi duda radica con el procedimiento almacenado dentro de la DB sea cual sea la DB.

Tengo esta tabla por ejemplo:

Código
  1. mysql> SELECT * FROM ejemplo;
  2. +--------------------+------+
  3. | nombres            | id   |
  4. +--------------------+------+
  5. | Pepess             |    3 |
  6. | Marta Sanchez Mina |    2 |
  7. | Luis Sanchez       |    1 |
  8. | Pedro Pito         |    4 |
  9. | Pepe OR 1=1        |    1 |
  10. +--------------------+------+
  11. 5 ROWS IN SET (0.00 sec)
  12.  

Y dentro del motor creo un procedimiento almacenado para sacar datos de esta tabla:

Código
  1. mysql> CREATE PROCEDURE proceso(IN nombre CHAR(30), IN numero INTEGER)
  2.    -> BEGIN
  3.    -> SELECT * FROM ejemplo WHERE nombres = nombre AND id = numero;
  4.    -> END;
  5.    -> /
  6. Query OK, 0 ROWS affected (0.00 sec)
  7.  

Ahora intento pasarle algo al procedimiento para inyectarle codigo:

Código
  1. mysql> CALL proceso('Pepess or 1=1',3);
  2. Empty SET (0.02 sec)
  3.  
  4. Query OK, 0 ROWS affected (0.02 sec)
  5.  
  6. mysql> CALL proceso('Pepess'||'or'||1=1,3);
  7. Empty SET (0.02 sec)
  8.  
  9. Query OK, 0 ROWS affected, 2 warnings (0.02 sec)
  10.  
  11.  

Sin embargo si le paso los datos que realmente existen:

Código
  1. mysql> CALL proceso('Pepess',3);
  2. +---------+------+
  3. | nombres | id   |
  4. +---------+------+
  5. | Pepess  |    3 |
  6. +---------+------+
  7. 1 ROW IN SET (0.00 sec)
  8.  
  9.  

Alguna sugerencia???
En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.605


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: ASP vulnerable a SQLi por IIS
« Respuesta #14 en: 15 Febrero 2010, 01:55 am »

Digamos que tienes el procedimiento:
Código
  1. CREATE PROCEDURE proceso(IN nombre CHAR(30), IN perteneciente INTEGER)
  2. SELECT * FROM clientes WHERE nombres = nombre AND perteneciente_vendedor = numero;

Ahora tienes dos tablas, la tabla clientes y la de vendedores.
Digamos que cada vendedor puede ver los datos solamente de sus propios clientes, entonces hace algo así:
Código
  1. $sql = "call proceso('".$_POST['user']."', 3);";

Donde 3 es el id del vendedor, entonces el vendedor con identificación 3 obtendrá todos los datos del cliente pedro de esta forma:
index.php?nombre=pedro
Si este intenta obtener los datos de un cliente que no le pertenece como vendedor entonces debería retornar un valor vacio.
En este caso se puede hacer una inyección SQL para poder obtener los datos de cualquier cliente sin la necesidad de que te pertenezca:
index.php?nombre=pablo', 1); --

Las inyecciones sql pueden ser mas dificiles porque talves el atacante ya no pueda obtener los datos desde schema u obtener datos de otras tablas pero si puede lograr bypasear sistemas de accesos.
Todo depende de la query, por ejemplo smf tiene o tenía una inyección sql en base64 donde se la variable inyectada se repetía en dos ocasiones sobre la misma query, entonces tenías que hacer que la finalización de la consulta pudiera ser compatible con el inicio de la primera sin corromper toda la query xD y tenías que adaptarte a los saltos de linea también, etc.
Cada query puede ser vulnerada, una mas que otra, siempre y cuando no estén diseñadas en el lenguaje WEB correctamente, usando (int)$var en php para valores numéricos por ejemplo ya que aunque procedimiento si distingue el valor integer eso no impide que el usuario pueda inyectar código ya que el lenguaje web envía la query al servidor mysql en formato de texto plano sin una estructura que php pueda controlar a exepción de algunas clases que si lo hacen, unas de forma mas seguras que otras pero no es la solución.

No puedes prevenir una inyección realizando procedimientos aunque si se la haces mas dificil y mas aun cuando es blind, tampoco utilizando clases que manejen la query como un objeto, una buena programación sin inyecciones sql es mas simple de lo que se cree y por eso puse el último enlace en el post anterior:

http://foro.elhacker.net/nivel_web/como_evitar_la_inyeccion_sql-t252384.0.html

Ahora en asp, cgi perl, python, etc no se que funciones tendrán para hacer querys seguras pero en php si hay y es una sola.
En línea

RicRed

Desconectado Desconectado

Mensajes: 66



Ver Perfil WWW
Re: ASP vulnerable a SQLi por IIS
« Respuesta #15 en: 15 Febrero 2010, 03:54 am »

Buenas a todos, no tendran un asp vulnerable a sql por localhost?

Saludos.
En línea

Ari Slash


Desconectado Desconectado

Mensajes: 1.783



Ver Perfil WWW
Re: ASP vulnerable a SQLi por IIS
« Respuesta #16 en: 15 Febrero 2010, 08:31 am »

muy buena explicacion WHK  :)
En línea

^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: ASP vulnerable a SQLi por IIS
« Respuesta #17 en: 15 Febrero 2010, 18:16 pm »

No niego que no  ;)

Pero me quedo con el procedimiento almacenado despues de evaluar de que manera se puede bypassear uno de estos... que es practicamente imposible. Sin embargo las funciones estas de escape_string y similares... hay maneras posibles de bypassearlas.

Me quedo con el procedimiento  ;)
En línea

Nakp
casi es
Ex-Staff
*
Desconectado Desconectado

Mensajes: 6.336

he vuelto :)


Ver Perfil WWW
Re: ASP vulnerable a SQLi por IIS
« Respuesta #18 en: 15 Febrero 2010, 18:44 pm »

tifa, que no xD no hay forma de bypassear esa funcion... lo que pasa es que tienes que aplicar la funcion a absolutamente todos los datos que recibas, y... algunos ponen 15 y olvidan 1, es lo que les cuesta la owneada xD

como dije en el otro post, lo mas cómodo a nivel de código es usar las prepared statements que vienen siendo como procedimientos del lado del script (aplicable tambien a asp)
En línea

Ojo por ojo, y el mundo acabará ciego.
RicRed

Desconectado Desconectado

Mensajes: 66



Ver Perfil WWW
Re: ASP vulnerable a SQLi por IIS
« Respuesta #19 en: 15 Febrero 2010, 20:44 pm »

Quien va a resolver mi duda.

Ayudenme por favor con mi duda, estan solucionando el tema del otro, que haga otro post con su duda, o no sabe nadie digan el que no sabe y ya


SALUDOS A TODOSSSSSSSSSSSSSSSSSSSSSSSSSS.
En línea

Páginas: 1 [2] 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
GiE 4.8 - SQLi
Nivel Web
Pony-Magic 4 6,900 Último mensaje 17 Diciembre 2010, 14:37 pm
por xassiz~
5013 webs vulnerables a sqli
Nivel Web
Tyrz 0 7,135 Último mensaje 12 Abril 2011, 10:01 am
por Tyrz
Ayuda con SQLi
Hacking
BlackM4ster 1 2,928 Último mensaje 5 Septiembre 2011, 18:00 pm
por Darioxhcx
Buscador php vulnerable a SQLi por POST « 1 2 »
Nivel Web
RicRed 10 6,931 Último mensaje 1 Junio 2012, 14:10 pm
por h3ct0r
Pagina vulnerable a SQLi
Hacking
llAudioslavell 3 4,430 Último mensaje 25 Julio 2014, 15:24 pm
por dantemc
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines