phpmyadmin是很多网站用来管理数据库的一个系统,尤其是mysql数据库管理的较多一些,最近phpmysql爆出漏洞,尤其是弱口令,sql注入漏洞,都会导致mysql的数据账号密码被泄露,那么如何通过phpmyadmin来上传提权webshell呢
首先我们来搭建一下PHP+mysql环境,linux centos系统,PHP的版本是5.3,mysql版本是5.6,linux系统64位,apache 2.2版本,部署在新开的一台阿里云的按量付费ECS服务器。
phpmyadmin漏洞利用
利用mysql数据库select into outfile方式来写入webshell到网站的根目录下,该漏洞的利用前提是必须知道网站的当前路径是多少,如何知道网站的当前路径,这个要通过爆出网站的错误来进行查看绝对的路径。使用下面的代码:
select load_file('/home/www/safe.php')
select '<?php eval($_POST[sine]); ?>' into outfile '/home/www/safe.php';
执行这个语句就可以生成一句话的木马后门。
也可以使用写数据库日志的方式来进行漏洞的利用,前提是mysql的版本都是5.0以上的,以及日志开启,如果没有开启日志功能,我们需要在phpmyadmin里进行开启,语句如下:set globalgener al_log = "ON";这个数据库语句就是开启日志的功能。查看当前数据库是否开启,可以使用语句查看到SHOW VARIABLES LIKE 'general%'就可以看到是否开启日志了,日志开启成功,那么我们把日志的文件改为php,这样就可以记录日志到php文件当中去了,我们在操作语句的时候可以把一句话网站后门代码写到日志文件当中去进行执行。
关于phpmyadmin网站的绝对路径获取,可以使用单引号来进行错误测试,在ID值后门加上单引号,有些网站就会爆出绝对的网站路径,再一个使用错误的赋值比如ID=1是正常,那么我们可以使用ID=-1,来进行报错,也可以使用搜索引擎来查看网站的快照,看看是否存在一些错误的快照收录,很多网站会留下一些测试的代码,比如phpinfo这样的代码,文件地址是text.php 1.php phpinfo.php等待的文件。
以上就是phpmyadmin漏洞利用,以及如何提权拿webshell的一些利用技巧,关于phpmyadmin漏洞的修复,SINE安全建议管理员关闭掉phpmyadmin的对外访问,只允许在服务器里打开phpmyadmin的界面,外网无法打开。对网站的根目录部署防篡改安全防护,禁止新增PHP文件。