siddiqodiq/LFI-Exploiter
GitHub: siddiqodiq/LFI-Exploiter
一款具备多线程、身份验证支持和海量 payload 的本地文件包含(LFI)漏洞自动化扫描工具,用于检测 Web 应用中的路径遍历与文件包含风险。
Stars: 1 | Forks: 0
# 📁 LFI Scanner - 本地文件包含漏洞扫描器



**高级本地文件包含漏洞扫描器,具备多线程、身份验证支持和智能检测功能**
## 📋 目录
- [概述](#-overview)
- [功能](#-features)
- [安装说明](#-installation)
- [用法](#-usage)
- [命令行选项](#-command-line-options)
- [示例](#-examples)
- [Payload 文件](#-payload-files)
- [Cookie 身份验证](#-cookie-authentication)
- [输出示例](#-output-examples)
- [最佳实践](#-best-practices)
- [故障排除](#-troubleshooting)
## 🎯 概述
LFI Scanner 是一款功能强大的工具,旨在检测 Web 应用程序中的本地文件包含漏洞。它采用了多种高级技术,包括:
- **多线程扫描**以提高性能
- **User-Agent 轮换**以避免被检测
- **通过 cookie 提供身份验证支持**
- **智能 payload 编码**以获得更好的兼容性
- **可自定义的成功标准**以实现准确检测
- **全面的报告**并提供详细的结果
## ✨ 功能
### 🔍 **核心扫描功能**
- **多线程处理**:可配置线程数(1-20 个线程)
- **User-Agent 轮换**:8 种不同的浏览器用户代理,实现隐身扫描
- **Payload 编码**:对特殊字符进行自动 URL 编码
- **重试机制**:内置针对失败请求的重试逻辑
- **超时处理**:10 秒超时设置以防止程序挂起
### 🔐 **身份验证支持**
- **Cookie 身份验证**:支持 session cookie
- **多种 Cookie 格式**:PHPSESSID、JSESSIONID、ASP.NET_SessionId 等
- **Cookie 文件支持**:从外部文件加载 cookie
- **Session 检测**:自动检测 session 类型
### 📊 **高级检测**
- **可自定义的成功标准**:定义您自己的检测模式
- **响应时间跟踪**:监控请求性能
- **状态码监控**:追踪 HTTP 响应码
- **错误处理**:妥善处理网络错误
### 📈 **输出与报告**
- **过滤结果**:仅显示易受攻击的 URL 或所有结果
- **详细的扫描摘要**:提供全面的统计数据
- **实时进度**:扫描期间提供实时更新
- **彩色输出**:直观指示漏洞情况
## 🚀 安装说明
### 前置条件
```
# 需要 Python 3.6 或更高版本
python3 --version
# 安装所需的 packages
pip3 install -r requirements.txt
```
## 🎮 用法
### 基本语法
```
python3 lfi.py [options]
```
### 快速开始
```
# 扫描单个 URL
python3 lfi.py -u "http://example.com/test.php?page="
# 带过滤的扫描(仅显示 vulnerable)
python3 lfi.py -u "http://example.com/test.php?page=" -f
# 从文件扫描多个 URL
python3 lfi.py -l urls.txt -f
```
## ⚙️ 命令行选项
| 选项 | 长格式 | 描述 | 示例 |
|--------|-----------|-------------|---------|
| `-u` | `--url` | 要扫描的目标 URL | `-u "http://site.com/page.php?file="` |
| `-l` | `--url-file` | 包含 URL 列表的文件 | `-l targets.txt` |
| `-p` | `--payload-file` | 自定义 payload 文件 | `-p custom_payloads.txt` |
| `-c` | `--criteria` | 成功标准(以逗号分隔) | `-c "root:x,admin,config"` |
| `-t` | `--threads` | 线程数 (1-20) | `-t 10` |
| `-f` | `--filter-vuln` | 仅显示存在漏洞的结果 | `-f` |
| `--cookie` | `--cookie` | 用于身份验证的 cookie 字符串 | `--cookie "PHPSESSID=abc123"` |
| `--cookie-file` | `--cookie-file` | 包含 cookie 的文件 | `--cookie-file cookies.txt` |
| `-h` | `--help` | 显示帮助信息 | `-h` |
## 💡 示例
### 1. 基础单 URL 扫描
```
python3 lfi.py -u "http://example.com/index.php?page="
```
### 2. 使用 Session Cookie 进行身份验证扫描
```
python3 lfi.py -u "http://example.com/admin.php?file=" --cookie "PHPSESSID=abc123def456; admin_logged=true"
```
### 3. 使用自定义 Payload 进行多 URL 扫描
```
python3 lfi.py -l targets.txt -p custom_lfi.txt -t 15 -f
```
### 4. 使用自定义标准的高性能扫描
```
python3 lfi.py -l urls.txt -c "root:x,passwd,shadow,config" -t 20 --filter-vuln
```
### 5. Cookie 文件身份验证
```
python3 lfi.py -l targets.txt --cookie-file session_cookies.txt -f
```
## 📁 Payload 文件
### 默认 Payload
扫描器包含两个 payload 文件:
#### `payloads/lfi.txt` (70,000+ 条 payload)
- 常见的 Linux 系统文件 (`/etc/passwd`, `/etc/shadow`)
- Windows 系统文件 (`C:\Windows\System32\drivers\etc\hosts`)
- Web 服务器配置文件
- 特定于应用程序的文件
- 日志文件和临时文件
#### `payloads/lfi2.txt`
- 目录遍历 payload (`../../etc/passwd`)
- 编码的遍历序列
- 空字节注入 payload
- 过滤器绕过技术
### 自定义 Payload 格式
创建您自己的 payload 文件,每行一条 payload:
```
/etc/passwd
../../../etc/passwd
....//....//....//etc/passwd
%2e%2e%2f%2e%2e%2f%2e%2e%2fetc%2fpasswd
```
## 🍪 Cookie 身份验证
### 支持的 Cookie 格式
#### 单个 Cookie 字符串
```
--cookie "PHPSESSID=abc123def456"
--cookie "session_id=xyz789; user_token=token123"
```
#### Cookie 文件格式
创建一个文件,每行放置一个完整的 cookie 字符串:
```
PHPSESSID=abc123def456; path=/; domain=example.com
JSESSIONID=xyz789abc123; admin=true
session_id=token123; authenticated=1
```
### 支持的 Session 类型
- **PHP Session**:`PHPSESSID`
- **Java Session**:`JSESSIONID`
- **ASP.NET Session**:`ASP.NET_SessionId`
- **通用 Session**:`session_id`, `sessionid`, `sid`
- **身份验证 Token**:`auth_token`, `access_token`
- **CSRF Token**:`csrf_token`
## 📊 输出示例
### 存在漏洞的结果
```
[→] http://example.com/page.php?file=../../../../etc/passwd [AUTH]
Payload: ../../../../etc/passwd
Status: VULNERABLE
Response code: 200
Response time: 0.45s
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36...
Authentication: Cookies used
------------------------------------------------------------
```
### 安全的结果
```
[→] http://example.com/page.php?file=../etc/passwd
Payload: ../etc/passwd
Status: SAFE
Response code: 404
Response time: 0.23s
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36...
------------------------------------------------------------
```
### 扫描摘要
```
============================================================
SCAN SUMMARY
============================================================
• URLs Scanned: 5
• Payloads Tested: 1000
• Total Requests: 5000
• Vulnerabilities Found: 3
• Authentication: Enabled
• Time Taken: 45.67 seconds
============================================================
[!] VULNERABLE URLS FOUND:
1. http://example.com/page.php?file=../../../../etc/passwd
2. http://example.com/admin.php?include=../../../etc/shadow
3. http://example.com/view.php?template=....//....//etc/passwd
[+] Scan completed!
```
## 🛡️ 最佳实践
### 🎯 **扫描策略**
1. **从过滤扫描开始** (`-f`) 以专注于查找漏洞
2. **使用适当的线程数**(对于大多数目标推荐设置为 5-10)
3. **如果您拥有有效的 session cookie,请进行身份验证测试**
4. **针对特定应用程序使用自定义成功标准**
### ⚡ **性能优化**
```
# 对于大型 target lists
python3 lfi.py -l large_targets.txt -t 15 -f
# 对于彻底的扫描
python3 lfi.py -u "http://target.com/page.php?file=" -p payloads/lfi.txt -c "root:x,config,error"
```
### 🔐 **安全注意事项**
- 在扫描前始终获取适当的授权
- 对生产系统使用速率限制(降低线程数)
- 监控您的请求,避免使目标服务器过载
- 尊重 robots.txt 和安全策略
### 📝 **Payload 定制**
```
# 为特定的 technologies 创建针对性的 payloads
echo "/var/www/html/config.php" >> custom_payloads.txt
echo "../../config/database.yml" >> custom_payloads.txt
echo "WEB-INF/web.xml" >> custom_payloads.txt
```
## 🔧 故障排除
### 常见问题
#### ❌ **未提供 URL**
```
[!] No valid URLs provided
```
**解决方案**:检查 URL 格式并确保其以参数结尾
```
# 正确的 format
python3 lfi.py -u "http://example.com/page.php?file="
# 不正确的 format
python3 lfi.py -u "http://example.com/page.php"
```
#### ❌ **连接错误**
```
[!] Error: Connection timeout
```
**解决方案**:
- 检查目标 URL 的可访问性
- 验证网络连接
- 针对不稳定的连接减少线程数
- 检查防火墙/代理设置
#### ❌ **Cookie 问题**
```
[!] Error loading cookies
```
**解决方案**:
- 验证 cookie 文件格式
- 检查 cookie 字符串语法
- 确保文件权限正确
#### ❌ **未加载 Payload**
```
[!] Error loading payloads
```
**解决方案**:
- 检查 payload 文件路径
- 验证文件存在且可读
- 确保文件编码正确(UTF-8)
### 性能问题
#### 🐌 **扫描速度慢**
- 减少线程数 (`-t 5`)
- 使用过滤模式 (`-f`)
- 检查网络延迟
- 使用较小的 payload 文件
#### 🔥 **资源使用率高**
- 降低线程数
- 在请求之间添加延迟
- 监控系统资源
- 使用较小的目标列表
## 📞 支持
如需提交问题、建议或贡献力量:
1. **查看仓库中现有的 issue**
2. **创建包含示例的详细 Bug 报告**
3. **贡献 payload 或改进代码**
4. **分享关于检测准确性的反馈**
## ⚖️ 法律免责声明
本工具仅供**授权的安全测试**使用。用户需对以下事项负责:
- 在扫描前获取适当的授权
- 遵守适用的法律法规
- 合理且负责任地使用本工具
- 尊重目标系统资源
**请务必确保您已获得测试目标系统的明确许可。**
**满怀 ❤️ 献给网络安全社区**
*祝您狩猎愉快!🎯*
标签:CISA项目, LFI扫描, Python, Web安全, 加密, 无后门, 漏洞扫描器, 蓝队分析, 逆向工具