Sqli-labs1~3关 通关详解 解题思路+解题步骤+解析

 前期准备:
首先,需要搭建 Sqli-Labs 靶场环境。可以从相关网站下载靶场源代码,并按照说明进行安装和配置。

注入点判断:

1. 通常通过在输入字段中尝试添加单引号、双引号、括号等特殊字符,观察页面返回的结果来判断是否存在注入点。

2. 不同的关卡可能具有不同的特征,例如有的是 GET 请求,有的是 POST 请求。

确定注入类型:
根据报错信息或其他特征,确定是字符型注入还是整型注入,或者其他特定类型的注入。

判断列数和回显位置:

1. 使用 order by 语句加上数字,递增地测试,直到出现报错,从而确定列数。

2. 通过构造特定的联合查询语句,如 union select 1,2,3,来判断回显位置,即确定数据会显示在结果中的哪个位置。

获取数据库信息:

1. 利用合适的函数和语句来获取数据库名、表名、列名等信息。例如,使用 information_schema 库中的相关表来查询。

2. 常用的函数有 group_concat() 用于拼接查询结果,select group_concat(schema_name) from information_schema.schemata 可获取所有库名。

报错注入:
某些情况下,使用报错注入技术。例如,构造特定的语句使数据库报错,同时将想要获取的信息显示在报错中。

布尔型盲注:
当没有明显回显时,可采用布尔型盲注。通过发送不同的请求,根据页面响应的差异来推断信息。

其他技术和注意事项:

1. 对于一些过滤了特定字符的情况,可能需要使用十六进制转码等方法来绕过过滤。

2. 注意不同关卡的特殊要求和限制条件,针对性地构造注入语句。

3. 学习和了解各种数据库函数的用法,以及它们在注入中的应用。

例如,在 Sqli-Labs 的某一关中,假设确定是字符型注入且列数为 3,回显位置在第 2 列,要获取数据库名,可以构造如下语句:id=-1' union select 1,(select group_concat(schema_name) from information_schema.schemata),3--+。

sqli-labs是一个用于学习和实践SQL注入技术的开源平台。它提供了多个不同的漏洞场景,每个场景都代表了一个特定类型的SQL注入漏洞。用户可以通过攻击这些场景来学习和掌握SQL注入技术,同时了解如何修复和防范这些漏洞。

解题步骤:

判断注入类型:

通过输入不同的参数值,观察页面的响应,判断是字符型注入还是数字型注入。

 

输入?id=1 正常
输入?id=1'  报错 ' .0 ' 
输入?id=1'--+ 正常

判断是字符型注入,闭合方式是'

 

?id=1  正常
?id=1"  正常
?id=2"  正常
?id=1"--+  正常
?id=;/';[]'    报错 ' ;/';[]'') LIMIT 0,1 '
           
判断是字符型注入,闭合方式是')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值