Autore Topic: XML Injection per guestbook e blog  (Letto 4220 volte)

serzio

  • Amministratore
  • Utente storico
  • *****
  • Post: 1706
XML Injection per guestbook e blog
« il: 17 Febbraio, 2012, 20:05:42 »
Da qualche giorno è venuto alla luce un piccolo ma insidioso BUG che consente, mediante l'inserimento di una stringa ben definita all'interno di un commento nel blog o nel guestbook, lo svuotamento del file che contiene i commenti e quindi la perdita dei messaggi lasciati dai visitatori.

Per il momento posso dire solo che è stata trovata la causa, ma per questioni di sicurezza abbiamo deciso di ritardare la divulgazione dei dettagli fino alla pubblicazione della soluzione da parte di icm che è già stata avvertita da Stesil mentre io sto svolgendo il lavoro di segreteria  ;) e qualche test.

Nel frattempo sarebbe meglio sospendere le attività di blog e guestbook fino a risoluzione del problema, il rischio è di perdere i commenti definitivamente in caso di spam ben organizzato, ma anche per atti vandalici.

Naturalmente, anche nel caso in cui venisse utilizzato il sistema antispam di cui ho parlato in altre occasioni, si eviterebbero le attività ad opera di spammers conosciuti, ma non le attività di sabotaggio volontario.

« Ultima modifica: 17 Febbraio, 2012, 21:31:19 da serzio »

serzio

  • Amministratore
  • Utente storico
  • *****
  • Post: 1706
Re:XML Injection per guestbook e blog
« Risposta #1 il: 20 Febbraio, 2012, 12:48:28 »
Sergio io non voglio avere ragione a tutti i costi ... e queste considerazioni io e te le abbiamo già fatte ... qui siamo in diversi a leggere, mi auguro che qualcuno si esprima.

Considera che il nostro ritardo a pubblicare la faccenda lascia i gb e blog vulnerabili, cioè se domani si ripete l'inserimento da parte umana o robot che sia (non ha alcuna importanza, quelle sono stringhe standard che si trovano in rete), si ha perdita di dati.

L'utente è stato avvisato. Il tuo post nella lista bug c'è. Non abbiamo soluzioni da pubblicare. Abbiamo solo la causa che genera il problema.
Perchè mettere a repentaglio di sabotaggio volontario i guestbook o i blog degli utenti?

Che ci vuole a mettere due righe di codice per evitare il problema? Vediamo se icm fa il suo lavoro, prima di perderci tempo. Se oggi avessi bisogno del gb, lo farei io stesso subito. Conoscendo la sequenza, la toppa è un semplice replace della stringa con una vuota. Sarà poco elegante ma funzionale in 10 secondi.

A mio avviso, il discorso ad icm dovrebbe essere posto in termini diversi: o ti dai una mossa, o io avviso il pubblico del pericolo e lascio che ciascuno decida come muoversi per evitare la perdita dei messaggi.
...

Per fortuna non siamo tutti uguali ed il confronto serve anche per crescere imparando a guardare aspetti a cui forse non si è prestata attenzione.

Nessuna difficoltà a chiudere la questione, da parte mia, in attesa di una soluzione che addirittura dovrà essere rilasciata in un prossimo aggiornamento e d'altra parte avevo anche lasciato intendere, nel post pubblico, che avremmo atteso i tempi di icm.

