SQL User-Agent注入详解

今天继续给大家介绍渗透测试相关知识,本文主要内容是SQLUser-Agent注入详解。

免责声明:
本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!
再次强调:严禁对未授权设备进行渗透测试!

一、SQL User-Agent简介

User-Agent是HTTP协议中规定的一个HTTP头字段,该字段可以标识访问客户端的浏览器类型,操作系统类型及版本,CPU类型等等。User-Agent字段会由客户端在访问浏览器时携带,在有些环境中,服务器会记录下客户端访问的User-Agent字段,这就可能存在有数据库的交互,因此会产生SQL注入漏洞。
需要注意的是,当我们尝试对既定目标进行渗透测试时,应当首先进行传统的GET和POST方式的注入,如果这种普通的注入方式不能够进行渗透,再判断站点是否可能存在User-Agent的数据库信息交互,并尝试进行SQL注入测试。

二、SQL User-Agent靶场简介

下面,我们使用sqli_lab靶场的第18关来进行SQL User-Agent注入的实战,首先,我们来简单看一下这一关的靶场。
进入靶场后,我们可以看到是如下的登录页面:
在这里插入图片描述
我们成功登录后,发现页面如下所示:
在这里插入图片描述
从上图中我们可以看出,我们在访问该站点时的User-Agent信息被加载到了页面上。
我们来看一下该站点的PHP代码,如下所示:
在这里插入图片描述
在这里插入图片描述
从上述代码中可以看出,该站点会提取HTTP头中的User-Agent和IP地址,并插入到数据库中,我们此时查询当前数据库情况,结果如下所示:
在这里插入图片描述
此外,我们还需要注意到的是,在本站点中,没有对客户端的User-Agent信息进行任何的检测和过滤,因此,我们可以利用这一点,把SQL注入的payload插入到User-Agent头部,这样就可以成功的实现SQL注入了。

三、SQL User-Agent注入实战

接下来,我们就可以进行SQL User-Agent注入的实战了。
首先,我们使用burpsuit工具,抓取访问该站点的数据包,然后在该数据包的User-Agent字段,添加任意测试内容,结果发现我们的测试内容会出现在页面上,如下所示:
在这里插入图片描述
这样,考虑到User-Agent字段处是insert语句,因此我们就可以使用updatexml报错注入了,构造User-Agent的payload如下所示:

tctctc' and updatexml(1,concat('~',(database()),'~'),1) and '1'='1

使用该payload访问后结果如下所示:
在这里插入图片描述
从上图中我们可以看出,我们成功得到了目标站点的数据库名称。
之后,我们构造payload,爆出目标站点的表名,User-Agent的payload如下所示:

1234' and updatexml(1,concat('~',(select group_concat(table_name) from information_schema.tables where table_schema = database() ),'~'),1) and '1'='1

使用该payload访问目标站点后结果如下所示:
在这里插入图片描述
在这里,要注意的是,我们需要将之前payload中的tctctc改成1234,否则,就会出现如下问题:
在这里插入图片描述
从上图中,我们可以成功得到目标站点的表名,按照上述方式,我们就可以逐步得到目标站点的数据库所有信息了。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

永远是少年啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值