Como lograr este SQL inyection??

Iniciado por Amerikano|Cls, 7 Febrero 2010, 07:48 AM

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

Amerikano|Cls

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 (java) [Seleccionar]
public boolean loguinEmpleado(String codigoEmpleado, String password) throws SQLException
    {
        PreparedStatement stmt;
        ResultSet resultado;
        stmt=conexion.prepareStatement("select * from empleado where Codigo_empleado="+codigoEmpleado+" and Password_empleado="+password);
       
        resultado=stmt.executeQuery();

        if(resultado.next())
                return true;
        else
            return false;

    }


Y en el Servlet controlo el resultado:

Código (java) [Seleccionar]
if(bd.crearDAOEmpleado().loguinEmpleado(id, password)){

     out.write("Entramos");

}else{
     out.write("Mal");     
}


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

Salu2




Mi blog:
http://amerikanocls.blogspot.com

AlbertoBSD

Hay muchas formas, alguna sub-consulta se me ocurre o un unión

empleado:
Código (sql) [Seleccionar]
lalal or Codigo_empleado like '%'

password:
Código (sql) [Seleccionar]
lala or Password_empleado like '%'


Saludos
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

braulio--

Y si pones como código empleado blabla" or 1=1-- ?

Castg!

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...

tragantras

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 ^^
Colaboraciones:
1 2

Amerikano|Cls

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




Mi blog:
http://amerikanocls.blogspot.com


braulio--

Cita de: 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
Tengo entendido que está programado por tí, no puedes hacer

out.write("select * from empleado where Codigo_empleado="+codigoEmpleado+" and Password_empleado="+password);

Y así ves mejor por qué no funciona?