Loading

PhpMyAdmin 4.6.2 Rce 漏洞复现&分析

0x01 漏洞背景

漏洞名称:

漏洞编号:

0x02 漏洞复现

image-20201128145142583

image-20201128124115809

0x03 漏洞分析

分析该poc可得知该整个攻击流程

首先是使用已知的账号密码进行登录

image-20201128163120467

登陆后进行数据表的创建操作,在指定的test数据库中创建prgpwn表,并且使用insert插入编码后的poc

/e\0

image-20201128165330839

调用接口执行命令

image-20201128170144319

从源代码层面直接分析tbl_find_replace.php,从代码层面可以看到该调用直接调用了类库中PMA_TableSearch的getReplaceReview方法,该方法传入的时候我们post的参数。

image-20201128170453796

刚刚好replacewith和find是我们的poc传入点,跟进TableSearch.class.php看看。通过对useRegex设置为非空,进入到正则匹配当中。且该useRegex参数可控(由前面post方法传进来的)。

image-20201128172544445

继续跟进_getRegexReplaceRows

image-20201128174055542

preg_replace函数是一个正则匹配的函数,其在当第一个参数为/xxxxx/e的时候,会讲第二个参数当作代码执行。

image-20201128180038967

如执行phpinfo

image-20201128180157943

而在在php这个漏洞中该代码写的是

"/" . $find . "/",

所以不具备/e模式。但poc通过\0进行截断,php中\0意味着字符串到此结束。所以当$find中为0/e\0时,相当于直接是/0/e,所以直接执行了传入的replaceWith参数。

0x04 参考

posted @ 2021-02-05 21:30  0x28  阅读(364)  评论(0编辑  收藏  举报