Tuttavia riflettendoci ci sono degli aspetti che vanno valutati:
  • il problema segnalato non è un bug qualsiasi che nasconde o deforma un menù o una fotografia, ma qualcosa che CANCELLA irrimediabilmente i dati dei clienti e quindi meriterebbe, da parte di incomedia, maggiori attenzione e responsabilità nella sua gestione
  • nascondere il problema, sappiamo bene che è pericoloso. Ci sono spammers che usano questo sistema per inserire le loro porcherie e quindi qualsiasi gb o blog è esposto ad irreversibile danneggiamento in un tempo imprevedibilmente breve o lungo ... e .... tra l'altro ..... mi sembra che anche la sezione di ecommerce faccia uso di file XML .... chissà se è esposta anche lei a porcherie del genere
  • la divulgazione della stringa favorirebbe gli atti vandalici, ma non so fino a che punto, visto che siamo tutti utenti sconosciuti, sparsi per l'italia e senza rancori a causa di rapporti personali o di lavoro (siamo sconosciuti ...). Chi vuoi che si metta a perdere tempo a cercare i guestbook degli altri (ammesso che possa sapere come fare per cercarli)?
  • Gli spammers sono gli unici che hanno i mezzi ed un reale interesse ad effettuare questo tipo di danneggiamento, sia pure involontariamente
  • Nascondere la stringa incriminata avrebbe il solo scopo di motivare il suggerimento di sospensione senza favorire gli atti vandalici, ma senza fornire strumenti per risolvere la questione
  • comunicare la stringa, invece, permetterebbe ad icm di sentirsi il fiato dei clienti sul collo per far tirar fuori una soluzione e dall'altro lato permetterebbe ai clienti più smanettoni di trovare una toppa in modo autonomo o di attivarsi per farla cercare da altri.
  • la gestione tramite XML è da sciagurati
  • da sciagurati è anche consentire l'inserimento dei post nel file XML prima ed indipendentemente dalla eventuale validazione (sarebbe bastato scrivere su un file diverso in attesa che con la moderazione il messaggio venisse trasferito nel file definitivo)
  • nel mondo dei sistemisti, tutti gli exploit e le vulnerabilità vengono pubblicate (chiaramente, nelle apposite sezioni, non in televisione) contestualmente alla loro loro scoperta e la loro soluzione porta sempre il riferimento alle precedenti e rispettive segnalazioni.

stesil

  • Anziani
  • Utente storico
  • *
  • Post: 1219
    • quellidelcucuzzolo
Re:XML Injection per guestbook e blog
« Risposta #2 il: 20 Febbraio, 2012, 14:54:19 »
Che ci vuole a mettere due righe di codice per evitare il problema? Vediamo se icm fa il suo lavoro, prima di perderci tempo. Se oggi avessi bisogno del gb, lo farei io stesso subito. Conoscendo la sequenza, la toppa è un semplice replace della stringa con una vuota. Sarà poco elegante ma funzionale in 10 secondi.

una cosa del genere? (devo ancora provarla online)

    $str = str_replace("]]>"," ", $str);

Qui l'intero codice:
Codice:
Only registered users can see contents. Please click here to Register or Login.

serzio

  • Amministratore
  • Utente storico
  • *****
  • Post: 1706
Re:XML Injection per guestbook e blog
« Risposta #3 il: 20 Febbraio, 2012, 15:17:20 »
Che ci vuole a mettere due righe di codice per evitare il problema? Vediamo se icm fa il suo lavoro, prima di perderci tempo. Se oggi avessi bisogno del gb, lo farei io stesso subito. Conoscendo la sequenza, la toppa è un semplice replace della stringa con una vuota. Sarà poco elegante ma funzionale in 10 secondi.

una cosa del genere? (devo ancora provarla online)

    $str = str_replace("]]>"," ", $str);

...

Si, Silvana. Mi riferivo proprio a qualcosa del genere direttamente nella filtercode in x5engine.php e credo che funzioni ... anzi, ne sono certo.

serzio

  • Amministratore
  • Utente storico
  • *****
  • Post: 1706
Re:XML Injection per guestbook e blog
« Risposta #4 il: 17 Aprile, 2012, 13:53:15 »
Possibile che non sia stato ancora risolto?

http://answers.websitex5.com/post/28810

Il sito è stato esportato con la 9.0.8.1831

 ???

stesil

  • Anziani
  • Utente storico
  • *
  • Post: 1219
    • quellidelcucuzzolo
Re:XML Injection per guestbook e blog
« Risposta #5 il: 20 Aprile, 2012, 20:18:09 »
La stringa incriminata è stata corretta con una modifica della funzione writeXML del file x5engine.php ... ma ho trovato un'altra combinazione di caratteri, molto simile alla precedente, che invalida il file xml dei commenti, causandone ancora lo svuotamento.

E chissà, a questo punto, se è l'unica ...

La correzione che era stata proposta qui alla funzione filterCode è invece ancora valida, visto che annulla anche questa nuova combinazione di caratteri.