Título: ASP vulnerable a SQLi por IIS Publicado por: RicRed en 14 Febrero 2010, 03:19 am Buenas a todos...
Busco un code pequeño para conectarme por base de datos en asp, en este caso vulnerable a SQLi en ASP Puede ser un .asp vulnerable para practica por localhost con este metodo .asp?id=1 Bueno es todo Saludos... Título: Re: ASP vulnerable a SQLi por IIS Publicado por: Shell Root en 14 Febrero 2010, 04:23 am Seh!, de hecho es muy complicada y muy tediosa de explotar, ademas podes llegar a tardar mucho tiempo, para al final no contrarte con nada. Vease Inyeccion en ASP (http://www.webtaller.com/construccion/lenguajes/asp/lecciones/inyeccion-sql-asp.php)
El error que saldria seria algo como Código: Microsoft OLE DB Provider for ODBC Drivers error '80040e14' Título: Re: ASP vulnerable a SQLi por IIS Publicado por: RicRed en 14 Febrero 2010, 18:48 pm Si exacto un error como ese
Microsoft OLE DB Provider for ODBC Drivers error '80040e14' No tienen un code? Aunque no es por login si no por la barra de direcciones Ejemplo: http://www.example.com/page.asp?id=1+and+1=convert(int,@@version)-- Y salga un error asi: Microsoft SQL Native Client error '80040e07' Conversion failed when converting the nvarchar value 'Microsoft SQL Server 2005 - 9.00.3042.00 (Intel X86) Feb 9 2007 22:47:07 Copyright (c) 1988-2005 Microsoft Corporation Express Edition on Windows NT 5.2 (Build 3790: Service Pack 1) ' to data type int. /page.asp, line 9 Es asi Bueno saludos Título: Re: ASP vulnerable a SQLi por IIS Publicado por: Shell Root en 14 Febrero 2010, 19:33 pm No tienen un code? WTFTítulo: Re: ASP vulnerable a SQLi por IIS Publicado por: ^Tifa^ en 14 Febrero 2010, 19:54 pm Supongo que todos los motores de base de datos relacionales son vulnerables siempre y cuando reciban como peticion una consulta SQL completa. Pero si en el caso de que en ese proyecto hecho con ASP utilizaron 'magic quotes' o similar (digase a lo mejor procedimientos almacenados dentro de SQLite) pues amigo.... la inyeccion SQL la tienes un poco dificil (Por no decir yo imposible y terminar de decepcionarte en tu intento :xD )
Título: Re: ASP vulnerable a SQLi por IIS Publicado por: RicRed en 14 Febrero 2010, 20:53 pm Pero es posible, un asp noticias.asp vulnerable con codigo vulnerable no tienen?
Bueno es todo Eh visto por logins pero asp en ?id= no eh visto. Título: Re: ASP vulnerable a SQLi por IIS Publicado por: Shell Root en 14 Febrero 2010, 21:18 pm Diferencia entre iSQL y iASP
Título: Re: ASP vulnerable a SQLi por IIS Publicado por: ~ Yoya ~ en 14 Febrero 2010, 21:54 pm Supongo que todos los motores de base de datos relacionales son vulnerables siempre y cuando reciban como peticion una consulta SQL completa. Pero si en el caso de que en ese proyecto hecho con ASP utilizaron 'magic quotes' o similar (digase a lo mejor procedimientos almacenados dentro de SQLite) pues amigo.... la inyeccion SQL la tienes un poco dificil (Por no decir yo imposible y terminar de decepcionarte en tu intento :xD ) magic quotes es una directiva que se puede bypassear, y es casi inutil, porque aparte de todo eso de seguridad te causa problema cuando pasas datos por GET, nose si en ASP tambien viene desactivada por defecto como en php => 5.3.0, otra de la misma raiz es magic_quotes_gpc(GET, POST, Cookie), tambien es inutil xD, asi mismo como Safe-mode que vendra off por defecto desde php 6, aveces la facilidad para poner seguridad no es lo mejor. Título: Re: ASP vulnerable a SQLi por IIS Publicado por: RicRed en 14 Febrero 2010, 22:07 pm Nadie tiene un asp o cms vulnerable como puse arriba en el tema ?
Título: Re: ASP vulnerable a SQLi por IIS Publicado por: Shell Root en 14 Febrero 2010, 22:41 pm Nadie tiene un asp o cms vulnerable como puse arriba en el tema ? Creo que no leiste el LINK que te dejé... :Shttp://www.webtaller.com/construccion/lenguajes/asp/lecciones/inyeccion-sql-asp.php Título: Re: ASP vulnerable a SQLi por IIS Publicado por: RicRed 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.... Título: Re: ASP vulnerable a SQLi por IIS Publicado por: ^Tifa^ 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 ;) Título: Re: ASP vulnerable a SQLi por IIS Publicado por: WHK 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
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. Título: Re: ASP vulnerable a SQLi por IIS Publicado por: ^Tifa^ 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
Y dentro del motor creo un procedimiento almacenado para sacar datos de esta tabla: Código
Ahora intento pasarle algo al procedimiento para inyectarle codigo: Código
Sin embargo si le paso los datos que realmente existen: Código
Alguna sugerencia??? Título: Re: ASP vulnerable a SQLi por IIS Publicado por: WHK en 15 Febrero 2010, 01:55 am Digamos que tienes el procedimiento:
Código
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
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. Título: Re: ASP vulnerable a SQLi por IIS Publicado por: RicRed en 15 Febrero 2010, 03:54 am Buenas a todos, no tendran un asp vulnerable a sql por localhost?
Saludos. Título: Re: ASP vulnerable a SQLi por IIS Publicado por: Ari Slash en 15 Febrero 2010, 08:31 am muy buena explicacion WHK :)
Título: Re: ASP vulnerable a SQLi por IIS Publicado por: ^Tifa^ 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 ;) Título: Re: ASP vulnerable a SQLi por IIS Publicado por: Nakp 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) Título: Re: ASP vulnerable a SQLi por IIS Publicado por: RicRed 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. Título: Re: ASP vulnerable a SQLi por IIS Publicado por: Ari Slash en 15 Febrero 2010, 20:53 pm Buenas a todos, no tendran un asp vulnerable a sql por localhost? Saludos. que? quieres que te demos una pagina vulnerable para que te la pwnees? Título: Re: ASP vulnerable a SQLi por IIS Publicado por: Nakp en 15 Febrero 2010, 20:59 pm algo como Damn Vulnerable Web App en asp?
si te sirve... http://www.offensive-security.com/metasploit-unleashed/Creating-a-Vulnerable-Web-App Título: Re: ASP vulnerable a SQLi por IIS Publicado por: RicRed en 15 Febrero 2010, 23:26 pm No quiero una web vulnerable para pwnearla, quiero un asp vulnerable para practica por LOCALHOST osea 127.0.0.1 NO UNA WEB PARA PWNEARLA
Nakp gracias por la web que me has dado me ha servido mucho Saludos |