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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/abraxas/pfsense-dyndns-cache-path
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийВеб-безопасностьТестирование на ПроникновениеСтатьи и ИсследованияЛаборатории и Практика
GitHub
abraxas/pfsense-dyndns-cache-path

pfsense-dyndns-cache-path

pfSense CE 2.9.0-DEVELOPMENT — средний уровень — удалённо — запись файла — путь кэша DynDNS

Репозиторий
84 дней назадЕщё не проверено

Популярное

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

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

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

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

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

Abraxas Labs - pfsense-dyndns-cache-path

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  pfsense-dyndns-cache-path

pfsense-dyndns-cache-path

Класс: Запись файла Достижимость: Удалённая

pfSense CE 2.9.0-DEVELOPMENT (9363ac5) - pfsense.org

Пользовательский хост пропускает is_domain(). updatedns формирует путь кэша как /conf/dyndns_{if}{type} плюс escapeshellarg($FQDN) плюс {id}.cache. Кавычки — это байты имени файла; / по-прежнему разделяет путь. Содержимое — IP|epoch, а не shell.

IDCVE пока нет
КлассЗапись файла
ДостижимостьУдалённая (аутентифицированный WebGUI, если не указано иное)
CWECWE-22
CVSSСредний: 5.4 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N
ПродуктpfSense CE
Затронуто2.9.0-DEVELOPMENT (9363ac5b8651a1c7a333180425ce7719070f95f9)
АутентификацияСессия WebGUI с page-services-dynamicdnsclient
ЛицензияGNU Affero GPL v3.0
Лабораториятолько 127.0.0.1

Я зафиксировал публичный master 9363ac5. Лаборатория — это PHP-гаджет зафиксированного sink, loopback HTTP на 127.0.0.1:19270.

Разбор серии: https://abraxaslabs.tech/research/pfsense-ce-leftovers

Что может сделать атакующий

МетодSinkПривилегия
POST services_dyndns_edit.php с пользовательским hostname, содержащим /file_put_contents по пути кэша с использованием escapeshellarg($FQDN)Целостность: Доказано в лаборатории: hostname с / записал IP
тот же остатоктот же sinkРазведка: Нет. Содержимое — IP
тот же остатоктот же sinkДоступность: Предположительно: перезапись файла, имя которого совпадает с экранированным суффиксом.

Требуется: page-services-dynamicdnsclient. CSRF-magic при POST, если не указано иное. WebGUI PHP-FPM работает от root.

Требуется: page-services-dynamicdnsclient. CSRF-magic при POST, если не указано иное. WebGUI PHP-FPM работает от root. CSRF-magic при POST, если не указано иное. WebGUI PHP-FPM работает от root.

Смежная поверхность, которая остаётся закрытой

Неаутентифицированный. mwexec от FQDN. cron/php exec от *.cache. Non-Custom dyndns отклоняет такой хост.

Нет Diagnostics: Command, если эта страница также не предоставлена.

Лаборатория

cd lab
./run.sh

Loopback 127.0.0.1:19270. Compose-проект pfsense-dyndns-cache-path. Свидетель PFSENSE-DYNDNS-CACHE-PATH-WITNESS. Только loopback: 127.0.0.1:19270. Compose-проект pfsense-dyndns-cache-path. Свидетель PFSENSE-DYNDNS-CACHE-PATH-WITNESS. PHP-гаджет зафиксированных строк. Стек разбирается после запуска.

Последняя строка:

SUCCESS PFSENSE-DYNDNS-CACHE-PATH control-under-conf=yes trigger-outside-conf=yes PFSENSE-DYNDNS-CACHE-PATH-WITNESS

Исправление

Не используйте escapeshellarg в качестве имени файла. Применяйте basename / is_domain к хосту.

Ссылки

  • github.com/pfsense/pfsense 9363ac5b8651a1c7a333180425ce7719070f95f9
  • CWE-22
  • Серия: https://abraxaslabs.tech/research/pfsense-ce-leftovers
Скачать инструмент