siddiqodiq/LFI-Exploiter

GitHub: siddiqodiq/LFI-Exploiter

一款具备多线程、身份验证支持和海量 payload 的本地文件包含(LFI)漏洞自动化扫描工具,用于检测 Web 应用中的路径遍历与文件包含风险。

Stars: 1 | Forks: 0

# 📁 LFI Scanner - 本地文件包含漏洞扫描器
![LFI Scanner](https://img.shields.io/badge/Scanner-LFI-red?style=for-the-badge&logo=security&logoColor=white) ![Python](https://img.shields.io/badge/Python-3.6+-blue?style=for-the-badge&logo=python&logoColor=white) ![Status](https://img.shields.io/badge/Status-Active-green?style=for-the-badge) **高级本地文件包含漏洞扫描器,具备多线程、身份验证支持和智能检测功能**
## 📋 目录 - [概述](#-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安全, 加密, 无后门, 漏洞扫描器, 蓝队分析, 逆向工具