Visualizzazione post con etichetta CRM. Mostra tutti i post
Visualizzazione post con etichetta CRM. Mostra tutti i post

[CRM] Vulnerabilità XSS in vTiger 5.04-

Scorrendo il forum italiano dedicato a vTiger, incappo in un post che presenta delle vulnerabilità XSS per l'ultima versione (e non solo) di questo CRM. La prima riguarda la variabile parenttab, che si riferisce al modulo di riferimento per una sottosezione. Ad esempio Vendite > Opportunità ha come parenttab Vendite per l'appunto. Ecco un esempio di esecuzione di codice arbitraria:

http://www.sito.com/vtiger/index.php?module=Accounts&action=index&parenttab=Sales"<script>alert('ciao')</script>

L'altra falla di sciurezza riguarda l'autenticazione: mentre per il campo username caratteri particolari come le parentesi angolari, vengono convertiti nelle rispettive entità HTML, ciò non accade per il campo password. Esempio:

// da inserire nel campo password nella pagina di login
"<script>alert('ciao')</script>

L'ultima falla riguarda il mancato controllo sul valore che si può assegnare alla variabile query_string, che non ho ancora ben capito quando viene utilizzata. Ad ogni modo essendo una variabile presente in ogni header di qualsiasi tema di default per vTiger, qualsiasi pagina può utilizzare tale codice:

http://www.sito.com/vtiger/index.php?action=index&module=Home&query_string="<script>alert('ciao')</script>
Per risolvere tali falle, fare riferimento al post linkato per patchare il codice.

[CRM] Ricerche globali in vTiger

Leggendo il manuale di CRMVillage (che fa riferimento alla versione 5.04 di vTiger), mi accorgo che vi è un'inesattezza alla pagina 16:

Nota:
Il carattere % può essere usato come “jolly” per la funzione di ricerca. Per esempio, per cercare due contatti come "Meyer" e "Mayer" è possibile digitare "M%yer".

Tuttavia inserendo ad esempio Ma% (e avendo a disposizione i dati di default di vtiger), non ottengo alcun risultato (sebbene ci siano contatti che iniziano con Ma). Non credo quindi sia fattibile quanto scritto nel manuale, alla luce anche di come è strutturata la funzione deputata al controllo del valore di query_string passata alla funzione seguente in include > utils > utils.php:

function formatForSqlLike($str, $flag=0) {
if (isset($str)) {
$str = str_replace('%', '\%', $str);
$str = str_replace('_', '\_', $str);

if ($flag == 0) {
$str = '%'. $str .'%';
} elseif ($flag == 1) {
$str = '%'. $str;
} elseif ($flag == 2) {
$str = $str .'%';
}
}
return mysql_real_escape_string($str);
}

Tuttavia è possibile impostare il flag a 2 di modo che sia possibile ricercare le parole che iniziano in un certo modo e rendere più efficace la ricerca di oggetti nel CRM.

Le tag cloud di vTiger

vTiger è un noto CRM open source basato sull'architettura LAMP/WAMP (Linux/Windows, Apache, MySQL e PHP).
Ultimamente mi sto leggendo la documentazione presente su un sito tedesco e sono arrivato alla parte relativa alla tag cloud.
Le tag cloud in vTiger sono uno strumento molto utile: è possibile taggare qualsiasi oggetto all'interno del CRM (un contatto, un'azienda, un preventivo, ecc) e tali tag vengono mostrati nella home page personalizzata.

La tag cloud è privata e un utente può decidere di disabilitarla semplicemente andando a modificare le proprie preferenze cliccando sul collegamento in alto a destra.
Tuttavia ci sono alcune pecche:

  • non è possibile (via GUI) condividere la propria tag cloud con altri utenti o vedere una tag cloud "globale";
  • non è possibile gestire i tag direttamente dalla home page: bisogna ricordarsi per quali oggetti si è impostato il tag e rimuoverlo dalla vista dei dettagli "DetailView" sulla destra (al passaggio del mouse sopra un tag compare una "x" che una volta cliccata rimuove il tag);
  • sembrano esserci problemi relativi alle dimensioni dei tag (da quanto ho letto sul forum di vTiger): quelli che hanno maggiori collegamenti potrebbero scavalcare i tag più piccoli, impedendone la selezione;

Dettagli tecnici

Le funzioni relative alla tag cloud sono gestite dalla classe freetag, presente al percorso vtiger_root > include > freetag > freetag.class.php. Per quanto riguarda le tabelle che la gestiscono, queste sono vtiger_freetagged_objects, che mantiene l'associazione tra i tag e i relativi oggetti, e vtiger_freetags che contiene i tag.
Nel caso si volesse disabilitare le tag clouds per tutti gli utenti del CRM, è sufficiente la seguente query:

UPDATE vtiger_users SET tagcloud_view = 0

Byte Strike Blog - Designed by Posicionamiento Web | Bloggerized by GosuBlogger