Esta plataforma de Software permite administrar contenidos y hacer sustentables sitios Web de alta complejidad. Los documentos se almacenan en un reservorio de conocimiento y pueden ser caracterizados según múltiples miradas (clasificandos). Engine apoya las labores de Arquitectura de Información, Modelamiento, Diseño, Poblamiento y Edición de Contenidos, interconectando las labores del equipo de trabajo a través de un sistema de workflow.
La vulnerabilidad está presente en el buscador de este CMS y se replica la mayoría de sus clientes/usuarios.
Se deteca cuando vemos el codigo fuente del buscador, vemos que tiene un atribuo “onsubmit=doSearch()”
Al realizar la busqueda, la función doSearch() nos cambia el href:
function doSearch() {
// Delete search's cookies
if( "exists".match ) {
var results = document.cookie.match(/\w+=/g);
if( results ) {
for( var i=0; i < results.length; i++ ) {
if( results[i].substring(0,7) == 'search_' ) {
deleteCookie( results[i].substring(0,results[i].length-1) );
}
}
}
}
setCookie('search_keywords',document.searchForm.keywords.value);
setCookie('search_start', 0 );
setCookie('search_group', 0 );
setCookie('search_expanded', 0 );
document.location.href="w3-propertyvalue-16131.html";
return false;
}
Y cuando carga el sitio "w3-propertyvalue...." podemos ver en el codigo fuente que se genera el siguiente javascript:
var url = 'https://ntg-engine.conama.cl/mod/find/cgi/find.cgi?action=query';
url+= '&engine=SwisheFind';
url+= '&rpp=';
url+= '&cid=815';
url+= '&stid=';
url+= '&iid=1257';
url+= '&grclass=resultado-busqueda';
url+= '&pnid=';
url+= '&pnid_df=';
url+= '&pnid_tf=';
url+= '&pnid_search=2033,1999,1849';
url+= '&limit=';
url+= '&searchon=';
url+= '&channellink=';
url+= '&articlelink=w3:article';
url+= '&pvlink=w3:propertyvalue';
url+= '¬articlecid=';
url+= '&use_cid_owner_on_links=';
url+= '&show_ancestors=';
url+= '&show_pnid=';
url+= '&cids=815';
if( "exists".match ) {
var results = document.cookie.match(/\w+=/g);
if( results ) {
for( var i=0; i < results.length; i++ ) {
if( results[i].substring(0,7) == 'search_' ) {
url += '&' + results[i].substring(7,results[i].length) + escape( getCookie( results[i].substring(0,results[i].length-1) ) );
}
}
}
} else {
url+= '&start=' + getCookie( 'search_start' );
url+= '&keywords=' + escape(getCookie( 'search_keywords' ));
}
url+= '&prepnidtext=' + escape('');
// Descomentar la siguiente linea para depurar
//document.write( '<' + 'iframe width="500" height="500" src="' + url + '">' + + '< ' + '/iframe>' );
url+= '&javascript=1';
document.write( ' < \/scr' + 'ipt>' );
Esta vulnerabilidad afecta el propio sitio web de la empresa y a casi todos sus clientes.
A partir de este codigo javascript generado por el CMS, construiremos nuestro XSS.
Seguir leyendo
Comentarios recientes