前言

原理很简单,只是注入位置不同,XFF注入的典型特征就是后端代码有检测IP的代码段,类似于下面这种

1645176338339-1fbc9c7f-e523-40be-81ac-994d706874cb.png

一般用来判断一个IP是不是进行了多次重复操作而设置的,一般我们可以使用x-forwarded-for进行IP欺骗,并在此处进行sql注入;而Cookie就是在Cookie处进行注入,换汤不换药,其实和GET型注入区别不大,下面以两道例题来解释这两种注入方法

Cookie注入

以sqllab第20关为例子,这里需要用到bp进行抓包

image-20240714175004900

我们先随便输入账号密码,然后抓包看看什么情况

image-20240715131853605

返回这个,提示我们是Cookie注入,我们用bp进行Cookie注入,首先将Cookie设置为admin,发送

image-20240715132858324

加上单引号admin',发现报错

image-20240715132946220

加上注释符,页面重新正常

image-20240715133049045

所以我们知道为单引号闭合的字符型注入,接下来就是常规的联合注入,猜字段数,如下

image-20240715133457121

image-20240715133516943

字段为3,看显位

image-20240715133645181

显位为2,3,继续猜库名,这里直接放图,后续就不再写步骤

image-20240715133806653

image-20240715133941240

image-20240715134057261

image-20240715134148608

至此,Cookie注入到此结束,和普通的注入没有什么太大的区别,主要区别就在于注入点的位置不一样

XFF注入

我们这里以墨者靶场为例子进行演示,相关题目链接如下所示:X-Forwarded-For注入漏洞实战SQL注入在线靶场墨者学院专注于网络安全人才培养 (mozhe.cn)

首先进去看到页面如下所示

image-20240716165031321

首先仍然还是随便输入账号密码看看有没有什么提示

image-20240716165139629

显示了一堆乱码并返回了我的IP,这个时候就可以测一测IP这个地方是不是有什么问题,我们开启抓包工具进行抓包

image-20240716165334872

这里确实存在注入点,我们接下来使用sqlmap帮我们进行爆数据,对于这种如何使用sqlmap呢?我们只需要在我们认为的注入点打上一个*来告诉sqlmap这里是我们的注入点,然后我们将数据包保存为txt文件

image-20240716171800523

然后我们使用sqlmap梭哈

image-20240716172011864

image-20240716213733140

查当前数据库,如下所示

image-20240716213821886

查看当前数据库下的表名,如下所示

image-20240716213938604

直接列名,如下所示

image-20240716214024340

脱裤,如下所示

image-20240716214130793

登录平台,可以拿到flag,如下所示

image-20240716214303764