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.
Comentarios recientes