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:
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:
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
Hay muchas formas, alguna sub-consulta se me ocurre o un unión
empleado:
lalal or Codigo_empleado like '%'
password:
lala or Password_empleado like '%'
Saludos
Y si pones como código empleado blabla" or 1=1-- ?
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...
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 ^^
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
sabes la estructura de la abse de datos??
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?