教师：在本课程中,
我将向您展示如何使用SQL注入读取服务器中的任何文件, 这样,
即使文件位于www根目录之外, 我们也可以像读取文件泄漏漏洞一样读取它, 我们还将了解如何使用它写入文件并将其上传到系统, 就像文件上传漏洞一样｡
我们首先要看的是读取文件｡
我把这里的所有值都设为空｡
这里有我的语句, 我会设置选择1,
我会留下2, 因为我会在上面做一些事情.
我们要在这里再做三个空｡
所以空,
空, 空｡
所以我们选择了null, null, null｡
所以是5, 因为我们有5条记录｡
请记住, 在第三个视频中,
我们没有选择某个内容,
而是选择了数据库, 例如, 它显示了当前数据库｡
我现在要做的是,
我想做另一个函数, 这个函数叫做load_file.
在这里, 我将设置要加载的文件,
并使用在文件包含漏洞中看到的相同文件, 即etc/passwd｡
我们尝试读取该文件,
语句是union select该文件, 就这样.
我要复制这个｡
我把它注入到这里,
然后加上我的%23,
这是我的命令｡
正如您所看到的,
我们成功地读取了etc/passwd的所有信息和所有内容,
即使它不在web根目录中｡
所以它存储在etc/passwd中｡
因此, 我们可以从其他网站读取服务器中的任何内容,
从服务器中任何位置的其他文件读取,
我们可以通过指定该文件的完整路径来读取它｡
接下来我想向您展示的是向服务器写入｡
因此, 我们实际上将向服务器写入一些内容,
这非常有用, 因为您可以编写任何您想要的代码,
例如, 您可以编写PHP脚本的代码, 您可以编写shell代码､
病毒代码或PHP代码, 以获得其他连接｡
所以它基本上就像一个文件上传漏洞｡
为了做到这一点,
我将在这里写我想做的代码,
我将称之为, 例如,
示例.
我们将使用一个名为outfile的函数, 我们将对outfile执行以下操作,
然后指定文件的存储位置.
现在, 在最好的情况下,
你可以写到你的web根目录, 这意味着你可以通过浏览器访问文件并执行它,
这样你就可以上传一个Weevely文件, 然后连接到它, 做类似的事情｡
所以让我们先试着这样做｡
所以我们要在var/www中进行, 这是我们的网络根目录,
所以我们可以通过它访问内容, 或者你也可以把它放在var/www中,
然后把multillidae放在它后面, 这样就可以把它存储在那里｡
所以命令很简单｡
再次选择并集｡
确保所有内容都设置为空, 这样除了你在这里输入的内容,
其他内容都不会被写入文件, 我输入了example,
example, 它将被存储到我们的文件中,
在var/www/multillidae中, 调用那个例子｡
文本｡
让我们试着运行一下, 看看它是否有效｡
现在, 这没有工作｡
如果您来到这里,
您将看到不允许SQL或MySQL创建或写入此目录｡
所以问题是我们没有权限,
我们拥有的权限不允许我们写入这个特定的位置｡
为了测试此漏洞,
我将此位置更改为tmp, 即temp,
您将看到您实际上可以写入temp, 因此在实际情况中, 您可以尝试它,
看看您是否能够写入内容｡
在这里, 我们现在尝试写入temp,
如果我们读取temp, 如果我们清除它,
然后清除ls和/tmp, 你会看到我们有一个叫做example的东西, 如果你尝试读取它, 你会看到它包含,
显然它包含我们之前所做的内容, 这是你会看到的正常选择｡
您可以看到, 将这些内容放到管理员的文件中, 然后它向我们显示了其中的内容,
这是示例, 这是我们要写入文件的内容｡
现在, 您可以通过输入一个错误的用户名来删除admin和adminpass内容,
这里不会显示任何内容, 因此您将看到的唯一内容是输出,
即示例｡
但同样, 只有当您能够写入Web服务器时,
这才有用, 这样您就可以访问它, 然后使用您的shell或使用您的有效负载,
进一步利用系统｡