Foro de elhacker.net

Seguridad Informática => Nivel Web => Mensaje iniciado por: Amerikano|Cls en 7 Febrero 2010, 07:48 am



Título: Como lograr este SQL inyection??
Publicado por: Amerikano|Cls en 7 Febrero 2010, 07:48 am
He estado practicando un poco SQL Inyection con algunos codes que he hecho en la universidad programando con JSP y Servlets y todavia no logro como pasar el login que tengo planteado, apenas estoy familiarizandome con esto asi que pediria colaboracion de los miembros del foro  :P.

Tengo un servlet donde de antemano se conecta a la BD a travez de un DAO donde tengo un metodo que recibe los datos obtenidos del formulario de login:

Código
  1. public boolean loguinEmpleado(String codigoEmpleado, String password) throws SQLException
  2.    {
  3.        PreparedStatement stmt;
  4.        ResultSet resultado;
  5.        stmt=conexion.prepareStatement("select * from empleado where Codigo_empleado="+codigoEmpleado+" and Password_empleado="+password);
  6.  
  7.        resultado=stmt.executeQuery();
  8.  
  9.        if(resultado.next())
  10.                return true;
  11.        else
  12.            return false;
  13.  
  14.    }

Y en el Servlet controlo el resultado:

Código
  1. if(bd.crearDAOEmpleado().loguinEmpleado(id, password)){
  2.  
  3.     out.write("Entramos");
  4.  
  5. }else{
  6.     out.write("Mal");    
  7. }

Me gustaria saber entonces como pasar el login este, he probado varias formas pero nada que lo consigo.

Salu2


Título: Re: Como lograr este SQL inyection??
Publicado por: AlbertoBSD en 7 Febrero 2010, 07:56 am
Hay muchas formas, alguna sub-consulta se me ocurre o un unión

empleado:
Código
  1. lalal OR Codigo_empleado LIKE '%'

password:
Código
  1. lala OR Password_empleado LIKE '%'


Saludos


Título: Re: Como lograr este SQL inyection??
Publicado por: braulio-- en 7 Febrero 2010, 18:26 pm
Y si pones como código empleado blabla" or 1=1-- ?


Título: Re: Como lograr este SQL inyection??
Publicado por: Castg! en 7 Febrero 2010, 20:46 pm
a mi me parece que los dos son efectivos, pero el de anon es necesario saber los nombres de las columnas. igual como aca las sabes opto por el de anon...


Título: Re: Como lograr este SQL inyection??
Publicado por: tragantras en 7 Febrero 2010, 21:31 pm
depende del filtrado que le estés haciendo a las variables de entrada ( las que recoges del exterior ). Dado que en ese pedazo de código no lo pones entiendo que las tienes sin filtrar... sino pues echale un vistazo puede que por eso no puedas hacer el bypassing

un saludo ^^


Título: Re: Como lograr este SQL inyection??
Publicado por: Amerikano|Cls en 8 Febrero 2010, 00:40 am
Bueno, gracias por responder  ;), he intentado las opciones que me cuentan pero no consigo nada todavia, seguire mirando a ver que puedo hacer  :xD

Salu2


Título: Re: Como lograr este SQL inyection??
Publicado por: Castg! en 8 Febrero 2010, 01:06 am
sabes la estructura de la abse de datos??


Título: Re: Como lograr este SQL inyection??
Publicado por: braulio-- en 8 Febrero 2010, 18:15 pm
Bueno, gracias por responder  ;), he intentado las opciones que me cuentan pero no consigo nada todavia, seguire mirando a ver que puedo hacer  :xD

Salu2
Tengo entendido que está programado por tí, no puedes hacer
Código:
out.write("select * from empleado where Codigo_empleado="+codigoEmpleado+" and Password_empleado="+password);
Y así ves mejor por qué no funciona?