pma 4.0-4.9.3、5.0sql注入

官方补丁如下:

upload successful

可以看到是对username参数进行转义来进行修复,我们下载pma-4.9.0.1版本。跟进libraries/classes/Server/Privileges.php,在getExtraDataForAjaxBehavior函数line3072-3085里面:

upload successful

这里如果存在validate_username参数的话,会直接从$_GET[‘username’]参数处获得值并直接拼接进sql语句中,然后执行取出结果集,中间不存在任何过滤,因此是存在sql注入的。接下来我们寻找上层调用,在/server_privileges.php处327行发现有该函数调用:

upload successful

然后看看需要经过什么逻辑才会执行到这个地方来,往上回溯,有一层if判断:

upload successful

跟进response->isAjax的构造方法:

upload successful

upload successful

可以看到,当传入的ajax_request参数不为空的时候,才会满足这层if判断,并且是个布尔类型,因此我们任意登陆个前台的pma账号,并构造poc如下:

upload successful

know it then enjoy it~

打赏
  • © 2020 sommous

老板,来杯卡布奇诺~

支付宝
微信