phpMyAdmin getshell总结

phpMyAdmin getshell总结

  • phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TY6GfinE-1586859142908)(.\images\1.png)]

一、phpMyAdmin写权限(into outfile)getshell

利用条件

  • 1.知道网站绝对路径
  • 2.对web目录具有写入权限
  • 3.secure_ file_ priv没有具体值

实战步骤

  • 1.首先,获取网站绝对路径:

方法一:

通过phpinfo.php页面获取:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ypk1ONJ4-1586859142913)(.\images\2.png)]

方法二:
通过SQL语句查询,获取mysql所在的绝对路径:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u1uZ7l0e-1586859142916)(.\images\3.png)]
当然,方法还有很多,比如网站报错可以收集绝对路径等。

  • 2.执行SQL语句,写入一句话,如下图,可以看到这里执行SQL语句出错,提示MySQL服务器正在使用--secure_file_priv选项运行,无法执行SQL语句。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ojcsHqa4-1586859142922)(.\images\4.png)]

  • 3.查看secure_file_priv选项,看是否可写,命令如下:
    SHOW VARIABLES LIKE 'secure_file_priv'

      当secure_file_priv的值为null ,表示限制mysql 不允许导入|导出
      当secure_file_priv的值为/tmp/ ,表示限制mysql 的导入|导出只能发生在/tmp/目录下
      当secure_file_priv的值没有具体值时,表示不对mysql 的导入|导出做限制
    
  • 如下图,可以看到,这里的值为NULL,则表示不允许mysql导入导出,所以这里我们没有写权限,也就无法使用into outfile方法getshell。
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ijHl71rr-1586859142926)(.\images\5.png)]

  • 4.--secure_file_priv选项的值,只能通过MySQL配置文件进行修改,这里无法使用SQL语句进行修改,如下,修改my.ini文件,没有secure_file_priv选项添加一个即可,然后重启服务:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jntJbXsT-1586859142928)(.\images\6.png)]

  • 5.再次执行写入shell的SQL语句,可以看到SQL语句执行成功。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hqY5UrIW-1586859142929)(.\images\7.png)]

  • 6.执行代码,使用菜刀连接。

在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ocLybXvE-1586859142933)(.\images\9.png)]

二、phpMyAdmin通过日志文件getshell

利用原理

首先介绍两个MySQL全局变量(general_log、general_log file)

  • 1.general_log 指的是日志保存状态,默认是关闭的,一共有两个值(ON/OFF)ON代表开启/OFF代表关闭。
  • 2.general_log_file指的是日志的保存路径,指定为一个php文件,最后用一句话木马进行SQL查询来写入shell。

实战步骤

  • 1.首先查看general_log是否开启:
    SHOW VARIABLES LIKE 'general_log';
    可以看到这里的general__log是关闭状态,也就是说不保存SQL语句到日志中。

注意:general__log 变量表示保存每一条你执行的SQL语句到文件中,所以这里我们需要将general_log变量的值修改为On,这里就会新建一个日志文件,用来保存我们执行的SQL语句。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-75y0IAel-1586859142934)(.\images\10.png)]

  • 2.执行SQL语句开启general_log。
    SET GLOBAL general_log = ON;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zFd48pY2-1586859142936)(.\images\11.png)]

再次查看general_log变量,可以发现它的值已修改成ON,开启成功。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zHkLUQf6-1586859142938)(.\images\12.png)]

  • 3.然后把general_log_file设置为shell的绝对路径(general_log_file指的是日志的保存路径)。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RTbCLI6P-1586859142939)(.\images\13.png)]

  • 4.然后执行SQL查询语句,写一个一句话进去。(这里只要执行SQL语句,就可以写入到刚才我们创建的日志文件当中)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o9ZbWWA8-1586859142940)(.\images\14.png)]

  • 5.查看创建的日志文件,可以看到shell已经写入。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1LXHyX70-1586859142942)(.\images\15.png)]

  • 6.尝试执行代码,使用菜刀连接。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nyKIT6f8-1586859142944)(.\images\16.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rJUP3dL8-1586859142945)(.\images\17.png)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值