Page 1 of 1

php5.6 + функция readFileStr на vestacp

Posted: Thu Jan 14, 2021 11:23 am
by leito89
Доброго времени суток. Сразу говорю, с пхп - знаком плохо.
Есть впс с последней версией vestacp и пару сайтов. Потребовалось перенести на него один из старых сайтов с хостинга. Попробовал, что на пхп 7,0+ - не работает (точнее не все страницы). Завелся на 5.6.
Установил на весту 5,6 + создал шаблоны под неё = завелся.
Но было обноружено, что открыта уязвимость LFI (можно добраться практически до любого файла на сервере).
Методом проб и ошибок, обнаружил что трабл в этой вот функции: $textFile = readFileStr($_GET['new']);

Подскажите, куда копать, куда бежать.

Шаблон для ПХП5.6 . Возможно в нем трабл.

Code: Select all

  GNU nano 2.7.4                   File: data/templates/web/apache2/php-fcgid5.6.tpl                             
<VirtualHost %ip%:%web_port%>
    ServerName %domain_idn%
    %alias_string%
    ServerAdmin %email%
    DocumentRoot %docroot%
    ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/
    Alias /vstats/ %home%/%user%/web/%domain%/stats/
    Alias /error/ %home%/%user%/web/%domain%/document_errors/
    SuexecUserGroup %user% %group%
    CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes
    CustomLog /var/log/%web_system%/domains/%domain%.log combined
    ErrorLog /var/log/%web_system%/domains/%domain%.error.log
    <Directory %docroot%>
        AllowOverride All
        Options +Includes -Indexes +ExecCGI
        php_admin_value open_basedir %docroot%:%home%/%user%/tmp
        php_admin_value upload_tmp_dir %home%/%user%/tmp
        php_admin_value session.save_path %home%/%user%/tmp
        <Files *.php>
          SetHandler fcgid-script
        </Files>
        FCGIWrapper %home%/%user%/web/%domain%/cgi-bin/fcgi-starter .php
    </Directory>
    <Directory %home%/%user%/web/%domain%/stats>
        AllowOverride All
    </Directory>
    IncludeOptional %home%/%user%/conf/web/%web_system%.%domain%.conf*

</VirtualHost>

Re: php5.6 + функция readFileStr на vestacp

Posted: Thu Jan 14, 2021 4:05 pm
by grayfolk
В PHP нет такой функции.

Re: php5.6 + функция readFileStr на vestacp

Posted: Fri Jan 15, 2021 12:09 pm
by leito89
$textFile = readFileStr($_GET['product']); сылаеться на utils.php:

Code: Select all

<?php
session_start();
	include "globalConst_en.php";
	//this file contains some utils that can be used from all files
	//this function return true if user is entered to the system or false if not
	function isSignIn()
	{
		//session_start();
		if (isset($_SESSION['sign']))
			return true;
		else
			return false;
	}
	//this file end user session and unset all session variables
	function endSession()
	{
		//session_start();
		unset($_SESSION['sign']);
		session_destroy();
	}
	//this function save file
	function saveFile($filePath, $text)
	{
		$fp = fopen($filePath, 'w') or die(ERROR_OPEN_FILE);
		fwrite($fp, $text) or die(ERROR_WRITE_FILE);
		fclose($fp);
	}
	//this function read file
	function readFileStr($filePath)
	{
		$fp = fopen($filePath, 'r') or die(ERROR_OPEN_FILE);
		$s = fread($fp, filesize($filePath)) or die(ERROR_READ_FILE);
		fclose($fp);
		return $s;
	}
	//this function get all files from $dirName and filter them using $filter
	function getFiles($dirName, $filter)
	{
		$dp = openDir($dirName) or die(ERROR_OPEN_DIR);
		while ($currentFile !== false)
		{
			$currentFile = readDir($dp);
			$files[] = $currentFile;
		}		
		return preg_grep($filter, $files);
	}
?>

Re: php5.6 + функция readFileStr на vestacp

Posted: Fri Jan 15, 2021 1:40 pm
by grayfolk
leito89 wrote:
Fri Jan 15, 2021 12:09 pm
$textFile = readFileStr($_GET['product']); сылаеться на utils.php:
Да пусть ссылается куда угодно, если есть какая-то проблема - это проблема используемой вами CMS.
leito89 wrote:
Thu Jan 14, 2021 11:23 am
Подскажите, куда копать, куда бежать.
Копать в сторону:
1. Отказа от древних версий php
2. Исправлению уязвимостей в коде используемых скриптов

Re: php5.6 + функция readFileStr на vestacp

Posted: Fri Jan 15, 2021 2:12 pm
by leito89
Это не CMS. А самописный сайт с админкой и тд, был когда-то. Админку выкинул вместе с редактором.

Re: php5.6 + функция readFileStr на vestacp

Posted: Fri Jan 15, 2021 3:18 pm
by grayfolk
leito89 wrote:
Fri Jan 15, 2021 2:12 pm
Это не CMS. А самописный сайт с админкой и тд, был когда-то. Админку выкинул вместе с редактором.
Не суть. Самопис - тем более, надо фиксить. Или переходить на что-то не самописное.

Re: php5.6 + функция readFileStr на vestacp

Posted: Fri Jan 15, 2021 3:24 pm
by leito89
Спасибо :-)